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);