1*c2c26c8bSAndroid Build Coastguard Worker /* dnsmasq is Copyright (c) 2000-2009 Simon Kelley 2*c2c26c8bSAndroid Build Coastguard Worker 3*c2c26c8bSAndroid Build Coastguard Worker This program is free software; you can redistribute it and/or modify 4*c2c26c8bSAndroid Build Coastguard Worker it under the terms of the GNU General Public License as published by 5*c2c26c8bSAndroid Build Coastguard Worker the Free Software Foundation; version 2 dated June, 1991, or 6*c2c26c8bSAndroid Build Coastguard Worker (at your option) version 3 dated 29 June, 2007. 7*c2c26c8bSAndroid Build Coastguard Worker 8*c2c26c8bSAndroid Build Coastguard Worker This program is distributed in the hope that it will be useful, 9*c2c26c8bSAndroid Build Coastguard Worker but WITHOUT ANY WARRANTY; without even the implied warranty of 10*c2c26c8bSAndroid Build Coastguard Worker MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11*c2c26c8bSAndroid Build Coastguard Worker GNU General Public License for more details. 12*c2c26c8bSAndroid Build Coastguard Worker 13*c2c26c8bSAndroid Build Coastguard Worker You should have received a copy of the GNU General Public License 14*c2c26c8bSAndroid Build Coastguard Worker along with this program. If not, see <http://www.gnu.org/licenses/>. 15*c2c26c8bSAndroid Build Coastguard Worker */ 16*c2c26c8bSAndroid Build Coastguard Worker 17*c2c26c8bSAndroid Build Coastguard Worker #define VERSION "2.51" 18*c2c26c8bSAndroid Build Coastguard Worker 19*c2c26c8bSAndroid Build Coastguard Worker #define FTABSIZ 150 /* max number of outstanding requests (default) */ 20*c2c26c8bSAndroid Build Coastguard Worker #define MAX_PROCS 20 /* max no children for TCP requests */ 21*c2c26c8bSAndroid Build Coastguard Worker #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */ 22*c2c26c8bSAndroid Build Coastguard Worker #define EDNS_PKTSZ 1280 /* default max EDNS.0 UDP packet from RFC2671 */ 23*c2c26c8bSAndroid Build Coastguard Worker #define TIMEOUT 10 /* drop UDP queries after TIMEOUT seconds */ 24*c2c26c8bSAndroid Build Coastguard Worker #define FORWARD_TEST 50 /* try all servers every 50 queries */ 25*c2c26c8bSAndroid Build Coastguard Worker #define FORWARD_TIME 10 /* or 10 seconds */ 26*c2c26c8bSAndroid Build Coastguard Worker #define RANDOM_SOCKS 64 /* max simultaneous random ports */ 27*c2c26c8bSAndroid Build Coastguard Worker #define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */ 28*c2c26c8bSAndroid Build Coastguard Worker #define CACHESIZ 150 /* default cache size */ 29*c2c26c8bSAndroid Build Coastguard Worker #define MAXLEASES 150 /* maximum number of DHCP leases */ 30*c2c26c8bSAndroid Build Coastguard Worker #define PING_WAIT 3 /* wait for ping address-in-use test */ 31*c2c26c8bSAndroid Build Coastguard Worker #define PING_CACHE_TIME 30 /* Ping test assumed to be valid this long. */ 32*c2c26c8bSAndroid Build Coastguard Worker #define DECLINE_BACKOFF 600 /* disable DECLINEd static addresses for this long */ 33*c2c26c8bSAndroid Build Coastguard Worker #define DHCP_PACKET_MAX 16384 /* hard limit on DHCP packet size */ 34*c2c26c8bSAndroid Build Coastguard Worker #define SMALLDNAME 40 /* most domain names are smaller than this */ 35*c2c26c8bSAndroid Build Coastguard Worker #define HOSTSFILE "/etc/hosts" 36*c2c26c8bSAndroid Build Coastguard Worker #ifdef __uClinux__ 37*c2c26c8bSAndroid Build Coastguard Worker #define RESOLVFILE "/etc/config/resolv.conf" 38*c2c26c8bSAndroid Build Coastguard Worker #else 39*c2c26c8bSAndroid Build Coastguard Worker #define RESOLVFILE "/etc/resolv.conf" 40*c2c26c8bSAndroid Build Coastguard Worker #endif 41*c2c26c8bSAndroid Build Coastguard Worker #define RUNFILE "/var/run/dnsmasq.pid" 42*c2c26c8bSAndroid Build Coastguard Worker 43*c2c26c8bSAndroid Build Coastguard Worker #ifndef LEASEFILE 44*c2c26c8bSAndroid Build Coastguard Worker #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__) 45*c2c26c8bSAndroid Build Coastguard Worker #define LEASEFILE "/var/db/dnsmasq.leases" 46*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__sun__) || defined(__sun) 47*c2c26c8bSAndroid Build Coastguard Worker #define LEASEFILE "/var/cache/dnsmasq.leases" 48*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__ANDROID__) 49*c2c26c8bSAndroid Build Coastguard Worker #define LEASEFILE "/data/misc/dhcp/dnsmasq.leases" 50*c2c26c8bSAndroid Build Coastguard Worker #else 51*c2c26c8bSAndroid Build Coastguard Worker #define LEASEFILE "/var/lib/misc/dnsmasq.leases" 52*c2c26c8bSAndroid Build Coastguard Worker #endif 53*c2c26c8bSAndroid Build Coastguard Worker #endif 54*c2c26c8bSAndroid Build Coastguard Worker 55*c2c26c8bSAndroid Build Coastguard Worker #ifndef CONFFILE 56*c2c26c8bSAndroid Build Coastguard Worker #if defined(__FreeBSD__) 57*c2c26c8bSAndroid Build Coastguard Worker #define CONFFILE "/usr/local/etc/dnsmasq.conf" 58*c2c26c8bSAndroid Build Coastguard Worker #else 59*c2c26c8bSAndroid Build Coastguard Worker #define CONFFILE "/etc/dnsmasq.conf" 60*c2c26c8bSAndroid Build Coastguard Worker #endif 61*c2c26c8bSAndroid Build Coastguard Worker #endif 62*c2c26c8bSAndroid Build Coastguard Worker 63*c2c26c8bSAndroid Build Coastguard Worker #define DEFLEASE 3600 /* default lease time, 1 hour */ 64*c2c26c8bSAndroid Build Coastguard Worker #define CHUSER "nobody" 65*c2c26c8bSAndroid Build Coastguard Worker #define CHGRP "dip" 66*c2c26c8bSAndroid Build Coastguard Worker #define DHCP_SERVER_PORT 67 67*c2c26c8bSAndroid Build Coastguard Worker #define DHCP_CLIENT_PORT 68 68*c2c26c8bSAndroid Build Coastguard Worker #define DHCP_SERVER_ALTPORT 1067 69*c2c26c8bSAndroid Build Coastguard Worker #define DHCP_CLIENT_ALTPORT 1068 70*c2c26c8bSAndroid Build Coastguard Worker #define LOG_MAX 5 /* log-queue length */ 71*c2c26c8bSAndroid Build Coastguard Worker #define RANDFILE "/dev/urandom" 72*c2c26c8bSAndroid Build Coastguard Worker #define DAD_WAIT 1 /* retry binding IPv6 sockets for this long */ 73*c2c26c8bSAndroid Build Coastguard Worker 74*c2c26c8bSAndroid Build Coastguard Worker /* A small collection of RR-types which are missing on some platforms */ 75*c2c26c8bSAndroid Build Coastguard Worker 76*c2c26c8bSAndroid Build Coastguard Worker #ifndef T_SIG 77*c2c26c8bSAndroid Build Coastguard Worker #define T_SIG 24 78*c2c26c8bSAndroid Build Coastguard Worker #endif 79*c2c26c8bSAndroid Build Coastguard Worker 80*c2c26c8bSAndroid Build Coastguard Worker #ifndef T_SRV 81*c2c26c8bSAndroid Build Coastguard Worker #define T_SRV 33 82*c2c26c8bSAndroid Build Coastguard Worker #endif 83*c2c26c8bSAndroid Build Coastguard Worker 84*c2c26c8bSAndroid Build Coastguard Worker #ifndef T_OPT 85*c2c26c8bSAndroid Build Coastguard Worker #define T_OPT 41 86*c2c26c8bSAndroid Build Coastguard Worker #endif 87*c2c26c8bSAndroid Build Coastguard Worker 88*c2c26c8bSAndroid Build Coastguard Worker #ifndef T_TKEY 89*c2c26c8bSAndroid Build Coastguard Worker #define T_TKEY 249 90*c2c26c8bSAndroid Build Coastguard Worker #endif 91*c2c26c8bSAndroid Build Coastguard Worker 92*c2c26c8bSAndroid Build Coastguard Worker #ifndef T_TSIG 93*c2c26c8bSAndroid Build Coastguard Worker #define T_TSIG 250 94*c2c26c8bSAndroid Build Coastguard Worker #endif 95*c2c26c8bSAndroid Build Coastguard Worker 96*c2c26c8bSAndroid Build Coastguard Worker /* Follows system specific switches. If you run on a 97*c2c26c8bSAndroid Build Coastguard Worker new system, you may want to edit these. 98*c2c26c8bSAndroid Build Coastguard Worker May replace this with Autoconf one day. 99*c2c26c8bSAndroid Build Coastguard Worker 100*c2c26c8bSAndroid Build Coastguard Worker HAVE_LINUX_NETWORK 101*c2c26c8bSAndroid Build Coastguard Worker HAVE_BSD_NETWORK 102*c2c26c8bSAndroid Build Coastguard Worker HAVE_SOLARIS_NETWORK 103*c2c26c8bSAndroid Build Coastguard Worker define exactly one of these to alter interaction with kernel networking. 104*c2c26c8bSAndroid Build Coastguard Worker 105*c2c26c8bSAndroid Build Coastguard Worker HAVE_BROKEN_RTC 106*c2c26c8bSAndroid Build Coastguard Worker define this on embedded systems which don't have an RTC 107*c2c26c8bSAndroid Build Coastguard Worker which keeps time over reboots. Causes dnsmasq to use uptime 108*c2c26c8bSAndroid Build Coastguard Worker for timing, and keep lease lengths rather than expiry times 109*c2c26c8bSAndroid Build Coastguard Worker in its leases file. This also make dnsmasq "flash disk friendly". 110*c2c26c8bSAndroid Build Coastguard Worker Normally, dnsmasq tries very hard to keep the on-disk leases file 111*c2c26c8bSAndroid Build Coastguard Worker up-to-date: rewriting it after every renewal. When HAVE_BROKEN_RTC 112*c2c26c8bSAndroid Build Coastguard Worker is in effect, the lease file is only written when a new lease is 113*c2c26c8bSAndroid Build Coastguard Worker created, or an old one destroyed. (Because those are the only times 114*c2c26c8bSAndroid Build Coastguard Worker it changes.) This vastly reduces the number of file writes, and makes 115*c2c26c8bSAndroid Build Coastguard Worker it viable to keep the lease file on a flash filesystem. 116*c2c26c8bSAndroid Build Coastguard Worker NOTE: when enabling or disabling this, be sure to delete any old 117*c2c26c8bSAndroid Build Coastguard Worker leases file, otherwise dnsmasq may get very confused. 118*c2c26c8bSAndroid Build Coastguard Worker 119*c2c26c8bSAndroid Build Coastguard Worker HAVE_DHCP 120*c2c26c8bSAndroid Build Coastguard Worker define this to get dnsmasq's DHCP server. 121*c2c26c8bSAndroid Build Coastguard Worker 122*c2c26c8bSAndroid Build Coastguard Worker HAVE_SCRIPT 123*c2c26c8bSAndroid Build Coastguard Worker define this to get the ability to call scripts on lease-change 124*c2c26c8bSAndroid Build Coastguard Worker 125*c2c26c8bSAndroid Build Coastguard Worker HAVE_GETOPT_LONG 126*c2c26c8bSAndroid Build Coastguard Worker define this if you have GNU libc or GNU getopt. 127*c2c26c8bSAndroid Build Coastguard Worker 128*c2c26c8bSAndroid Build Coastguard Worker HAVE_ARC4RANDOM 129*c2c26c8bSAndroid Build Coastguard Worker define this if you have arc4random() to get better security from DNS spoofs 130*c2c26c8bSAndroid Build Coastguard Worker by using really random ids (OpenBSD) 131*c2c26c8bSAndroid Build Coastguard Worker 132*c2c26c8bSAndroid Build Coastguard Worker HAVE_SOCKADDR_SA_LEN 133*c2c26c8bSAndroid Build Coastguard Worker define this if struct sockaddr has sa_len field (*BSD) 134*c2c26c8bSAndroid Build Coastguard Worker 135*c2c26c8bSAndroid Build Coastguard Worker NOTES: 136*c2c26c8bSAndroid Build Coastguard Worker For Linux you should define 137*c2c26c8bSAndroid Build Coastguard Worker HAVE_LINUX_NETWORK 138*c2c26c8bSAndroid Build Coastguard Worker HAVE_GETOPT_LONG 139*c2c26c8bSAndroid Build Coastguard Worker you should NOT define 140*c2c26c8bSAndroid Build Coastguard Worker HAVE_ARC4RANDOM 141*c2c26c8bSAndroid Build Coastguard Worker HAVE_SOCKADDR_SA_LEN 142*c2c26c8bSAndroid Build Coastguard Worker 143*c2c26c8bSAndroid Build Coastguard Worker For *BSD systems you should define 144*c2c26c8bSAndroid Build Coastguard Worker HAVE_BSD_NETWORK 145*c2c26c8bSAndroid Build Coastguard Worker HAVE_SOCKADDR_SA_LEN 146*c2c26c8bSAndroid Build Coastguard Worker and you MAY define 147*c2c26c8bSAndroid Build Coastguard Worker HAVE_ARC4RANDOM - OpenBSD and FreeBSD and NetBSD version 2.0 or later 148*c2c26c8bSAndroid Build Coastguard Worker HAVE_GETOPT_LONG - NetBSD, later FreeBSD 149*c2c26c8bSAndroid Build Coastguard Worker (FreeBSD and OpenBSD only if you link GNU getopt) 150*c2c26c8bSAndroid Build Coastguard Worker 151*c2c26c8bSAndroid Build Coastguard Worker */ 152*c2c26c8bSAndroid Build Coastguard Worker 153*c2c26c8bSAndroid Build Coastguard Worker /* platform independent options- uncomment to enable */ 154*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_DHCP 155*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_SCRIPT 156*c2c26c8bSAndroid Build Coastguard Worker /* #define HAVE_BROKEN_RTC */ 157*c2c26c8bSAndroid Build Coastguard Worker 158*c2c26c8bSAndroid Build Coastguard Worker /* Allow DHCP to be disabled with COPTS=-DNO_DHCP */ 159*c2c26c8bSAndroid Build Coastguard Worker #ifdef NO_DHCP 160*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_DHCP 161*c2c26c8bSAndroid Build Coastguard Worker #endif 162*c2c26c8bSAndroid Build Coastguard Worker 163*c2c26c8bSAndroid Build Coastguard Worker /* Allow scripts to be disabled with COPTS=-DNO_SCRIPT */ 164*c2c26c8bSAndroid Build Coastguard Worker #ifdef NO_SCRIPT 165*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SCRIPT 166*c2c26c8bSAndroid Build Coastguard Worker #endif 167*c2c26c8bSAndroid Build Coastguard Worker 168*c2c26c8bSAndroid Build Coastguard Worker /* platform dependent options. */ 169*c2c26c8bSAndroid Build Coastguard Worker 170*c2c26c8bSAndroid Build Coastguard Worker /* Must preceed __linux__ since uClinux defines __linux__ too. */ 171*c2c26c8bSAndroid Build Coastguard Worker #if defined(__uClinux__) 172*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_LINUX_NETWORK 173*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 174*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_ARC4RANDOM 175*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SOCKADDR_SA_LEN 176*c2c26c8bSAndroid Build Coastguard Worker /* Never use fork() on uClinux. Note that this is subtly different from the 177*c2c26c8bSAndroid Build Coastguard Worker --keep-in-foreground option, since it also suppresses forking new 178*c2c26c8bSAndroid Build Coastguard Worker processes for TCP connections and disables the call-a-script on leasechange 179*c2c26c8bSAndroid Build Coastguard Worker system. It's intended for use on MMU-less kernels. */ 180*c2c26c8bSAndroid Build Coastguard Worker #define NO_FORK 181*c2c26c8bSAndroid Build Coastguard Worker 182*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__UCLIBC__) 183*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_LINUX_NETWORK 184*c2c26c8bSAndroid Build Coastguard Worker #if defined(__UCLIBC_HAS_GNU_GETOPT__) || \ 185*c2c26c8bSAndroid Build Coastguard Worker ((__UCLIBC_MAJOR__ == 0) && (__UCLIBC_MINOR__ == 9) && (__UCLIBC_SUBLEVEL__ < 21)) 186*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 187*c2c26c8bSAndroid Build Coastguard Worker #endif 188*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_ARC4RANDOM 189*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SOCKADDR_SA_LEN 190*c2c26c8bSAndroid Build Coastguard Worker #if !defined(__ARCH_HAS_MMU__) && !defined(__UCLIBC_HAS_MMU__) 191*c2c26c8bSAndroid Build Coastguard Worker #define NO_FORK 192*c2c26c8bSAndroid Build Coastguard Worker #endif 193*c2c26c8bSAndroid Build Coastguard Worker #if defined(__UCLIBC_HAS_IPV6__) 194*c2c26c8bSAndroid Build Coastguard Worker #ifndef IPV6_V6ONLY 195*c2c26c8bSAndroid Build Coastguard Worker #define IPV6_V6ONLY 26 196*c2c26c8bSAndroid Build Coastguard Worker #endif 197*c2c26c8bSAndroid Build Coastguard Worker #endif 198*c2c26c8bSAndroid Build Coastguard Worker 199*c2c26c8bSAndroid Build Coastguard Worker /* This is for glibc 2.x */ 200*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__linux__) 201*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_LINUX_NETWORK 202*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 203*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_ARC4RANDOM 204*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SOCKADDR_SA_LEN 205*c2c26c8bSAndroid Build Coastguard Worker 206*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || \ 207*c2c26c8bSAndroid Build Coastguard Worker defined(__FreeBSD_kernel__) 208*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_BSD_NETWORK 209*c2c26c8bSAndroid Build Coastguard Worker /* Later verions of FreeBSD have getopt_long() */ 210*c2c26c8bSAndroid Build Coastguard Worker #if defined(optional_argument) && defined(required_argument) 211*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 212*c2c26c8bSAndroid Build Coastguard Worker #endif 213*c2c26c8bSAndroid Build Coastguard Worker #if !defined(__FreeBSD_kernel__) 214*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_ARC4RANDOM 215*c2c26c8bSAndroid Build Coastguard Worker #endif 216*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_SOCKADDR_SA_LEN 217*c2c26c8bSAndroid Build Coastguard Worker 218*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__APPLE__) 219*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_BSD_NETWORK 220*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_GETOPT_LONG 221*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_ARC4RANDOM 222*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_SOCKADDR_SA_LEN 223*c2c26c8bSAndroid Build Coastguard Worker /* Define before sys/socket.h is included so we get socklen_t */ 224*c2c26c8bSAndroid Build Coastguard Worker #define _BSD_SOCKLEN_T_ 225*c2c26c8bSAndroid Build Coastguard Worker 226*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__NetBSD__) 227*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_BSD_NETWORK 228*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 229*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_ARC4RANDOM 230*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_SOCKADDR_SA_LEN 231*c2c26c8bSAndroid Build Coastguard Worker 232*c2c26c8bSAndroid Build Coastguard Worker #elif defined(__sun) || defined(__sun__) 233*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_SOLARIS_NETWORK 234*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_GETOPT_LONG 235*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_ARC4RANDOM 236*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SOCKADDR_SA_LEN 237*c2c26c8bSAndroid Build Coastguard Worker #define _XPG4_2 238*c2c26c8bSAndroid Build Coastguard Worker #define __EXTENSIONS__ 239*c2c26c8bSAndroid Build Coastguard Worker #define ETHER_ADDR_LEN 6 240*c2c26c8bSAndroid Build Coastguard Worker 241*c2c26c8bSAndroid Build Coastguard Worker #endif 242*c2c26c8bSAndroid Build Coastguard Worker 243*c2c26c8bSAndroid Build Coastguard Worker /* Decide if we're going to support IPv6 */ 244*c2c26c8bSAndroid Build Coastguard Worker /* IPv6 can be forced off with "make COPTS=-DNO_IPV6" */ 245*c2c26c8bSAndroid Build Coastguard Worker /* We assume that systems which don't have IPv6 246*c2c26c8bSAndroid Build Coastguard Worker headers don't have ntop and pton either */ 247*c2c26c8bSAndroid Build Coastguard Worker 248*c2c26c8bSAndroid Build Coastguard Worker #if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY) && !defined(NO_IPV6) 249*c2c26c8bSAndroid Build Coastguard Worker #define HAVE_IPV6 250*c2c26c8bSAndroid Build Coastguard Worker #define ADDRSTRLEN INET6_ADDRSTRLEN 251*c2c26c8bSAndroid Build Coastguard Worker #if defined(SOL_IPV6) 252*c2c26c8bSAndroid Build Coastguard Worker #define IPV6_LEVEL SOL_IPV6 253*c2c26c8bSAndroid Build Coastguard Worker #else 254*c2c26c8bSAndroid Build Coastguard Worker #define IPV6_LEVEL IPPROTO_IPV6 255*c2c26c8bSAndroid Build Coastguard Worker #endif 256*c2c26c8bSAndroid Build Coastguard Worker #elif defined(INET_ADDRSTRLEN) 257*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_IPV6 258*c2c26c8bSAndroid Build Coastguard Worker #define ADDRSTRLEN INET_ADDRSTRLEN 259*c2c26c8bSAndroid Build Coastguard Worker #else 260*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_IPV6 261*c2c26c8bSAndroid Build Coastguard Worker #define ADDRSTRLEN 16 /* 4*3 + 3 dots + NULL */ 262*c2c26c8bSAndroid Build Coastguard Worker #endif 263*c2c26c8bSAndroid Build Coastguard Worker 264*c2c26c8bSAndroid Build Coastguard Worker /* Can't do scripts without fork */ 265*c2c26c8bSAndroid Build Coastguard Worker #ifdef NOFORK 266*c2c26c8bSAndroid Build Coastguard Worker #undef HAVE_SCRIPT 267*c2c26c8bSAndroid Build Coastguard Worker #endif 268