Author: zwoop
Date: Fri Nov 12 00:03:58 2010
New Revision: 1034217

URL: http://svn.apache.org/viewvc?rev=1034217&view=rev
Log:
TS-435 Cleanup / fixes for DNS.

This fixes a few issues / bugs with DNS in general, and SplitDNS
in particular. It still doesn't solve the SplitDNS problems, but
it's a step towards it.

Modified:
    trafficserver/traffic/trunk/iocore/dns/DNS.cc
    trafficserver/traffic/trunk/iocore/dns/I_DNSProcessor.h
    trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h
    trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc
    trafficserver/traffic/trunk/libinktomi++/ink_config.h.in
    trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc
    trafficserver/traffic/trunk/libinktomi++/ink_resolver.h

Modified: trafficserver/traffic/trunk/iocore/dns/DNS.cc
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/DNS.cc?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/DNS.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/DNS.cc Fri Nov 12 00:03:58 2010
@@ -798,7 +798,7 @@ write_dns(DNSHandler * h)
   if (h->in_write_dns)
     return;
   h->in_write_dns = true;
-  Debug("dns", "in_flight: %d, dns_max_dns_in_flight: %d", h->in_flight, 
dns_max_dns_in_flight);
+  // Debug("dns", "in_flight: %d, dns_max_dns_in_flight: %d", h->in_flight, 
dns_max_dns_in_flight);
   if (h->in_flight < dns_max_dns_in_flight) {
     DNSEntry *e = h->entries.head;
     while (e) {
@@ -995,7 +995,9 @@ DNSProcessor::getby(const char *x, int l
   if (type == T_SRV) {
     Debug("dns_srv", "DNSProcessor::getby attempting an SRV lookup for %s, 
timeout = %d", x, timeout);
   }
+
   DNSEntry *e = dnsEntryAllocator.alloc();
+
   e->retries = dns_retries;
   e->init(x, len, type, cont, wait, adnsH, timeout);
   MUTEX_TRY_LOCK(lock, e->mutex, this_ethread());
@@ -1570,7 +1572,7 @@ ink_dns_init(ModuleVersion v)
 }
 
 
-
+#ifdef TS_HAS_TESTS
 struct DNSRegressionContinuation;
 typedef int (DNSRegressionContinuation::*DNSRegContHandler) (int, void *);
 
@@ -1630,3 +1632,5 @@ REGRESSION_TEST(DNS) (RegressionTest * t
   eventProcessor.schedule_in(NEW(new DNSRegressionContinuation(4, 4, 
dns_test_hosts, t, atype, pstatus)),
                              HRTIME_SECONDS(1));
 }
+
+#endif

Modified: trafficserver/traffic/trunk/iocore/dns/I_DNSProcessor.h
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/I_DNSProcessor.h?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/I_DNSProcessor.h (original)
+++ trafficserver/traffic/trunk/iocore/dns/I_DNSProcessor.h Fri Nov 12 00:03:58 
2010
@@ -26,12 +26,6 @@
 
 #include "SRV.h"
 
-/*
-  #include "I_EventSystem.h"
-  #include "I_HostDB.h"
-  #include "I_Net.h"
-*/
-
 #define  MAX_DNS_PACKET_LEN         8192
 #define  DNS_MAX_ALIASES              35
 #define  DNS_MAX_ADDRS                35
@@ -59,7 +53,7 @@ struct HostEnt
 
   SRVHosts srv_hosts;
 
-    HostEnt()
+  HostEnt()
   {
     memset(this, 0, sizeof(*this));
   }
@@ -125,7 +119,6 @@ struct DNSProcessor: public Processor
 //
 extern DNSProcessor dnsProcessor;
 
-
 //
 // Inline Functions
 //

Modified: trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h (original)
+++ trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h Fri Nov 12 00:03:58 
2010
@@ -185,12 +185,12 @@ struct DNSEntry: public Continuation
 
   void init(const char *x, int len, int qtype_arg, Continuation * acont, 
HostEnt ** wait, DNSHandler * adnsH, int timeout);
 
-    DNSEntry()
-  : Continuation(NULL),
-    qtype(0),
-    retries(DEFAULT_DNS_RETRIES),
-    which_ns(NO_NAMESERVER_SELECTED), submit_time(0), send_time(0), 
qname_len(0), domains(0),
-    timeout(0), result_ent(0), sem_ent(0), dnsH(0), written_flag(false), 
once_written_flag(false), last(false)
+   DNSEntry()
+     : Continuation(NULL),
+       qtype(0),
+       retries(DEFAULT_DNS_RETRIES),
+       which_ns(NO_NAMESERVER_SELECTED), submit_time(0), send_time(0), 
qname_len(0), domains(0),
+       timeout(0), result_ent(0), sem_ent(0), dnsH(0), written_flag(false), 
once_written_flag(false), last(false)
   {
     for (int i = 0; i < MAX_DNS_RETRIES; i++)
       id[i] = -1;

Modified: trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc Fri Nov 12 00:03:58 2010
@@ -31,22 +31,9 @@
 #include "inktomi++.h"
 
 #ifdef SPLIT_DNS
-
-#include "P_SplitDNS.h"
-
 #include <sys/types.h>
-//#include "ControlMatcher.h"
-//#include "Main.h"
-//#include "Error.h"
-//#include "Continuation.h"
-//#include "Event.h"
-//#include "EventProcessor.h"
-//#include "Config.h"
-//#include "HTTP.h"
-
+#include "P_SplitDNS.h"
 #include "MatcherUtils.h"
-//#include "Tokenizer.h"
-//#include "HttpTransact.h"
 #include "HostLookup.h"
 
 SplitDNSConfigProcessor SplitDNSconfigProcessor;
@@ -77,7 +64,6 @@ const matcher_tags sdns_dest_tags = {
    -------------------------------------------------------------- */
 enum SplitDNSCB_t
 {
-
   SDNS_FILE_CB,
   SDNS_ENABLE_CB
 };
@@ -100,7 +86,7 @@ Ptr<ProxyMutex> SplitDNSConfig::dnsHandl
    SplitDNSResult::SplitDNSResult()
    -------------------------------------------------------------- */
 inline SplitDNSResult::SplitDNSResult()
-: r(DNS_SRVR_UNDEFINED), m_line_number(0), m_rec(0), m_wrap_around(false)
+  : r(DNS_SRVR_UNDEFINED), m_line_number(0), m_rec(0), m_wrap_around(false)
 {
 }
 
@@ -116,12 +102,8 @@ SplitDNS::SplitDNS()
 }
 
 
-/* --------------------------------------------------------------
-   SplitDNS::SplitDNS()
-   -------------------------------------------------------------- */
 SplitDNS::~SplitDNS()
 {
-
   if (m_DNSSrvrTable) {
     delete m_DNSSrvrTable;
   }
@@ -129,7 +111,6 @@ SplitDNS::~SplitDNS()
   if (m_DefaultDNSSrvr) {
     delete m_DefaultDNSSrvr;
   }
-
 }
 
 
@@ -170,12 +151,9 @@ SplitDNSConfig::startup()
 void
 SplitDNSConfig::reconfigure()
 {
-
-  SplitDNS *params;
-  params = NEW(new SplitDNS);
+  SplitDNS *params = NEW(new SplitDNS);
 
   IOCORE_ReadConfigInt32(gsplit_dns_enabled, 
"proxy.config.dns.splitDNS.enabled");
-
   params->m_SplitDNSlEnable = gsplit_dns_enabled;
 
   if (0 == gsplit_dns_enabled)
@@ -185,7 +163,6 @@ SplitDNSConfig::reconfigure()
 
   params->m_numEle = params->m_DNSSrvrTable->getEntryCount();
   if (0 == params->m_DNSSrvrTable || (0 == params->m_numEle)) {
-
     Warning("No NAMEDs provided! Disabling SplitDNS");
     gsplit_dns_enabled = 0;
     return;
@@ -215,21 +192,16 @@ SplitDNSConfig::reconfigure()
   /* ----------------------------
      Handle default DNS server
      ---------------------------- */
-
   params->m_DefaultDNSSrvr = createDefaultServer();
-
   if ((0 == params->m_def_domain[0]) && (0 != params->m_DefaultDNSSrvr) && 
(true == params->m_bEnableFastPath)) {
-
     ink_strncpy(params->m_def_domain, 
params->m_DefaultDNSSrvr->m_servers.x_def_domain, MAXDNAME);
   }
   params->m_def_domain_len = strlen(params->m_def_domain);
-
   m_id = SplitDNSconfigProcessor.set(m_id, params);
 
   if (is_debug_tag_set("splitdns_config")) {
     SplitDNSConfig::print();
   }
-
 }
 
 
@@ -239,25 +211,19 @@ SplitDNSConfig::reconfigure()
 void
 SplitDNSConfig::print()
 {
-
   SplitDNS *params = SplitDNSConfig::acquire();
 
   Debug("splitdns_config", "DNS Server Selection Config\n");
   Debug("splitdns_config", "\tEnabled \n", params->m_SplitDNSlEnable);
 
   if (params->m_DefaultDNSSrvr == NULL) {
-
     Debug("splitdns_config", "\tNo Default DNS Server\n");
   } else {
-
     Debug("splitdns_config", "\tDefault DNS Server:\n");
     params->m_DefaultDNSSrvr->Print();
   }
 
-  Debug("splitdns_config", "  ");
-
   params->m_DNSSrvrTable->Print();
-
   SplitDNSConfig::release(params);
 }
 
@@ -274,7 +240,6 @@ SplitDNS::getDNSRecord(char *hostname)
 
   if (0 < m_def_domain_len) {
     if (0 == strchr(hostname, '.')) {
-
       int hlen = strlen(hostname) + m_def_domain_len;
 
       if (MAXDNAME > hlen) {
@@ -283,7 +248,6 @@ SplitDNS::getDNSRecord(char *hostname)
         strncat(szHostName, ".", remaining_str_size);
         remaining_str_size--;
         strncat(szHostName, m_def_domain, remaining_str_size);
-
         pInHost = &szHostName[0];
       }
     }
@@ -299,19 +263,13 @@ SplitDNS::getDNSRecord(char *hostname)
   DNSReqAllocator.free(pRD);
 
   if (DNS_SRVR_UNDEFINED == res.r) {
-
     Warning("Failed to match a valid DNS server!");
     ink_assert(!"Failed to match a valid DNS server");
-
   } else if (DNS_SRVR_DEFAULT == res.r) {
-
     Warning("Failed to match a valid DNS server! Using defaults ...");
     return (void *) &(res.m_rec->m_servers);
     //ink_assert(!"Failed to match a valid DNS server");
-  }
-
-  else if (DNS_SRVR_SPECIFIED == res.r) {
-
+  } else if (DNS_SRVR_SPECIFIED == res.r) {
     return (void *) &(res.m_rec->m_servers);
   }
 
@@ -344,7 +302,6 @@ SplitDNS::findServer(RD * rdata, SplitDN
      the 'alleged' fast path ...
      --------------------------- */
   if (m_bEnableFastPath) {
-
     SplitDNSRecord *data_ptr = 0;
     char *pHost = (char *) rdata->get_host();
     if (0 == pHost) {
@@ -355,7 +312,6 @@ SplitDNS::findServer(RD * rdata, SplitDN
     int len = strlen(pHost);
     HostLeaf *pxHL = (HostLeaf *) m_pxLeafArray;
     for (int i = 0; i < m_numEle; i++) {
-
       if (0 == pxHL)
         break;
 
@@ -379,30 +335,22 @@ SplitDNS::findServer(RD * rdata, SplitDN
       }
     }
   } else {
-
     tablePtr->Match(rdata, result);
   }
 
   rec = result->m_rec;
-
   if (rec == NULL) {
-
     /* ------------------------------------------
        return default DNS server.
        however, still return DNS_SRVR_UNDEFINED
        ------------------------------------------ */
-
     if (defaultPtr != NULL) {
-
       rec = result->m_rec = defaultPtr;
       result->r = DNS_SRVR_DEFAULT;
-
     } else {
-
       result->r = DNS_SRVR_UNDEFINED;
     }
     return;
-
   } else {
     result->r = DNS_SRVR_SPECIFIED;
   }
@@ -412,16 +360,12 @@ SplitDNS::findServer(RD * rdata, SplitDN
 
     switch (result->r) {
     case DNS_SRVR_FAIL:
-
       Debug("splitdns_config", "Result for %s was %s", host, 
SDNSResultStr[result->r]);
       break;
-
     case DNS_SRVR_SPECIFIED:
-
       Debug("splitdns_config", "Result for %s was dns servers \n", host);
       result->m_rec->Print();
       break;
-
     default:
       // This covers:
       // DNS_SRVR_UNDEFINED and DNS_SRVR_DEFAULT
@@ -430,6 +374,7 @@ SplitDNS::findServer(RD * rdata, SplitDN
   }
 }
 
+
 /* --------------------------------------------------------------
    SplitDNSRecord::ProcessDNSHosts()
    -------------------------------------------------------------- */
@@ -456,14 +401,11 @@ SplitDNSRecord::ProcessDNSHosts(char *va
      Allocate the servers array and Loop through the
      set of servers specified
      ------------------------------------------------ */
-
   for (int i = 0; i < numTok; i++) {
     current = pTok[i];
-
     tmp = (char *) strchr(current, ':');
     // coverity[secure_coding]
     if (tmp != NULL && sscanf(tmp + 1, "%d", &port) != 1) {
-
       return "Malformed DNS port";
     }
 
@@ -477,17 +419,14 @@ SplitDNSRecord::ProcessDNSHosts(char *va
       for (; *scan != '\0' && ParseRules::is_wslfcr(*scan); scan++);
 
       if (*scan != '\0') {
-
         return "Garbage trailing entry or invalid separator";
       }
 
       if (tmp - current > (MAXDNAME - 1)) {
         return "DNS server name (ip) is too long";
-
       } else if (tmp - current == 0) {
         return "server string is emtpy";
       }
-
       *tmp = 0;
     }
 
@@ -533,7 +472,6 @@ SplitDNSRecord::ProcessDefDomain(char *v
 
   int len = 0;
   if (pTok[0] && 0 != (len = strlen(pTok[0]))) {
-
     memcpy(&m_servers.x_def_domain[0], pTok[0], len);
     m_servers.x_def_domain[len] = '\0';
   }
@@ -563,7 +501,6 @@ SplitDNSRecord::ProcessDomainSrchList(ch
   pSp = &m_servers.x_domain_srch_list[0];
 
   for (int i = 0; i < numTok; i++) {
-
     current = pTok[i];
     cnt = sz += strlen(current);
 
@@ -588,7 +525,6 @@ SplitDNSRecord::ProcessDomainSrchList(ch
 char *
 SplitDNSRecord::Init(matcher_line * line_info)
 {
-
   const char *errPtr = NULL;
   const int errBufLen = 1024;
   char *errBuf = (char *) xmalloc(errBufLen * sizeof(char));
@@ -597,9 +533,7 @@ SplitDNSRecord::Init(matcher_line * line
   char *val;
 
   this->line_num = line_info->line_num;
-
   for (int i = 0; i < MATCHER_MAX_TOKENS; i++) {
-
     label = line_info->line[0][i];
     val = line_info->line[1][i];
 
@@ -608,67 +542,53 @@ SplitDNSRecord::Init(matcher_line * line
     }
 
     if (strcasecmp(label, "def_domain") == 0) {
-
       if (NULL != (errPtr = ProcessDefDomain(val))) {
         snprintf(errBuf, errBufLen, "%s %s at line %d", modulePrefix, errPtr, 
line_num);
         return errBuf;
       }
-
       line_info->line[0][i] = NULL;
       line_info->num_el--;
-
       continue;
     }
 
     if (strcasecmp(label, "search_list") == 0) {
-
       if (NULL != (errPtr = ProcessDomainSrchList(val))) {
         snprintf(errBuf, errBufLen, "%s %s at line %d", modulePrefix, errPtr, 
line_num);
         return errBuf;
       }
-
       line_info->line[0][i] = NULL;
       line_info->num_el--;
-
       continue;
     }
 
     if (strcasecmp(label, "named") == 0) {
-
       if (NULL != (errPtr = ProcessDNSHosts(val))) {
         snprintf(errBuf, errBufLen, "%s %s at line %d", modulePrefix, errPtr, 
line_num);
         return errBuf;
       }
-
       line_info->line[0][i] = NULL;
       line_info->num_el--;
+      continue;
     }
   }
 
   if (this->m_servers.x_server_ip[0] == 0) {
-
     snprintf(errBuf, errBufLen, "%s No server specified in splitdns.config at 
line %d", modulePrefix, line_num);
     return errBuf;
-
   }
 
   DNSHandler *dnsH = new DNSHandler;
   ink_res_state res = new __ink_res_state;
-  memset(res, 0, sizeof(__ink_res_state));
-
-  if ((-1 == ink_res_init(res,
-                          &m_servers.x_server_ip[0],
-                          &m_servers.x_dns_server_port[0],
-                          &m_servers.x_def_domain[0], 
&m_servers.x_domain_srch_list[0]))) {
-
-    snprintf(errBuf, errBufLen,
-                 "Failed to build res record for the servers %u ... on port 
%d",
-                 m_servers.x_server_ip[0], m_servers.x_dns_server_port[0]);
 
+  memset(res, 0, sizeof(__ink_res_state));
+  if ((-1 == ink_res_init(res, &m_servers.x_server_ip[0], 
&m_servers.x_dns_server_port[0],
+                          &m_servers.x_def_domain[0], 
&m_servers.x_domain_srch_list[0], NULL))) {
+    snprintf(errBuf, errBufLen, "Failed to build res record for the servers %u 
... on port %d",
+             m_servers.x_server_ip[0], m_servers.x_dns_server_port[0]);
     return errBuf;
   }
-  dnsH->m_res = res;
 
+  dnsH->m_res = res;
   dnsH->mutex = SplitDNSConfig::dnsHandler_mutex;
   dnsH->options = res->options;
   dnsH->ip = DEFAULT_DOMAIN_NAME_SERVER;
@@ -683,11 +603,8 @@ SplitDNSRecord::Init(matcher_line * line
      Process any modifiers to the directive, if they exist
      ----------------------------------------------------- */
   if (line_info->num_el > 0) {
-
     tmp = ProcessModifiers(line_info);
-
     if (tmp != NULL) {
-
       snprintf(errBuf, errBufLen, "%s %s at line %d in splitdns.config", 
modulePrefix, tmp, line_num);
       return errBuf;
     }
@@ -708,8 +625,8 @@ SplitDNSRecord::UpdateMatch(SplitDNSResu
 {
   NOWARN_UNUSED(rdata);
   int last_number = result->m_line_number;
-  if ((last_number<0) || (last_number> this->line_num)) {
 
+  if ((last_number<0) || (last_number> this->line_num)) {
     result->m_rec = this;
     result->m_line_number = this->line_num;
 
@@ -726,9 +643,7 @@ SplitDNSRecord::Print()
 {
   struct in_addr address;
 
-  Debug("splitdns_config", "\t\t");
   for (int i = 0; i < m_dnsSrvr_cnt; i++) {
-
     address.s_addr = m_servers.x_server_ip[i];
     char *pAdr = inet_ntoa(address);
 
@@ -744,20 +659,24 @@ SplitDNSRecord *
 createDefaultServer()
 {
   SplitDNSRecord *newRec;
-
+  // TODO: Hmmmm, we ought to only have to read this once, in DNS.cc ...
+  char *resolv_conf = IOCORE_ConfigReadString("proxy.config.dns.resolv_conf");
   ink_res_state res = new __ink_res_state;
-  memset(res, 0, sizeof(__ink_res_state));
 
-  if (ink_res_init(res, 0, 0, 0, 0) < 0) {
+  memset(res, 0, sizeof(__ink_res_state));
+  if (ink_res_init(res, 0, 0, 0, 0, resolv_conf) < 0) {
     Warning("no default name server configured!");
+    xfree(resolv_conf);
     return 0;
   }
+  xfree(resolv_conf);
 
   newRec = NEW(new SplitDNSRecord);
-
-  for (int i = 0; i < _res.nscount; i++) {
-    newRec->m_servers.x_server_ip[i] = _res.nsaddr_list[i].sin_addr.s_addr;
-    newRec->m_servers.x_dns_server_port[i] = 
ntohs(_res.nsaddr_list[i].sin_port);
+  printf(" Doing %d\n", res->nscount);
+  for (int i = 0; i < res->nscount; i++) {
+    // TODO: IPv6 ?
+    newRec->m_servers.x_server_ip[i] = res->nsaddr_list[i].sin.sin_addr.s_addr;
+    newRec->m_servers.x_dns_server_port[i] = 
ntohs(res->nsaddr_list[i].sin.sin_port);
   }
 
   newRec->m_servers.x_dnsH = new DNSHandler;
@@ -771,8 +690,8 @@ createDefaultServer()
   SET_CONTINUATION_HANDLER(newRec->m_servers.x_dnsH, 
&DNSHandler::startEvent_sdns);
   eventProcessor.schedule_imm(newRec->m_servers.x_dnsH, ET_DNS);
 
-  newRec->m_dnsSrvr_cnt = _res.nscount;
-  ink_strncpy(newRec->m_servers.x_def_domain, _res.defdname, MAXDNAME);
+  newRec->m_dnsSrvr_cnt = res->nscount;
+  ink_strncpy(newRec->m_servers.x_def_domain, res->defdname, MAXDNAME);
 
   newRec->m_domain_srch_list = 0;
   return newRec;
@@ -785,10 +704,10 @@ createDefaultServer()
 void
 splitDNS_CB(const char *token, RecDataT data_type, RecData value, void *data)
 {
-  (void) token;
-  (void) data_type;
-  (void) value;
-  (void) data;
+  NOWARN_UNUSED(token);
+  NOWARN_UNUSED(data_type);
+  NOWARN_UNUSED(value);
+  NOWARN_UNUSED(data);
   eventProcessor.schedule_imm(NEW(new 
SDNS_UpdateContinuation(reconfig_mutex)), ET_CALL);
 }
 
@@ -817,11 +736,9 @@ public:
 };
 
 SplitDNSConfigProcessor::SplitDNSConfigProcessor()
- : ninfos(0)
+  : ninfos(0)
 {
-  int i;
-
-  for (i = 0; i < MAX_CONFIGS; i++) {
+  for (int i = 0; i < MAX_CONFIGS; i++) {
     infos[i] = NULL;
   }
 }

Modified: trafficserver/traffic/trunk/libinktomi++/ink_config.h.in
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_config.h.in?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_config.h.in (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_config.h.in Fri Nov 12 
00:03:58 2010
@@ -148,7 +148,6 @@
 # define INK_NO_REVERSE                 1
 # define INK_NO_SOCKS                   1
 # define INK_NO_STAT_PAGES              1
-# define TS_USE_TESTS                   0
 # define INK_USE_MUTEX_FOR_ATOMICLISTS  1
 # define INK_USE_MUTEX_FOR_FREELISTS    1
 # define USE_MD5_FOR_MMH                1

Modified: trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_res_init.cc?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc Fri Nov 12 
00:03:58 2010
@@ -411,7 +411,8 @@ ink_res_get_nibblesuffix2(ink_res_state 
  */
 /*% This function has to be reachable by res_data.c but not publically. */
 int
-ink_res_init(ink_res_state statp, unsigned int *pHostList, int *pPort, char 
*pDefDomain, char *pSearchList, char *pResolvConf) {
+ink_res_init(ink_res_state statp, const unsigned int *pHostList, const int 
*pPort, const char *pDefDomain, const char *pSearchList,
+             const char *pResolvConf) {
   register FILE *fp;
   register char *cp, **pp;
   register int n;
@@ -539,16 +540,12 @@ ink_res_init(ink_res_state statp, unsign
      ---------------------------------------------- */
 
   if (pDefDomain && '\0' != *pDefDomain && '\n' != *pDefDomain) {
-
-    cp = pDefDomain;
-    strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
+    strncpy(statp->defdname, pDefDomain, sizeof(statp->defdname) - 1);
     if ((cp = strpbrk(statp->defdname, " \t\n")) != NULL)
       *cp = '\0';
   }
   if (pSearchList && '\0' != *pSearchList && '\n' != *pSearchList) {
-
-    cp = pSearchList;
-    strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
+    strncpy(statp->defdname, pSearchList, sizeof(statp->defdname) - 1);
     if ((cp = strchr(statp->defdname, '\n')) != NULL)
       *cp = '\0';
     /*

Modified: trafficserver/traffic/trunk/libinktomi++/ink_resolver.h
URL: 
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_resolver.h?rev=1034217&r1=1034216&r2=1034217&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_resolver.h (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_resolver.h Fri Nov 12 00:03:58 
2010
@@ -242,21 +242,21 @@ 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];
+  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];
 };
 
 
-int ink_res_init(ink_res_state, unsigned int *pHostList, int *pPort = NULL, 
char *pDefDomain = NULL,
-                 char *pSearchList = NULL, char *pResolvConf = NULL);
+int ink_res_init(ink_res_state, const unsigned int *pHostList, const int 
*pPort = NULL, const char *pDefDomain = NULL,
+                 const char *pSearchList = NULL, const char *pResolvConf = 
NULL);
 int ink_res_mkquery(ink_res_state, int, const char *, int, int,
                     const unsigned char *, int, const unsigned char *, 
unsigned char *, int);
 


Reply via email to