File: CheckResolv.m4

package info (click to toggle)
php-mongodb 1.15.0%2B1.11.1%2B1.9.2%2B1.7.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 63,984 kB
  • sloc: ansic: 328,429; xml: 10,797; php: 4,235; sh: 179; python: 47; pascal: 36; makefile: 3
file content (94 lines) | stat: -rw-r--r-- 2,540 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
dnl Disable Windows DNSAPI
AC_SUBST(MONGOC_HAVE_DNSAPI, 0)

found_resolv="no"

old_LIBS="$LIBS"
LIBS="$LIBS -lresolv"

dnl Thread-safe DNS query function for _mongoc_client_get_srv.
dnl Could be a macro, not a function, so check with AC_LINK_IFELSE.
AC_MSG_CHECKING([for res_nsearch])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
   #include <sys/types.h>
   #include <netinet/in.h>
   #include <arpa/nameser.h>
   #include <resolv.h>
]], [[
   int len;
   unsigned char reply[1024];
   res_state statep;
   len = res_nsearch(
      statep, "example.com", ns_c_in, ns_t_srv, reply, sizeof(reply));
]])], [
   AC_MSG_RESULT([yes])
   AC_SUBST(MONGOC_HAVE_RES_SEARCH, 0)
   AC_SUBST(MONGOC_HAVE_RES_NSEARCH, 1)
   found_resolv="yes"

   dnl We have res_nsearch. Call res_ndestroy (BSD/Mac) or res_nclose (Linux)?
   AC_MSG_CHECKING([for res_ndestroy])
   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
      #include <sys/types.h>
      #include <netinet/in.h>
      #include <arpa/nameser.h>
      #include <resolv.h>
   ]], [[
      res_state statep;
      res_ndestroy(statep);
   ]])], [
      AC_MSG_RESULT([yes])
      AC_SUBST(MONGOC_HAVE_RES_NDESTROY, 1)
      AC_SUBST(MONGOC_HAVE_RES_NCLOSE, 0)
   ], [
      AC_MSG_RESULT([no])
      AC_SUBST(MONGOC_HAVE_RES_NDESTROY, 0)
      AC_MSG_CHECKING([for res_nclose])
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[
         #include <sys/types.h>
         #include <netinet/in.h>
         #include <arpa/nameser.h>
         #include <resolv.h>
      ]], [[
         res_state statep;
         res_nclose(statep);
      ]])], [
         AC_MSG_RESULT([yes])
         AC_SUBST(MONGOC_HAVE_RES_NCLOSE, 1)
      ], [
         AC_MSG_RESULT([no])
         AC_SUBST(MONGOC_HAVE_RES_NCLOSE, 0)
      ])
   ])
],[
   AC_MSG_RESULT([no])
   AC_SUBST(MONGOC_HAVE_RES_NSEARCH, 0)
   AC_SUBST(MONGOC_HAVE_RES_NDESTROY, 0)
   AC_SUBST(MONGOC_HAVE_RES_NCLOSE, 0)

   dnl Thread-unsafe function.
   AC_MSG_CHECKING([for res_search])
   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
      #include <sys/types.h>
      #include <netinet/in.h>
      #include <arpa/nameser.h>
      #include <resolv.h>
   ]], [[
      int len;
      unsigned char reply[1024];
      len = res_search("example.com", ns_c_in, ns_t_srv, reply, sizeof(reply));
   ]])], [
      AC_MSG_RESULT([yes])
      AC_SUBST(MONGOC_HAVE_RES_SEARCH, 1)
      found_resolv="yes"
   ], [
      AC_MSG_RESULT([no])
      AC_SUBST(MONGOC_HAVE_RES_SEARCH, 0)
   ])
])

LIBS="$old_LIBS"

AS_IF([test "$found_resolv" = "yes"],[
  PHP_ADD_LIBRARY([resolv],,[MONGODB_SHARED_LIBADD])
])