diff options
author | Michael Adam <obnox@samba.org> | 2008-02-26 13:24:54 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-02-26 13:56:12 +0100 |
commit | 7bdd648477c49dc7e23f832b2438bef673398fbf (patch) | |
tree | a58a8fe2e8daae01ad28546b7a81da1f57c8ff97 /source3/lib/replace/socket.m4 | |
parent | df3939da940c5f5cca9d0b782c84a0427c5b6b3a (diff) | |
download | samba-7bdd648477c49dc7e23f832b2438bef673398fbf.tar.gz samba-7bdd648477c49dc7e23f832b2438bef673398fbf.tar.bz2 samba-7bdd648477c49dc7e23f832b2438bef673398fbf.zip |
libreplace: Add tests for connect and gethostbyname.
Provide dummy replacements when a function isnt found.
The functions are also searched for in certain libraries,
and variables SOCKET_LIBS and NSL_LIBS are set accordingly.
One purpose of this is to fix the getifaddrs tests on
systems where e.g. the socket calls require special libs
for linking.
Michael
(This used to be commit c19f7a0e1004213f95e0bf8db5cd1f6697c7a47b)
Diffstat (limited to 'source3/lib/replace/socket.m4')
-rw-r--r-- | source3/lib/replace/socket.m4 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/source3/lib/replace/socket.m4 b/source3/lib/replace/socket.m4 new file mode 100644 index 0000000000..c0c8f93e81 --- /dev/null +++ b/source3/lib/replace/socket.m4 @@ -0,0 +1,40 @@ +dnl The following test is roughl taken from the cvs sources. +dnl +dnl If we can't find connect, try looking in -lsocket, -lnsl, and -linet. +dnl The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has +dnl libsocket.so which has a bad implementation of gethostbyname (it +dnl only looks in /etc/hosts), so we only look for -lsocket if we need +dnl it. +AC_CHECK_FUNCS(connect) +if test x"$ac_cv_func_connect" = x"no"; then + AC_CHECK_LIB_EXT(nsl_s, SOCKET_LIBS, connect) + AC_CHECK_LIB_EXT(nsl, SOCKET_LIBS, connect) + AC_CHECK_LIB_EXT(socket, SOCKET_LIBS, connect) + AC_CHECK_LIB_EXT(inet, SOCKET_LIBS, connect) + dnl We can't just call AC_CHECK_FUNCS(connect) here, + dnl because the value has been cached. + if test x"$ac_cv_lib_ext_nsl_s_connect" = x"yes" || + test x"$ac_cv_lib_ext_nsl_connect" = x"yes" || + test x"$ac_cv_lib_ext_socket_connect" = x"yes" || + test x"$ac_cv_lib_ext_inet_connect" = x"yes" + then + AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()]) + fi +fi + +AC_CHECK_FUNCS(gethostbyname) +if test x"$ac_cv_func_gethostbyname" = x"no"; then + AC_CHECK_LIB_EXT(nsl_s, NSL_LIBS, gethostbyname) + AC_CHECK_LIB_EXT(nsl, NSL_LIBS, gethostbyname) + AC_CHECK_LIB_EXT(socket, NSL_LIBS, gethostbyname) + dnl We can't just call AC_CHECK_FUNCS(gethostbyname) here, + dnl because the value has been cached. + if test x"$ac_cv_lib_ext_nsl_s_gethostbyname" = x"yes" || + test x"$ac_cv_lib_ext_nsl_gethostbyname" = x"yes" || + test x"$ac_cv_lib_ext_socket_gethostbyname" = x"yes" + then + AC_DEFINE(HAVE_GETHOSTBYNAME,1, + [Whether the system has gethostbyname()]) + fi +fi + |