diff options
author | Michael Adam <obnox@samba.org> | 2008-03-18 12:16:47 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-03-18 16:30:15 +0100 |
commit | 87b48a812683794935db950446e9fb1db8e3da48 (patch) | |
tree | 8378c52e0980ec6fa1787f58811d68304e262adf /source4/lib/replace/inet_ntoa.m4 | |
parent | 58dfb0ff3cb9a75e8caad89819f586b64df05f8a (diff) | |
download | samba-87b48a812683794935db950446e9fb1db8e3da48.tar.gz samba-87b48a812683794935db950446e9fb1db8e3da48.tar.bz2 samba-87b48a812683794935db950446e9fb1db8e3da48.zip |
libreplace: replace inet_ntoa() when it is missing
...not only replace it when it is broken.
This moves the defintion of rep_inet_ntoa from replace.c
to inet_ntoa.c and adds configure checks for existence
of inet_ntoa(). Checks are moved to an include file of its own.
NOTE: The original rep_inet_ntoa in replace.c was wrapped
into a "#ifndef WITH_PTHREADS" but the prototype in replace.h
and the define in system/network.h were not. I removed that
ifndef since the inet_ntoa() function is usually not thread safe
anyways, since it returns a pointer to a static buffer.
So whoever calls inet_ntoa() should be aware that it is not
thread safe anyways.
Michael
(This used to be commit 974c0c45ad42644348e0b55454715b12158f1028)
Diffstat (limited to 'source4/lib/replace/inet_ntoa.m4')
-rw-r--r-- | source4/lib/replace/inet_ntoa.m4 | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source4/lib/replace/inet_ntoa.m4 b/source4/lib/replace/inet_ntoa.m4 new file mode 100644 index 0000000000..c1de4134d9 --- /dev/null +++ b/source4/lib/replace/inet_ntoa.m4 @@ -0,0 +1,19 @@ +AC_CHECK_FUNCS(inet_ntoa,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} inet_ntoa.o"]) + +AC_CACHE_CHECK([for broken inet_ntoa],libreplace_cv_REPLACE_INET_NTOA,[ +AC_TRY_RUN([ +#include <stdio.h> +#include <unistd.h> +#include <sys/types.h> +#include <netinet/in.h> +#ifdef HAVE_ARPA_INET_H +#include <arpa/inet.h> +#endif +main() { struct in_addr ip; ip.s_addr = 0x12345678; +if (strcmp(inet_ntoa(ip),"18.52.86.120") && + strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } +exit(1);}], + libreplace_cv_REPLACE_INET_NTOA=yes,libreplace_cv_REPLACE_INET_NTOA=no,libreplace_cv_REPLACE_INET_NTOA=cross)]) +if test x"$libreplace_cv_REPLACE_INET_NTOA" = x"yes"; then + AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced]) +fi |