aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorJérémie Koenig <jk@jk.fr.eu.org>2010-03-26 19:08:53 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-03-26 19:08:53 +0100
commitfbedacfc8caa1ec8f14e664a881cb0a93c8f8712 (patch)
tree6c08780bbaad6320149930bdbcfbee5a2eed9f5d /libbb
parent35fdb1bc9cb82fa5630c2d40ae49110ecd7c88ea (diff)
downloadbusybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.tar.gz
busybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.tar.bz2
busybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.zip
Hurd compat fixes. Mostly dealing with absent PATH_MAX
Signed-off-by: Jérémie Koenig <jk@jk.fr.eu.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r--libbb/safe_gethostname.c6
-rw-r--r--libbb/xconnect.c10
-rw-r--r--libbb/xreadlink.c6
3 files changed, 17 insertions, 5 deletions
diff --git a/libbb/safe_gethostname.c b/libbb/safe_gethostname.c
index 7407fb782..e93254b2b 100644
--- a/libbb/safe_gethostname.c
+++ b/libbb/safe_gethostname.c
@@ -59,8 +59,12 @@ char* FAST_FUNC safe_gethostname(void)
59 */ 59 */
60char* FAST_FUNC safe_getdomainname(void) 60char* FAST_FUNC safe_getdomainname(void)
61{ 61{
62/* The field domainname of struct utsname is Linux specific. */
63#if defined(__linux__)
62 struct utsname uts; 64 struct utsname uts;
63
64 uname(&uts); 65 uname(&uts);
65 return xstrndup(!uts.domainname[0] ? "?" : uts.domainname, sizeof(uts.domainname)); 66 return xstrndup(!uts.domainname[0] ? "?" : uts.domainname, sizeof(uts.domainname));
67#else
68 return xstrdup("?");
69#endif
66} 70}
diff --git a/libbb/xconnect.c b/libbb/xconnect.c
index 97751eb27..d8c8d02d5 100644
--- a/libbb/xconnect.c
+++ b/libbb/xconnect.c
@@ -21,6 +21,8 @@ int FAST_FUNC setsockopt_broadcast(int fd)
21{ 21{
22 return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &const_int_1, sizeof(const_int_1)); 22 return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &const_int_1, sizeof(const_int_1));
23} 23}
24
25#ifdef SO_BINDTODEVICE
24int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface) 26int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
25{ 27{
26 int r; 28 int r;
@@ -36,6 +38,14 @@ int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
36 bb_perror_msg("can't bind to interface %s", iface); 38 bb_perror_msg("can't bind to interface %s", iface);
37 return r; 39 return r;
38} 40}
41#else
42int FAST_FUNC setsockopt_bindtodevice(int fd UNUSED_PARAM,
43 const char *iface UNUSED_PARAM)
44{
45 bb_error_msg("SO_BINDTODEVICE is not supported on this system");
46 return -1;
47}
48#endif
39 49
40len_and_sockaddr* FAST_FUNC get_sock_lsa(int fd) 50len_and_sockaddr* FAST_FUNC get_sock_lsa(int fd)
41{ 51{
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index 8d232f16b..faa0e1646 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -100,18 +100,16 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path)
100 return buf; 100 return buf;
101} 101}
102 102
103/* UNUSED */
104#if 0
105char* FAST_FUNC xmalloc_realpath(const char *path) 103char* FAST_FUNC xmalloc_realpath(const char *path)
106{ 104{
107#if defined(__GLIBC__) && !defined(__UCLIBC__) 105#if defined(__GLIBC__) && !defined(__UCLIBC__)
108 /* glibc provides a non-standard extension */ 106 /* glibc provides a non-standard extension */
107 /* new: POSIX.1-2008 specifies this behavior as well */
109 return realpath(path, NULL); 108 return realpath(path, NULL);
110#else 109#else
111 char buf[PATH_MAX+1]; 110 char buf[PATH_MAX+1];
112 111
113 /* on error returns NULL (xstrdup(NULL) ==NULL) */ 112 /* on error returns NULL (xstrdup(NULL) == NULL) */
114 return xstrdup(realpath(path, buf)); 113 return xstrdup(realpath(path, buf));
115#endif 114#endif
116} 115}
117#endif