diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-12-20 15:59:39 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2007-12-21 06:28:49 +0100 |
commit | 6afef7d624fbf734d93ebfe95689a282b202aa3c (patch) | |
tree | f1b39842e96df57a624b355077c4fcdca8b64d9c /source4 | |
parent | 1ae762d3bc924245aa96378929a9a048d385a61e (diff) | |
download | samba-6afef7d624fbf734d93ebfe95689a282b202aa3c.tar.gz samba-6afef7d624fbf734d93ebfe95689a282b202aa3c.tar.bz2 samba-6afef7d624fbf734d93ebfe95689a282b202aa3c.zip |
r26550: libreplace: fallback to __ss_family of struct sockaddr_storage
metze
(This used to be commit 11bdc9bed80b9842ac1ab8f22509a5d191cddc91)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/lib/replace/libreplace.m4 | 20 | ||||
-rw-r--r-- | source4/lib/replace/system/network.h | 9 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source4/lib/replace/libreplace.m4 b/source4/lib/replace/libreplace.m4 index 7e456b4d03..a577285639 100644 --- a/source4/lib/replace/libreplace.m4 +++ b/source4/lib/replace/libreplace.m4 @@ -152,6 +152,26 @@ AC_HAVE_TYPE([struct sockaddr_in6], [ #include <netinet/in.h> ]) +if test x"$ac_cv_type_struct_sockaddr_storage" = x"yes"; then +AC_CHECK_MEMBER(struct sockaddr_storage.ss_family, + AC_DEFINE(HAVE_SS_FAMILY, 1, [Defined if struct sockaddr_storage has ss_family field]),, + [ +#include <sys/socket.h> +#include <sys/types.h> +#include <netinet/in.h> + ]) + +if test x"$ac_cv_member_struct_sockaddr_storage_ss_family" != x"yes"; then +AC_CHECK_MEMBER(struct sockaddr_storage.__ss_family, + AC_DEFINE(HAVE___SS_FAMILY, 1, [Defined if struct sockaddr_storage has __ss_family field]),, + [ +#include <sys/socket.h> +#include <sys/types.h> +#include <netinet/in.h> + ]) +fi +fi + AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror) AC_CHECK_FUNCS(vsyslog setlinebuf mktime ftruncate chsize rename) AC_CHECK_FUNCS(waitpid strlcpy strlcat initgroups memmove strdup) diff --git a/source4/lib/replace/system/network.h b/source4/lib/replace/system/network.h index f72b233712..e2fad5f686 100644 --- a/source4/lib/replace/system/network.h +++ b/source4/lib/replace/system/network.h @@ -249,9 +249,18 @@ typedef unsigned short int sa_family_t; #ifdef HAVE_STRUCT_SOCKADDR_IN6 #define sockaddr_storage sockaddr_in6 #define ss_family sin6_family +#define HAVE_SS_FAMILY 1 #else #define sockaddr_storage sockaddr_in #define ss_family sin_family +#define HAVE_SS_FAMILY 1 +#endif +#endif + +#ifndef HAVE_SS_FAMILY +#ifdef HAVE___SS_FAMILY +#define ss_family __ss_family +#define HAVE_SS_FAMILY 1 #endif #endif |