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>
This commit is contained in:
committed by
Denys Vlasenko
parent
35fdb1bc9c
commit
fbedacfc8c
@ -59,8 +59,12 @@ char* FAST_FUNC safe_gethostname(void)
|
||||
*/
|
||||
char* FAST_FUNC safe_getdomainname(void)
|
||||
{
|
||||
/* The field domainname of struct utsname is Linux specific. */
|
||||
#if defined(__linux__)
|
||||
struct utsname uts;
|
||||
|
||||
uname(&uts);
|
||||
return xstrndup(!uts.domainname[0] ? "?" : uts.domainname, sizeof(uts.domainname));
|
||||
#else
|
||||
return xstrdup("?");
|
||||
#endif
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ int FAST_FUNC setsockopt_broadcast(int fd)
|
||||
{
|
||||
return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &const_int_1, sizeof(const_int_1));
|
||||
}
|
||||
|
||||
#ifdef SO_BINDTODEVICE
|
||||
int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
|
||||
{
|
||||
int r;
|
||||
@ -36,6 +38,14 @@ int FAST_FUNC setsockopt_bindtodevice(int fd, const char *iface)
|
||||
bb_perror_msg("can't bind to interface %s", iface);
|
||||
return r;
|
||||
}
|
||||
#else
|
||||
int FAST_FUNC setsockopt_bindtodevice(int fd UNUSED_PARAM,
|
||||
const char *iface UNUSED_PARAM)
|
||||
{
|
||||
bb_error_msg("SO_BINDTODEVICE is not supported on this system");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
len_and_sockaddr* FAST_FUNC get_sock_lsa(int fd)
|
||||
{
|
||||
|
@ -100,18 +100,16 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path)
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* UNUSED */
|
||||
#if 0
|
||||
char* FAST_FUNC xmalloc_realpath(const char *path)
|
||||
{
|
||||
#if defined(__GLIBC__) && !defined(__UCLIBC__)
|
||||
/* glibc provides a non-standard extension */
|
||||
/* new: POSIX.1-2008 specifies this behavior as well */
|
||||
return realpath(path, NULL);
|
||||
#else
|
||||
char buf[PATH_MAX+1];
|
||||
|
||||
/* on error returns NULL (xstrdup(NULL) ==NULL) */
|
||||
/* on error returns NULL (xstrdup(NULL) == NULL) */
|
||||
return xstrdup(realpath(path, buf));
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user