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_ */
+