git-svn: trunk@4087
aCaB authored on 2008/08/06 09:27:36... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Wed Aug 6 02:11:12 CEST 2008 (acab) |
|
2 |
+------------------------------------ |
|
3 |
+ * build system, clamav-milter: work around for non MT lresolv (bb#1125) |
|
4 |
+ |
|
1 | 5 |
Tue Aug 5 13:14:31 CEST 2008 (acab) |
2 | 6 |
------------------------------------ |
3 | 7 |
* clamav-milter: properly wrap dns stuff (again) - bb#1125 |
... | ... |
@@ -72,7 +72,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ |
72 | 72 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
73 | 73 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
74 | 74 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
75 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
75 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
76 |
+ $(top_srcdir)/configure.in |
|
76 | 77 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
77 | 78 |
$(ACLOCAL_M4) |
78 | 79 |
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ |
... | ... |
@@ -177,6 +177,9 @@ |
177 | 177 |
/* Define to 1 if you have the <limits.h> header file. */ |
178 | 178 |
#undef HAVE_LIMITS_H |
179 | 179 |
|
180 |
+/* Define to 1 if -lresolv provides thread safe API's like res_nquery */ |
|
181 |
+#undef HAVE_LRESOLV_R |
|
182 |
+ |
|
180 | 183 |
/* Define to 1 if you have the <malloc.h> header file. */ |
181 | 184 |
#undef HAVE_MALLOC_H |
182 | 185 |
|
... | ... |
@@ -58,7 +58,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in INSTALL |
58 | 58 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
59 | 59 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
60 | 60 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
61 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
61 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
62 |
+ $(top_srcdir)/configure.in |
|
62 | 63 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
63 | 64 |
$(ACLOCAL_M4) |
64 | 65 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -590,11 +590,12 @@ static table_t *resolve(const char *host, table_t *t); |
590 | 590 |
static int spf(struct privdata *privdata, table_t *prevhosts); |
591 | 591 |
static void spf_ip(char *ip, int zero, void *v); |
592 | 592 |
|
593 |
+pthread_mutex_t res_pool_mutex = PTHREAD_MUTEX_INITIALIZER; |
|
594 |
+ |
|
595 |
+#ifdef HAVE_LRESOLV_R |
|
593 | 596 |
res_state res_pool; |
594 | 597 |
uint8_t *res_pool_state; |
595 | 598 |
pthread_cond_t res_pool_cond = PTHREAD_COND_INITIALIZER; |
596 |
-pthread_mutex_t res_pool_mutex = PTHREAD_MUTEX_INITIALIZER; |
|
597 |
- |
|
598 | 599 |
|
599 | 600 |
int safe_res_query(const char *d, int c, int t, u_char *a, int l) { |
600 | 601 |
int i = -1, ret; |
... | ... |
@@ -620,7 +621,20 @@ int safe_res_query(const char *d, int c, int t, u_char *a, int l) { |
620 | 620 |
pthread_cond_signal(&res_pool_cond); |
621 | 621 |
pthread_mutex_unlock(&res_pool_mutex); |
622 | 622 |
return ret; |
623 |
-} |
|
623 |
+} |
|
624 |
+ |
|
625 |
+#else /* !HAVE_LRESOLV_R - non thread safe resolver (old bsd's) */ |
|
626 |
+ |
|
627 |
+int safe_res_query(const char *d, int c, int t, u_char *a, int l) { |
|
628 |
+ int ret; |
|
629 |
+ pthread_mutex_lock(&res_pool_mutex); |
|
630 |
+ ret = res_query(d, c, t, a, l); |
|
631 |
+ pthread_mutex_unlock(&res_pool_mutex); |
|
632 |
+ return ret; |
|
633 |
+} |
|
634 |
+ |
|
635 |
+#endif /* HAVE_LRESOLV_R */ |
|
636 |
+ |
|
624 | 637 |
#endif /* HAVE_RESOLV_H */ |
625 | 638 |
|
626 | 639 |
static void |
... | ... |
@@ -1393,7 +1407,7 @@ main(int argc, char **argv) |
1393 | 1393 |
if((max_children == 0) && ((cpt = cfgopt(copt, "MaxThreads")) != NULL)) |
1394 | 1394 |
max_children = cfgopt(copt, "MaxThreads")->numarg; |
1395 | 1395 |
|
1396 |
-#ifdef HAVE_RESOLV_H |
|
1396 |
+#ifdef HAVE_LRESOLV_R |
|
1397 | 1397 |
/* allocate a pool of resolvers */ |
1398 | 1398 |
if(!(res_pool=cli_calloc(max_children+1, sizeof(*res_pool)))) |
1399 | 1399 |
return EX_OSERR; |
... | ... |
@@ -57,7 +57,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
57 | 57 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
58 | 58 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
59 | 59 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
60 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
60 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
61 |
+ $(top_srcdir)/configure.in |
|
61 | 62 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
62 | 63 |
$(ACLOCAL_M4) |
63 | 64 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -57,7 +57,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
57 | 57 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
58 | 58 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
59 | 59 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
60 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
60 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
61 |
+ $(top_srcdir)/configure.in |
|
61 | 62 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
62 | 63 |
$(ACLOCAL_M4) |
63 | 64 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -57,7 +57,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
57 | 57 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
58 | 58 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
59 | 59 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
60 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
60 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
61 |
+ $(top_srcdir)/configure.in |
|
61 | 62 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
62 | 63 |
$(ACLOCAL_M4) |
63 | 64 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -58,7 +58,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
58 | 58 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
59 | 59 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
60 | 60 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
61 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
61 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
62 |
+ $(top_srcdir)/configure.in |
|
62 | 63 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
63 | 64 |
$(ACLOCAL_M4) |
64 | 65 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -15350,6 +15350,8 @@ _ACEOF |
15350 | 15350 |
fi |
15351 | 15351 |
fi |
15352 | 15352 |
|
15353 |
+ |
|
15354 |
+ |
|
15353 | 15355 |
# Check whether --enable-dns was given. |
15354 | 15356 |
if test "${enable_dns+set}" = set; then |
15355 | 15357 |
enableval=$enable_dns; want_dns=$enableval |
... | ... |
@@ -15359,43 +15361,33 @@ else |
15359 | 15359 |
fi |
15360 | 15360 |
|
15361 | 15361 |
if test $want_dns = yes; then |
15362 |
- { echo "$as_me:$LINENO: checking for __dn_expand in -lresolv" >&5 |
|
15363 |
-echo $ECHO_N "checking for __dn_expand in -lresolv... $ECHO_C" >&6; } |
|
15364 |
-if test "${ac_cv_lib_resolv___dn_expand+set}" = set; then |
|
15362 |
+ { echo "$as_me:$LINENO: checking for resolv.h" >&5 |
|
15363 |
+echo $ECHO_N "checking for resolv.h... $ECHO_C" >&6; } |
|
15364 |
+if test "${ac_cv_header_resolv_h+set}" = set; then |
|
15365 | 15365 |
echo $ECHO_N "(cached) $ECHO_C" >&6 |
15366 | 15366 |
else |
15367 |
- ac_check_lib_save_LIBS=$LIBS |
|
15368 |
-LIBS="-lresolv $LIBS" |
|
15369 |
-cat >conftest.$ac_ext <<_ACEOF |
|
15367 |
+ cat >conftest.$ac_ext <<_ACEOF |
|
15370 | 15368 |
/* confdefs.h. */ |
15371 | 15369 |
_ACEOF |
15372 | 15370 |
cat confdefs.h >>conftest.$ac_ext |
15373 | 15371 |
cat >>conftest.$ac_ext <<_ACEOF |
15374 | 15372 |
/* end confdefs.h. */ |
15375 | 15373 |
|
15376 |
-/* Override any GCC internal prototype to avoid an error. |
|
15377 |
- Use char because int might match the return type of a GCC |
|
15378 |
- builtin and then its argument prototype would still apply. */ |
|
15379 |
-#ifdef __cplusplus |
|
15380 |
-extern "C" |
|
15381 |
-#endif |
|
15382 |
-char __dn_expand (); |
|
15383 |
-int |
|
15384 |
-main () |
|
15385 |
-{ |
|
15386 |
-return __dn_expand (); |
|
15387 |
- ; |
|
15388 |
- return 0; |
|
15389 |
-} |
|
15374 |
+#include <sys/types.h> |
|
15375 |
+#include <netinet/in.h> |
|
15376 |
+#include <arpa/nameser.h> |
|
15377 |
+ |
|
15378 |
+ |
|
15379 |
+#include <resolv.h> |
|
15390 | 15380 |
_ACEOF |
15391 |
-rm -f conftest.$ac_objext conftest$ac_exeext |
|
15392 |
-if { (ac_try="$ac_link" |
|
15381 |
+rm -f conftest.$ac_objext |
|
15382 |
+if { (ac_try="$ac_compile" |
|
15393 | 15383 |
case "(($ac_try" in |
15394 | 15384 |
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
15395 | 15385 |
*) ac_try_echo=$ac_try;; |
15396 | 15386 |
esac |
15397 | 15387 |
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
15398 |
- (eval "$ac_link") 2>conftest.er1 |
|
15388 |
+ (eval "$ac_compile") 2>conftest.er1 |
|
15399 | 15389 |
ac_status=$? |
15400 | 15390 |
grep -v '^ *+' conftest.er1 >conftest.err |
15401 | 15391 |
rm -f conftest.er1 |
... | ... |
@@ -15404,55 +15396,38 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
15404 | 15404 |
(exit $ac_status); } && { |
15405 | 15405 |
test -z "$ac_c_werror_flag" || |
15406 | 15406 |
test ! -s conftest.err |
15407 |
- } && test -s conftest$ac_exeext && |
|
15408 |
- $as_test_x conftest$ac_exeext; then |
|
15409 |
- ac_cv_lib_resolv___dn_expand=yes |
|
15407 |
+ } && test -s conftest.$ac_objext; then |
|
15408 |
+ ac_cv_header_resolv_h=yes |
|
15410 | 15409 |
else |
15411 | 15410 |
echo "$as_me: failed program was:" >&5 |
15412 | 15411 |
sed 's/^/| /' conftest.$ac_ext >&5 |
15413 | 15412 |
|
15414 |
- ac_cv_lib_resolv___dn_expand=no |
|
15413 |
+ ac_cv_header_resolv_h=no |
|
15415 | 15414 |
fi |
15416 | 15415 |
|
15417 |
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ |
|
15418 |
- conftest$ac_exeext conftest.$ac_ext |
|
15419 |
-LIBS=$ac_check_lib_save_LIBS |
|
15420 |
-fi |
|
15421 |
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv___dn_expand" >&5 |
|
15422 |
-echo "${ECHO_T}$ac_cv_lib_resolv___dn_expand" >&6; } |
|
15423 |
-if test $ac_cv_lib_resolv___dn_expand = yes; then |
|
15424 |
- resolv_lib="-lresolv" |
|
15416 |
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
15425 | 15417 |
fi |
15418 |
+{ echo "$as_me:$LINENO: result: $ac_cv_header_resolv_h" >&5 |
|
15419 |
+echo "${ECHO_T}$ac_cv_header_resolv_h" >&6; } |
|
15420 |
+if test $ac_cv_header_resolv_h = yes; then |
|
15426 | 15421 |
|
15427 |
- if test -z "$resolv_lib"; then |
|
15428 |
- { echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5 |
|
15422 |
+ bklibs=$LIBS; |
|
15423 |
+ LIBS=-lresolv; |
|
15424 |
+ { echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5 |
|
15429 | 15425 |
echo $ECHO_N "checking for dn_expand in -lresolv... $ECHO_C" >&6; } |
15430 |
-if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then |
|
15426 |
+if test "${ac_cv_have_lresolv+set}" = set; then |
|
15431 | 15427 |
echo $ECHO_N "(cached) $ECHO_C" >&6 |
15432 | 15428 |
else |
15433 |
- ac_check_lib_save_LIBS=$LIBS |
|
15434 |
-LIBS="-lresolv $LIBS" |
|
15435 |
-cat >conftest.$ac_ext <<_ACEOF |
|
15436 |
-/* confdefs.h. */ |
|
15437 |
-_ACEOF |
|
15438 |
-cat confdefs.h >>conftest.$ac_ext |
|
15439 |
-cat >>conftest.$ac_ext <<_ACEOF |
|
15440 |
-/* end confdefs.h. */ |
|
15441 | 15429 |
|
15442 |
-/* Override any GCC internal prototype to avoid an error. |
|
15443 |
- Use char because int might match the return type of a GCC |
|
15444 |
- builtin and then its argument prototype would still apply. */ |
|
15445 |
-#ifdef __cplusplus |
|
15446 |
-extern "C" |
|
15447 |
-#endif |
|
15448 |
-char dn_expand (); |
|
15449 |
-int |
|
15450 |
-main () |
|
15451 |
-{ |
|
15452 |
-return dn_expand (); |
|
15453 |
- ; |
|
15454 |
- return 0; |
|
15455 |
-} |
|
15430 |
+ ac_cv_have_lresolv=no; |
|
15431 |
+ cat >conftest.$ac_ext <<_ACEOF |
|
15432 |
+ |
|
15433 |
+#include <sys/types.h> |
|
15434 |
+#include <netinet/in.h> |
|
15435 |
+#include <arpa/nameser.h> |
|
15436 |
+#include <resolv.h> |
|
15437 |
+int main() { return (int)dn_expand; } |
|
15438 |
+ |
|
15456 | 15439 |
_ACEOF |
15457 | 15440 |
rm -f conftest.$ac_objext conftest$ac_exeext |
15458 | 15441 |
if { (ac_try="$ac_link" |
... | ... |
@@ -15472,52 +15447,61 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
15472 | 15472 |
test ! -s conftest.err |
15473 | 15473 |
} && test -s conftest$ac_exeext && |
15474 | 15474 |
$as_test_x conftest$ac_exeext; then |
15475 |
- ac_cv_lib_resolv_dn_expand=yes |
|
15475 |
+ |
|
15476 |
+ ac_cv_have_lresolv=yes; |
|
15477 |
+ |
|
15476 | 15478 |
else |
15477 | 15479 |
echo "$as_me: failed program was:" >&5 |
15478 | 15480 |
sed 's/^/| /' conftest.$ac_ext >&5 |
15479 | 15481 |
|
15480 |
- ac_cv_lib_resolv_dn_expand=no |
|
15482 |
+ |
|
15481 | 15483 |
fi |
15482 | 15484 |
|
15483 | 15485 |
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ |
15484 | 15486 |
conftest$ac_exeext conftest.$ac_ext |
15485 |
-LIBS=$ac_check_lib_save_LIBS |
|
15487 |
+ |
|
15486 | 15488 |
fi |
15487 |
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5 |
|
15488 |
-echo "${ECHO_T}$ac_cv_lib_resolv_dn_expand" >&6; } |
|
15489 |
-if test $ac_cv_lib_resolv_dn_expand = yes; then |
|
15490 |
- resolv_lib="-lresolv" |
|
15489 |
+{ echo "$as_me:$LINENO: result: $ac_cv_have_lresolv" >&5 |
|
15490 |
+echo "${ECHO_T}$ac_cv_have_lresolv" >&6; } |
|
15491 |
+ LIBS=$bklibs; |
|
15492 |
+ |
|
15491 | 15493 |
fi |
15492 | 15494 |
|
15493 |
- fi |
|
15494 |
- { echo "$as_me:$LINENO: checking for resolv.h" >&5 |
|
15495 |
-echo $ECHO_N "checking for resolv.h... $ECHO_C" >&6; } |
|
15496 |
-if test "${ac_cv_header_resolv_h+set}" = set; then |
|
15495 |
+ |
|
15496 |
+ if test "x$ac_cv_have_lresolv" = "xyes"; then |
|
15497 |
+ FRESHCLAM_LIBS="$FRESHCLAM_LIBS -lresolv"; |
|
15498 |
+ CLAMAV_MILTER_LIBS="$CLAMAV_MILTER_LIBS -lresolv"; |
|
15499 |
+ bklibs=$LIBS; |
|
15500 |
+ LIBS=-lresolv; |
|
15501 |
+ |
|
15502 |
+cat >>confdefs.h <<\_ACEOF |
|
15503 |
+#define HAVE_RESOLV_H 1 |
|
15504 |
+_ACEOF |
|
15505 |
+ |
|
15506 |
+ { echo "$as_me:$LINENO: checking for res_nquery in -lresolv" >&5 |
|
15507 |
+echo $ECHO_N "checking for res_nquery in -lresolv... $ECHO_C" >&6; } |
|
15508 |
+if test "${ac_cv_have_lresolv_r+set}" = set; then |
|
15497 | 15509 |
echo $ECHO_N "(cached) $ECHO_C" >&6 |
15498 | 15510 |
else |
15499 |
- cat >conftest.$ac_ext <<_ACEOF |
|
15500 |
-/* confdefs.h. */ |
|
15501 |
-_ACEOF |
|
15502 |
-cat confdefs.h >>conftest.$ac_ext |
|
15503 |
-cat >>conftest.$ac_ext <<_ACEOF |
|
15504 |
-/* end confdefs.h. */ |
|
15511 |
+ |
|
15512 |
+ ac_cv_have_lresolv_r=no; |
|
15513 |
+ cat >conftest.$ac_ext <<_ACEOF |
|
15505 | 15514 |
|
15506 | 15515 |
#include <sys/types.h> |
15507 | 15516 |
#include <netinet/in.h> |
15508 | 15517 |
#include <arpa/nameser.h> |
15509 |
- |
|
15510 |
- |
|
15511 | 15518 |
#include <resolv.h> |
15519 |
+int main() { return (int)res_nquery; } |
|
15520 |
+ |
|
15512 | 15521 |
_ACEOF |
15513 |
-rm -f conftest.$ac_objext |
|
15514 |
-if { (ac_try="$ac_compile" |
|
15522 |
+rm -f conftest.$ac_objext conftest$ac_exeext |
|
15523 |
+if { (ac_try="$ac_link" |
|
15515 | 15524 |
case "(($ac_try" in |
15516 | 15525 |
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
15517 | 15526 |
*) ac_try_echo=$ac_try;; |
15518 | 15527 |
esac |
15519 | 15528 |
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
15520 |
- (eval "$ac_compile") 2>conftest.er1 |
|
15529 |
+ (eval "$ac_link") 2>conftest.er1 |
|
15521 | 15530 |
ac_status=$? |
15522 | 15531 |
grep -v '^ *+' conftest.er1 >conftest.err |
15523 | 15532 |
rm -f conftest.er1 |
... | ... |
@@ -15526,32 +15510,39 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 |
15526 | 15526 |
(exit $ac_status); } && { |
15527 | 15527 |
test -z "$ac_c_werror_flag" || |
15528 | 15528 |
test ! -s conftest.err |
15529 |
- } && test -s conftest.$ac_objext; then |
|
15530 |
- ac_cv_header_resolv_h=yes |
|
15529 |
+ } && test -s conftest$ac_exeext && |
|
15530 |
+ $as_test_x conftest$ac_exeext; then |
|
15531 |
+ |
|
15532 |
+ ac_cv_have_lresolv_r=yes; |
|
15533 |
+ |
|
15531 | 15534 |
else |
15532 | 15535 |
echo "$as_me: failed program was:" >&5 |
15533 | 15536 |
sed 's/^/| /' conftest.$ac_ext >&5 |
15534 | 15537 |
|
15535 |
- ac_cv_header_resolv_h=no |
|
15538 |
+ |
|
15536 | 15539 |
fi |
15537 | 15540 |
|
15538 |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
15541 |
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ |
|
15542 |
+ conftest$ac_exeext conftest.$ac_ext, |
|
15543 |
+ |
|
15539 | 15544 |
fi |
15540 |
-{ echo "$as_me:$LINENO: result: $ac_cv_header_resolv_h" >&5 |
|
15541 |
-echo "${ECHO_T}$ac_cv_header_resolv_h" >&6; } |
|
15542 |
-if test $ac_cv_header_resolv_h = yes; then |
|
15543 |
- FRESHCLAM_LIBS="$FRESHCLAM_LIBS $resolv_lib"; CLAMAV_MILTER_LIBS="$CLAMAV_MILTER_LIBS $resolv_lib"; |
|
15545 |
+{ echo "$as_me:$LINENO: result: $ac_cv_have_lresolv_r" >&5 |
|
15546 |
+echo "${ECHO_T}$ac_cv_have_lresolv_r" >&6; } |
|
15547 |
+ LIBS=$bklibs; |
|
15548 |
+ if test "x$ac_cv_have_lresolv_r" = "xyes"; then |
|
15549 |
+ |
|
15544 | 15550 |
cat >>confdefs.h <<\_ACEOF |
15545 |
-#define HAVE_RESOLV_H 1 |
|
15551 |
+#define HAVE_LRESOLV_R 1 |
|
15546 | 15552 |
_ACEOF |
15547 | 15553 |
|
15548 |
-else |
|
15549 |
- { echo "$as_me:$LINENO: WARNING: ****** DNS support disabled" >&5 |
|
15554 |
+ fi |
|
15555 |
+ else |
|
15556 |
+ { echo "$as_me:$LINENO: WARNING: ****** DNS support disabled" >&5 |
|
15550 | 15557 |
echo "$as_me: WARNING: ****** DNS support disabled" >&2;} |
15558 |
+ fi |
|
15551 | 15559 |
fi |
15552 | 15560 |
|
15553 | 15561 |
|
15554 |
-fi |
|
15555 | 15562 |
|
15556 | 15563 |
# Check whether --enable-clamuko was given. |
15557 | 15564 |
if test "${enable_clamuko+set}" = set; then |
... | ... |
@@ -15803,6 +15794,10 @@ cat >>confdefs.h <<_ACEOF |
15803 | 15803 |
_ACEOF |
15804 | 15804 |
|
15805 | 15805 |
fi |
15806 |
+ if test "x$ac_cv_have_lresolv_r" != "xyes"; then |
|
15807 |
+ { echo "$as_me:$LINENO: WARNING: ****** Your libresolv is not thread safe, SPF queries in clamav-milter will block" >&5 |
|
15808 |
+echo "$as_me: WARNING: ****** Your libresolv is not thread safe, SPF queries in clamav-milter will block" >&2;} |
|
15809 |
+ fi |
|
15806 | 15810 |
fi |
15807 | 15811 |
|
15808 | 15812 |
# Check whether --enable-dsig was given. |
... | ... |
@@ -520,21 +520,7 @@ then |
520 | 520 |
fi |
521 | 521 |
fi |
522 | 522 |
|
523 |
-AC_ARG_ENABLE([dns], |
|
524 |
- AC_HELP_STRING([--disable-dns], [disable support for database verification through DNS]), |
|
525 |
- [want_dns=$enableval], [want_dns=yes] |
|
526 |
-) |
|
527 |
-if test $want_dns = yes; then |
|
528 |
- AC_CHECK_LIB([resolv], [__dn_expand], [resolv_lib="-lresolv"],) |
|
529 |
- if test -z "$resolv_lib"; then |
|
530 |
- AC_CHECK_LIB([resolv], [dn_expand], [resolv_lib="-lresolv"],) |
|
531 |
- fi |
|
532 |
- AC_CHECK_HEADER([resolv.h],[FRESHCLAM_LIBS="$FRESHCLAM_LIBS $resolv_lib"; CLAMAV_MILTER_LIBS="$CLAMAV_MILTER_LIBS $resolv_lib"; AC_DEFINE([HAVE_RESOLV_H],1,[have resolv.h])], AC_MSG_WARN([****** DNS support disabled]), [ |
|
533 |
-#include <sys/types.h> |
|
534 |
-#include <netinet/in.h> |
|
535 |
-#include <arpa/nameser.h> |
|
536 |
-]) |
|
537 |
-fi |
|
523 |
+AC_C_DNS |
|
538 | 524 |
|
539 | 525 |
AC_ARG_ENABLE([clamuko], |
540 | 526 |
[ --disable-clamuko disable clamuko support (Linux, DragonFly and FreeBSD only)], |
... | ... |
@@ -593,6 +579,9 @@ if test "$have_milter" = "yes"; then |
593 | 593 |
AC_DEFINE_UNQUOTED([SENDMAIL_VERSION_B], $sendmailver_b, [minor version of Sendmail]) |
594 | 594 |
AC_DEFINE_UNQUOTED([SENDMAIL_VERSION_C], $sendmailver_c, [subversion of Sendmail]) |
595 | 595 |
fi |
596 |
+ if test "x$ac_cv_have_lresolv_r" != "xyes"; then |
|
597 |
+ AC_MSG_WARN([****** Your libresolv is not thread safe, SPF queries in clamav-milter will block]) |
|
598 |
+ fi |
|
596 | 599 |
fi |
597 | 600 |
|
598 | 601 |
AC_ARG_ENABLE([dsig], |
... | ... |
@@ -56,7 +56,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
56 | 56 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
57 | 57 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
58 | 58 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
59 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
59 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
60 |
+ $(top_srcdir)/configure.in |
|
60 | 61 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
61 | 62 |
$(ACLOCAL_M4) |
62 | 63 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -55,7 +55,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
55 | 55 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
56 | 56 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
57 | 57 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
58 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
58 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
59 |
+ $(top_srcdir)/configure.in |
|
59 | 60 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
60 | 61 |
$(ACLOCAL_M4) |
61 | 62 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -55,7 +55,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
55 | 55 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
56 | 56 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
57 | 57 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
58 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
58 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
59 |
+ $(top_srcdir)/configure.in |
|
59 | 60 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
60 | 61 |
$(ACLOCAL_M4) |
61 | 62 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -58,7 +58,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
58 | 58 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
59 | 59 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
60 | 60 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
61 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
61 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
62 |
+ $(top_srcdir)/configure.in |
|
62 | 63 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
63 | 64 |
$(ACLOCAL_M4) |
64 | 65 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -59,7 +59,8 @@ DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ |
59 | 59 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
60 | 60 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
61 | 61 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
62 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
62 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
63 |
+ $(top_srcdir)/configure.in |
|
63 | 64 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
64 | 65 |
$(ACLOCAL_M4) |
65 | 66 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -57,7 +57,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
57 | 57 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
58 | 58 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
59 | 59 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
60 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
60 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
61 |
+ $(top_srcdir)/configure.in |
|
61 | 62 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
62 | 63 |
$(ACLOCAL_M4) |
63 | 64 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -43,7 +43,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
43 | 43 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
44 | 44 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
45 | 45 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
46 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
46 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
47 |
+ $(top_srcdir)/configure.in |
|
47 | 48 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
48 | 49 |
$(ACLOCAL_M4) |
49 | 50 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -43,7 +43,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
43 | 43 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
44 | 44 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
45 | 45 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
46 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
46 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
47 |
+ $(top_srcdir)/configure.in |
|
47 | 48 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
48 | 49 |
$(ACLOCAL_M4) |
49 | 50 |
mkinstalldirs = $(install_sh) -d |
50 | 51 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,70 @@ |
0 |
+dnl AC_C_DNS |
|
1 |
+dnl Checks resolv.h presence and usability |
|
2 |
+dnl Checks for specific lresolv exports |
|
3 |
+dnl Checks for lresolve reentrance |
|
4 |
+dnl |
|
5 |
+dnl Note using AC_LINK_IFELSE instead of AC_CHECK_LIB |
|
6 |
+dnl as symbols are often redefined in resolv.h |
|
7 |
+ |
|
8 |
+AC_DEFUN([AC_C_DNS], [ |
|
9 |
+ |
|
10 |
+AC_ARG_ENABLE([dns], |
|
11 |
+ AC_HELP_STRING([--disable-dns], [disable support for database verification through DNS]), |
|
12 |
+ [want_dns=$enableval], [want_dns=yes] |
|
13 |
+) |
|
14 |
+if test $want_dns = yes; then |
|
15 |
+ AC_CHECK_HEADER([resolv.h], |
|
16 |
+ [ |
|
17 |
+ bklibs=$LIBS; |
|
18 |
+ LIBS=-lresolv; |
|
19 |
+ AC_CACHE_CHECK([for dn_expand in -lresolv], [ac_cv_have_lresolv], [ |
|
20 |
+ ac_cv_have_lresolv=no; |
|
21 |
+ AC_LINK_IFELSE([ |
|
22 |
+#include <sys/types.h> |
|
23 |
+#include <netinet/in.h> |
|
24 |
+#include <arpa/nameser.h> |
|
25 |
+#include <resolv.h> |
|
26 |
+int main() { return (int)dn_expand; } |
|
27 |
+ ], |
|
28 |
+ [ |
|
29 |
+ ac_cv_have_lresolv=yes; |
|
30 |
+ ]) |
|
31 |
+ ]) |
|
32 |
+ LIBS=$bklibs; |
|
33 |
+ ], |
|
34 |
+ [], |
|
35 |
+ [ |
|
36 |
+#include <sys/types.h> |
|
37 |
+#include <netinet/in.h> |
|
38 |
+#include <arpa/nameser.h> |
|
39 |
+ ]) |
|
40 |
+ if test "x$ac_cv_have_lresolv" = "xyes"; then |
|
41 |
+ FRESHCLAM_LIBS="$FRESHCLAM_LIBS -lresolv"; |
|
42 |
+ CLAMAV_MILTER_LIBS="$CLAMAV_MILTER_LIBS -lresolv"; |
|
43 |
+ bklibs=$LIBS; |
|
44 |
+ LIBS=-lresolv; |
|
45 |
+ AC_DEFINE([HAVE_RESOLV_H],1,[have resolv.h]) |
|
46 |
+ AC_CACHE_CHECK([for res_nquery in -lresolv], [ac_cv_have_lresolv_r], [ |
|
47 |
+ ac_cv_have_lresolv_r=no; |
|
48 |
+ AC_LINK_IFELSE([ |
|
49 |
+#include <sys/types.h> |
|
50 |
+#include <netinet/in.h> |
|
51 |
+#include <arpa/nameser.h> |
|
52 |
+#include <resolv.h> |
|
53 |
+int main() { return (int)res_nquery; } |
|
54 |
+ ], |
|
55 |
+ [ |
|
56 |
+ ac_cv_have_lresolv_r=yes; |
|
57 |
+ ]), |
|
58 |
+ ]) |
|
59 |
+ LIBS=$bklibs; |
|
60 |
+ if test "x$ac_cv_have_lresolv_r" = "xyes"; then |
|
61 |
+ AC_DEFINE([HAVE_LRESOLV_R],1,[Define to 1 if -lresolv provides thread safe API's like res_nquery]) |
|
62 |
+ fi |
|
63 |
+ else |
|
64 |
+ AC_MSG_WARN([****** DNS support disabled]) |
|
65 |
+ fi |
|
66 |
+fi |
|
67 |
+ |
|
68 |
+]) |
|
69 |
+ |
... | ... |
@@ -57,7 +57,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
57 | 57 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
58 | 58 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
59 | 59 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
60 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
60 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
61 |
+ $(top_srcdir)/configure.in |
|
61 | 62 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
62 | 63 |
$(ACLOCAL_M4) |
63 | 64 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -37,7 +37,8 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
39 | 39 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
40 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
40 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
41 |
+ $(top_srcdir)/configure.in |
|
41 | 42 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
42 | 43 |
$(ACLOCAL_M4) |
43 | 44 |
mkinstalldirs = $(install_sh) -d |
... | ... |
@@ -43,7 +43,8 @@ DIST_COMMON = $(am__dist_bin_SCRIPTS_DIST) $(srcdir)/Makefile.am \ |
43 | 43 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
44 | 44 |
am__aclocal_m4_deps = $(top_srcdir)/m4/acinclude.m4 \ |
45 | 45 |
$(top_srcdir)/m4/fdpassing.m4 $(top_srcdir)/m4/lib-link.m4 \ |
46 |
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/configure.in |
|
46 |
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/resolv.m4 \ |
|
47 |
+ $(top_srcdir)/configure.in |
|
47 | 48 |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
48 | 49 |
$(ACLOCAL_M4) |
49 | 50 |
mkinstalldirs = $(install_sh) -d |