You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2011/04/29 21:28:14 UTC
svn commit: r1097923 - in /trafficserver/traffic/trunk/lib/ts:
ink_res_init.cc ink_resolver.h
Author: amc
Date: Fri Apr 29 19:28:14 2011
New Revision: 1097923
URL: http://svn.apache.org/viewvc?rev=1097923&view=rev
Log:
TS-756
Modified:
trafficserver/traffic/trunk/lib/ts/ink_res_init.cc
trafficserver/traffic/trunk/lib/ts/ink_resolver.h
Modified: trafficserver/traffic/trunk/lib/ts/ink_res_init.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_res_init.cc?rev=1097923&r1=1097922&r2=1097923&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_res_init.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_res_init.cc Fri Apr 29 19:28:14 2011
@@ -93,12 +93,6 @@
int inet_aton(register const char *cp, struct in_addr *addr);
#endif
-#ifdef RESOLVSORT
-static const char sort_mask[] = "/&";
-#define ISSORTMASK(ch) (strchr(sort_mask, ch) != NULL)
-static u_int32_t net_mask __P((struct in_addr));
-#endif
-
#if !defined(isascii) /* XXX - could be a function */
# define isascii(c) (!(c & 0200))
#endif
@@ -116,19 +110,11 @@ static u_int32_t net_mask __P((struct in
*/
static void
ink_res_nclose(ink_res_state statp) {
- int ns;
-
if (statp->_vcsock >= 0) {
(void) close(statp->_vcsock);
statp->_vcsock = -1;
statp->_flags &= ~(INK_RES_F_VC | INK_RES_F_CONN);
}
- for (ns = 0; ns < statp->_u._ext.nscount; ns++) {
- if (statp->_u._ext.nssocks[ns] != -1) {
- (void) close(statp->_u._ext.nssocks[ns]);
- statp->_u._ext.nssocks[ns] = -1;
- }
- }
}
static void
@@ -232,7 +218,6 @@ ink_res_setoptions(ink_res_state statp,
NOWARN_UNUSED(source);
const char *cp = options;
int i;
- struct __ink_res_state_ext *ext = statp->_u._ext.ext;
#ifdef DEBUG
if (statp->options & INK_RES_DEBUG)
@@ -315,57 +300,15 @@ ink_res_setoptions(ink_res_state statp,
else if (!strncmp(cp, "dname", sizeof("dname") - 1)) {
statp->options |= INK_RES_USE_DNAME;
}
- else if (!strncmp(cp, "nibble:", sizeof("nibble:") - 1)) {
- if (ext == NULL)
- goto skip;
- cp += sizeof("nibble:") - 1;
- i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix) - 1);
- strncpy(ext->nsuffix, cp, i);
- ext->nsuffix[i] = '\0';
- }
- else if (!strncmp(cp, "nibble2:", sizeof("nibble2:") - 1)) {
- if (ext == NULL)
- goto skip;
- cp += sizeof("nibble2:") - 1;
- i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix2) - 1);
- strncpy(ext->nsuffix2, cp, i);
- ext->nsuffix2[i] = '\0';
- }
- else if (!strncmp(cp, "v6revmode:", sizeof("v6revmode:") - 1)) {
- cp += sizeof("v6revmode:") - 1;
- /* "nibble" and "bitstring" used to be valid */
- if (!strncmp(cp, "single", sizeof("single") - 1)) {
- statp->options |= INK_RES_NO_NIBBLE2;
- } else if (!strncmp(cp, "both", sizeof("both") - 1)) {
- statp->options &= ~INK_RES_NO_NIBBLE2;
- }
- }
else {
/* XXX - print a warning here? */
}
- skip:
/* skip to next run of spaces */
while (*cp && *cp != ' ' && *cp != '\t')
cp++;
}
}
-#ifdef RESOLVSORT
-/* XXX - should really support CIDR which means explicit masks always. */
-static u_int32_t
-ink_net_mask(in) /*!< XXX - should really use system's version of this */
- struct in_addr in;
-{
- register u_int32_t i = ntohl(in.s_addr);
-
- if (IN_CLASSA(i))
- return (htonl(IN_CLASSA_NET));
- else if (IN_CLASSB(i))
- return (htonl(IN_CLASSB_NET));
- return (htonl(IN_CLASSC_NET));
-}
-#endif
-
static u_int
ink_res_randomid(void) {
struct timeval now;
@@ -374,20 +317,6 @@ ink_res_randomid(void) {
return (0xffff & (now.tv_sec ^ now.tv_usec ^ getpid()));
}
-const char *
-ink_res_get_nibblesuffix(ink_res_state statp) {
- if (statp->_u._ext.ext)
- return (statp->_u._ext.ext->nsuffix);
- return ("ip6.arpa");
-}
-
-const char *
-ink_res_get_nibblesuffix2(ink_res_state statp) {
- if (statp->_u._ext.ext)
- return (statp->_u._ext.ext->nsuffix2);
- return ("ip6.int");
-}
-
/*%
* Set up default settings. If the configuration file exist, the values
* there will have precedence. Otherwise, the server address is set to
@@ -420,10 +349,6 @@ ink_res_init(ink_res_state statp, const
int nserv = 0;
int haveenv = 0;
int havesearch = 0;
-#ifdef RESOLVSORT
- int nsort = 0;
- char *net;
-#endif
int dots;
int maxns = INK_MAXNS;
@@ -449,8 +374,6 @@ ink_res_init(ink_res_state statp, const
if (statp->_u._ext.ext != NULL) {
memset(statp->_u._ext.ext, 0, sizeof(*statp->_u._ext.ext));
statp->_u._ext.ext->nsaddrs[0].sin = statp->nsaddr_list[0].sin;
- strcpy(statp->_u._ext.ext->nsuffix, "ip6.arpa");
- strcpy(statp->_u._ext.ext->nsuffix2, "ip6.int");
} else {
/*
* Historically res_init() rarely, if at all, failed.
@@ -468,10 +391,6 @@ ink_res_init(ink_res_state statp, const
statp->res_h_errno = NETDB_INTERNAL;
maxns = 0;
}
-#ifdef RESOLVSORT
- statp->nsort = 0;
-#endif
-
#ifdef SOLARIS2
/*
@@ -679,58 +598,11 @@ ink_res_init(ink_res_state statp, const
}
continue;
}
-#ifdef RESOLVSORT
- if (MATCH(buf, "sortlist")) {
- struct in_addr a;
-
- cp = buf + sizeof("sortlist") - 1;
- while (nsort < INK_MAXRESOLVSORT) {
- while (*cp == ' ' || *cp == '\t')
- cp++;
- if (*cp == '\0' || *cp == '\n' || *cp == ';')
- break;
- net = cp;
- while (*cp && !ISSORTMASK(*cp) && *cp != ';' &&
- isascii(*cp) && !isspace((unsigned char)*cp))
- cp++;
- n = *cp;
- *cp = 0;
- if (inet_aton(net, &a)) {
- statp->sort_list[nsort].addr = a;
- if (ISSORTMASK(n)) {
- *cp++ = n;
- net = cp;
- while (*cp && *cp != ';' &&
- isascii(*cp) &&
- !isspace((unsigned char)*cp))
- cp++;
- n = *cp;
- *cp = 0;
- if (inet_aton(net, &a)) {
- statp->sort_list[nsort].mask = a.s_addr;
- } else {
- statp->sort_list[nsort].mask =
- net_mask(statp->sort_list[nsort].addr);
- }
- } else {
- statp->sort_list[nsort].mask =
- net_mask(statp->sort_list[nsort].addr);
- }
- nsort++;
- }
- *cp = n;
- }
- continue;
- }
-#endif
if (MATCH(buf, "options")) {
ink_res_setoptions(statp, buf + sizeof("options") - 1, "conf");
continue;
}
}
-#ifdef RESOLVSORT
- statp->nsort = nsort;
-#endif
(void) fclose(fp);
}
Modified: trafficserver/traffic/trunk/lib/ts/ink_resolver.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_resolver.h?rev=1097923&r1=1097922&r2=1097923&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_resolver.h (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_resolver.h Fri Apr 29 19:28:14 2011
@@ -117,17 +117,15 @@
/* KAME extensions: use higher bit to avoid conflict with ISC use */
#define INK_RES_USE_DNAME 0x10000000 /*%< use DNAME */
#define INK_RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */
-#define INK_RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */
#define INK_RES_DEFAULT (INK_RES_RECURSE | INK_RES_DEFNAMES | \
- INK_RES_DNSRCH | INK_RES_NO_NIBBLE2)
+ INK_RES_DNSRCH)
#define INK_MAXNS 32 /*%< max # name servers we'll track */
#define INK_MAXDFLSRCH 3 /*%< # default domain levels to try */
#define INK_MAXDNSRCH 6 /*%< max # domains in search path */
#define INK_LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */
#define INK_RES_TIMEOUT 5 /*%< min. seconds between retries */
-#define INK_MAXRESOLVSORT 10 /*%< number of net to sort on */
#define INK_RES_TIMEOUT 5 /*%< min. seconds between retries */
#define INK_RES_MAXNDOTS 15 /*%< should reflect bit field size */
#define INK_RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */
@@ -217,10 +215,6 @@ struct __ink_res_state {
unsigned ndots:4; /*%< threshold for initial abs. query */
unsigned nsort:4; /*%< number of elements in sort_list[] */
char unused[3];
- struct {
- struct in_addr addr;
- u_int32_t mask;
- } sort_list[MAXRESOLVSORT];
res_send_qhook qhook; /*%< query hook */
res_send_rhook rhook; /*%< response hook */
int res_h_errno; /*%< last one set for this context */
@@ -233,25 +227,14 @@ struct __ink_res_state {
struct {
u_int16_t nscount;
u_int16_t nstimes[INK_MAXNS]; /*%< ms. */
- int nssocks[INK_MAXNS];
struct __ink_res_state_ext *ext; /*%< extention for IPv6 */
} _ext;
} _u;
};
typedef __ink_res_state *ink_res_state;
-
struct __ink_res_state_ext {
union ink_res_sockaddr_union nsaddrs[INK_MAXNS];
- struct sort_list {
- int af;
- union {
- struct in_addr ina;
- struct in6_addr in6a;
- } addr, mask;
- } sort_list[MAXRESOLVSORT];
- char nsuffix[64];
- char nsuffix2[64];
};
@@ -267,4 +250,5 @@ int inet_aton(register const char *cp, s
int ink_ns_name_ntop(const u_char *src, char *dst, size_t dstsiz);
-#endif /* _ink_resolver_h_ */
+#endif /* _ink_resolver_h_ */
+