You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2010/11/18 16:12:31 UTC
svn commit: r1036479 - in /trafficserver/traffic/trunk: iocore/dns/
iocore/net/ libinktomi++/ proxy/
Author: zwoop
Date: Thu Nov 18 15:12:31 2010
New Revision: 1036479
URL: http://svn.apache.org/viewvc?rev=1036479&view=rev
Log:
TS-435 Fixes for SplitDNS to function again.
Author: mohan_zl
Review and mods: leif
In addition, this fixes a few more things:
- Each DNSHandler has its own "trigger" queue
- The DNSHandlers for SplitDNS now run on the DNS thread
- Support for multiple DNS servers per SplitDNS rule
- Eliminate duplicated "default" DNSHandler with SplitDNS
- Various cleanup.
Modified:
trafficserver/traffic/trunk/iocore/dns/DNS.cc
trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc
trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h
trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h
trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc
trafficserver/traffic/trunk/iocore/net/P_UnixNet.h
trafficserver/traffic/trunk/iocore/net/UnixNet.cc
trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc
trafficserver/traffic/trunk/proxy/Main.cc
Modified: trafficserver/traffic/trunk/iocore/dns/DNS.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/DNS.cc?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/DNS.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/DNS.cc Thu Nov 18 15:12:31 2010
@@ -133,8 +133,12 @@ DNSProcessor::start(int)
dnsProcessor.thread = eventProcessor.eventthread[ET_DNS][0];
dns_failover_try_period = dns_timeout + 1; // Modify the "default" accordingly
- dns_init();
- open();
+
+ // The SplitDNS "processor" has it's own default servers, so don't need that here ...
+ if (!SplitDNSConfig::gsplit_dns_enabled) {
+ dns_init();
+ open();
+ }
return 0;
}
@@ -244,7 +248,6 @@ void
DNSEntry::init(const char *x, int len, int qtype_arg,
Continuation * acont, HostEnt ** wait, DNSHandler * adnsH, int dns_lookup_timeout)
{
- (void) adnsH;
qtype = qtype_arg;
submit_time = ink_get_hrtime();
action = acont;
@@ -252,8 +255,10 @@ DNSEntry::init(const char *x, int len, i
submit_thread = acont->mutex->thread_holding;
#ifdef SPLIT_DNS
- dnsH = SplitDNSConfig::gsplit_dns_enabled && adnsH ? adnsH : dnsProcessor.handler;
+ dnsH = SplitDNSConfig::gsplit_dns_enabled ? adnsH : dnsProcessor.handler;
+ ink_release_assert(dnsH); // TODO: Should probably remove this at some point?
#else
+ INK_NOWARN(adnsH);
dnsH = dnsProcessor.handler;
#endif // SPLIT_DNS
@@ -429,12 +434,7 @@ int
DNSHandler::startEvent_sdns(int event, Event * e)
{
NOWARN_UNUSED(event);
- //
- // If this is for the default server, get it
- //
-
- //added by YTS Team, yamsat
- Debug("dns", "DNSHandler::startEvent_sdns: on thread%d\n", e->ethread->id);
+ Debug("dns", "DNSHandler::startEvent_sdns: on thread %d\n", e->ethread->id);
if (ip == DEFAULT_DOMAIN_NAME_SERVER) {
// seems that res_init always sets m_res.nscount to at least 1!
@@ -640,24 +640,23 @@ good_rcode(char *buf)
}
-//changed by YTS Team, yamsat
void
DNSHandler::recv_dns(int event, Event * e)
{
NOWARN_UNUSED(event);
- NetHandler *nh = get_NetHandler(e->ethread); //added by YTS Team, yamsat
- DNSConnection *dnsc = NULL; //added by YTS Team, yamsat
+ DNSConnection *dnsc = NULL;
- while ((dnsc = (DNSConnection *) nh->dnsqueue.dequeue())) {
+ while ((dnsc = (DNSConnection *) triggered.dequeue())) {
while (1) {
struct sockaddr_in sa_from;
- socklen_t sa_length = sizeof(sa_from);
+ socklen_t sa_length = sizeof(sa_from); // TODO: I'm guessing when we support IPv6,this will have to change.
+
if (!hostent_cache)
hostent_cache = dnsBufAllocator.alloc();
+
HostEnt *buf = hostent_cache;
- int res =
- socketManager.recvfrom(dnsc->fd, buf->buf, MAX_DNS_PACKET_LEN, 0, (struct sockaddr *) &sa_from, &sa_length);
- // verify that this response came from the correct server
+ int res = socketManager.recvfrom(dnsc->fd, buf->buf, MAX_DNS_PACKET_LEN, 0, (struct sockaddr *) &sa_from, &sa_length);
+
if (res == -EAGAIN)
break;
if (res <= 0) {
@@ -668,6 +667,8 @@ DNSHandler::recv_dns(int event, Event *
failover();
break;
}
+
+ // verify that this response came from the correct server
if (dnsc->sa.sin_addr.s_addr != sa_from.sin_addr.s_addr) {
Warning("received DNS response from unexpected named %d.%d.%d.%d", DOT_SEPARATED(sa_from.sin_addr.s_addr));
continue;
@@ -682,6 +683,7 @@ DNSHandler::recv_dns(int event, Event *
received_one(dnsc->num);
if (ns_down[dnsc->num]) {
struct sockaddr_in *sa = &m_res->nsaddr_list[dnsc->num].sin;
+
Warning("connection to DNS server %d.%d.%d.%d restored", DOT_SEPARATED(sa->sin_addr.s_addr));
ns_down[dnsc->num] = 0;
}
@@ -697,11 +699,12 @@ DNSHandler::recv_dns(int event, Event *
}
}
}
+
if (dns_process(this, buf, res)) {
if (dnsc->num == name_server)
received_one(name_server);
}
- } /* end of while(1) */
+ }
}
}
@@ -875,7 +878,7 @@ write_dns_event(DNSHandler * h, DNSEntry
uint16 i = h->get_query_id();
((HEADER *) (buffer))->id = htons(i);
- if(e->id[dns_retries - e->retries] >= 0) {
+ if (e->id[dns_retries - e->retries] >= 0) {
//clear previous id in case named was switched or domain was expanded
h->release_query_id(e->id[dns_retries - e->retries]);
}
@@ -1591,15 +1594,14 @@ struct DNSRegressionContinuation: public
{
(void) event;
if (event == DNS_EVENT_LOOKUP) {
- if (he)
- ++found;
- if (he)
- {
+ if (he) {
struct in_addr in;
- in.s_addr = *(unsigned int *) he->ent.h_addr_list[0];
- rprintf(test, "host %s [%s] = %s\n", hostnames[i - 1], he->ent.h_name, inet_ntoa(in));
- } else
- rprintf(test, "host %s not found\n", hostnames[i - 1]);
+ ++found;
+ in.s_addr = *(unsigned int *) he->ent.h_addr_list[0];
+ rprintf(test, "host %s [%s] = %s\n", hostnames[i - 1], he->ent.h_name, inet_ntoa(in));
+ } else {
+ rprintf(test, "host %s not found\n", hostnames[i - 1]);
+ }
}
if (i < hosts) {
dnsProcessor.gethostbyname(this, hostnames[i]);
@@ -1615,8 +1617,8 @@ struct DNSRegressionContinuation: public
}
DNSRegressionContinuation(int ahosts, int atofind, const char **ahostnames, RegressionTest * t, int atype, int *astatus)
-: Continuation(new_ProxyMutex()), hosts(ahosts), hostnames(ahostnames), type(atype),
- status(astatus), found(0), tofind(atofind), i(0), test(t) {
+ : Continuation(new_ProxyMutex()), hosts(ahosts), hostnames(ahostnames), type(atype),
+ status(astatus), found(0), tofind(atofind), i(0), test(t) {
SET_HANDLER((DNSRegContHandler) & DNSRegressionContinuation::mainEvent);
}
};
Modified: trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc Thu Nov 18 15:12:31 2010
@@ -31,6 +31,7 @@
#include "ink_unused.h" /* MAGIC_EDITING_TAG */
#include "P_DNS.h"
#include "P_DNSConnection.h"
+#include "P_DNSProcessor.h"
#define SET_TCP_NO_DELAY
#define SET_NO_LINGER
@@ -47,7 +48,7 @@
//
DNSConnection::DNSConnection():
- fd(NO_FD), num(0), generator((uint32)((uintptr_t)time(NULL) ^ (uintptr_t) this))
+ fd(NO_FD), num(0), generator((uint32)((uintptr_t)time(NULL) ^ (uintptr_t) this)), handler(NULL)
{
memset(&sa, 0, sizeof(struct sockaddr_in));
}
@@ -71,6 +72,12 @@ DNSConnection::close()
}
}
+void
+DNSConnection::trigger()
+{
+ handler->triggered.enqueue(this);
+}
+
int
DNSConnection::connect(unsigned int ip, int port,
bool non_blocking_connect, bool use_tcp, bool non_blocking, bool bind_random_port)
Modified: trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h (original)
+++ trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h Thu Nov 18 15:12:31 2010
@@ -55,6 +55,7 @@
//
// Connection
//
+struct DNSHandler;
struct DNSConnection
{
@@ -64,12 +65,13 @@ struct DNSConnection
LINK(DNSConnection, link);
EventIO eio;
InkRand generator;
+ DNSHandler* handler;
int connect(unsigned int ip, int port,
bool non_blocking_connect = NON_BLOCKING_CONNECT,
bool use_tcp = CONNECT_WITH_TCP, bool non_blocking = NON_BLOCKING, bool bind_random_port = BIND_ANY_PORT);
-
- int close(); // 0 on success, -errno on failure
+ int close();
+ void trigger();
virtual ~DNSConnection();
DNSConnection();
Modified: trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h (original)
+++ trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h Thu Nov 18 15:12:31 2010
@@ -219,6 +219,7 @@ struct DNSHandler: public Continuation
DNSConnection con[MAX_NAMED];
int options;
Queue<DNSEntry> entries;
+ Queue<DNSConnection> triggered;
int in_flight;
int name_server;
int in_write_dns;
@@ -300,12 +301,8 @@ struct DNSHandler: public Continuation
TS_INLINE DNSHandler::DNSHandler()
- :Continuation(NULL),
- ip(0),
- port(0),
- n_con(0),
- options(0),
- in_flight(0), name_server(0), in_write_dns(0), hostent_cache(0), last_primary_retry(0), last_primary_reopen(0),
+ : Continuation(NULL), ip(0), port(0), n_con(0), options(0), in_flight(0), name_server(0), in_write_dns(0),
+ hostent_cache(0), last_primary_retry(0), last_primary_reopen(0),
m_res(0), txn_lookup_timeout(0), generator((uint32)((uintptr_t)time(NULL) ^ (uintptr_t)this))
{
for (int i = 0; i < MAX_NAMED; i++) {
@@ -314,6 +311,7 @@ TS_INLINE DNSHandler::DNSHandler()
failover_soon_number[i] = 0;
crossed_failover_number[i] = 0;
ns_down[i] = 1;
+ con[i].handler = this;
}
memset(&qid_in_flight, 0, sizeof(qid_in_flight));
SET_HANDLER(&DNSHandler::startEvent);
Modified: trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc Thu Nov 18 15:12:31 2010
@@ -238,6 +238,7 @@ SplitDNS::getDNSRecord(char *hostname)
char *pInHost = hostname;
size_t remaining_str_size = sizeof szHostName;
+ Debug("splitdns", "Called SplitDNS::getDNSRecord(%s)", hostname);
if (0 < m_def_domain_len) {
if (0 == strchr(hostname, '.')) {
int hlen = strlen(hostname) + m_def_domain_len;
@@ -266,9 +267,8 @@ SplitDNS::getDNSRecord(char *hostname)
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 ...");
+ Debug("splitdns", "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) {
return (void *) &(res.m_rec->m_servers);
}
@@ -581,8 +581,8 @@ SplitDNSRecord::Init(matcher_line * line
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], NULL))) {
+ if ((-1 == ink_res_init(res, m_servers.x_server_ip, m_servers.x_dns_server_port,
+ m_servers.x_def_domain, m_servers.x_domain_srch_list, 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;
@@ -597,7 +597,9 @@ SplitDNSRecord::Init(matcher_line * line
m_servers.x_dnsH = dnsH;
SET_CONTINUATION_HANDLER(dnsH, &DNSHandler::startEvent_sdns);
- eventProcessor.schedule_imm(dnsH, ET_DNS);
+ EThread *thread = eventProcessor.eventthread[ET_DNS][0];
+
+ thread->schedule_imm(dnsH, ET_DNS);
/* -----------------------------------------------------
Process any modifiers to the directive, if they exist
@@ -672,7 +674,6 @@ createDefaultServer()
xfree(resolv_conf);
newRec = NEW(new SplitDNSRecord);
- 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;
@@ -688,7 +689,9 @@ createDefaultServer()
newRec->m_servers.x_dnsH->port = DOMAIN_SERVICE_PORT;
SET_CONTINUATION_HANDLER(newRec->m_servers.x_dnsH, &DNSHandler::startEvent_sdns);
- eventProcessor.schedule_imm(newRec->m_servers.x_dnsH, ET_DNS);
+ EThread *thread = eventProcessor.eventthread[ET_DNS][0];
+
+ thread->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);
Modified: trafficserver/traffic/trunk/iocore/net/P_UnixNet.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/P_UnixNet.h?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/P_UnixNet.h (original)
+++ trafficserver/traffic/trunk/iocore/net/P_UnixNet.h Thu Nov 18 15:12:31 2010
@@ -246,7 +246,6 @@ public:
QueM(UnixNetVConnection, NetState, read, ready_link) read_ready_list;
QueM(UnixNetVConnection, NetState, write, ready_link) write_ready_list;
Que(UnixNetVConnection, link) open_list;
- Que(DNSConnection, link) dnsqueue;
ASLLM(UnixNetVConnection, NetState, read, enable_link) read_enable_list;
ASLLM(UnixNetVConnection, NetState, write, enable_link) write_enable_list;
@@ -686,7 +685,8 @@ TS_INLINE int EventIO::refresh(int e) {
if (n && ne && event_loop) {
events = ne;
int retval = port_associate(event_loop->port_fd, PORT_SOURCE_FD, fd, events, this);
- Debug("iocore_eventio", "[EventIO::refresh] e(%d), ne(%d), events(%d), %d[%s]=port_associate(%d,%d,%d,%d,%p)", e, ne, events, retval, retval<0? strerror(errno) : "ok", event_loop->port_fd, PORT_SOURCE_FD, fd, events, this);
+ Debug("iocore_eventio", "[EventIO::refresh] e(%d), ne(%d), events(%d), %d[%s]=port_associate(%d,%d,%d,%d,%p)",
+ e, ne, events, retval, retval<0? strerror(errno) : "ok", event_loop->port_fd, PORT_SOURCE_FD, fd, events, this);
return retval;
}
}
Modified: trafficserver/traffic/trunk/iocore/net/UnixNet.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNet.cc?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNet.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNet.cc Thu Nov 18 15:12:31 2010
@@ -55,9 +55,10 @@ struct InactivityCop:public Continuation
vc_next = (UnixNetVConnection*)vc->link.next;
if (vc->inactivity_timeout_in && vc->next_inactivity_timeout_at && vc->next_inactivity_timeout_at < now){
vc->handleEvent(EVENT_IMMEDIATE, e);
- } else
+ } else {
if (vc->closed)
close_UnixNetVConnection(vc, e->ethread);
+ }
vc = vc_next;
}
return 0;
@@ -139,15 +140,15 @@ PollCont::pollEvent(int event, Event *e)
ptimeout.tv_nsec = 1000000 * (poll_timeout % 1000);
unsigned nget = 1;
if((retval = port_getn(pollDescriptor->port_fd,
- pollDescriptor->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
+ pollDescriptor->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
pollDescriptor->result = 0;
switch(errno) {
case EINTR:
case EAGAIN:
case ETIME:
if (nget > 0) {
- pollDescriptor->result = (int)nget;
+ pollDescriptor->result = (int)nget;
}
break;
default:
@@ -158,9 +159,9 @@ PollCont::pollEvent(int event, Event *e)
pollDescriptor->result = (int)nget;
}
NetDebug("iocore_net_poll", "[PollCont::pollEvent] %d[%s]=port_getn(%d,%p,%d,%d,%d),results(%d)",
- retval,retval < 0 ? strerror(errno) : "ok",
- pollDescriptor->port_fd, pollDescriptor->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pollDescriptor->result);
+ retval,retval < 0 ? strerror(errno) : "ok",
+ pollDescriptor->port_fd, pollDescriptor->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pollDescriptor->result);
#else
#error port me
#endif
@@ -299,8 +300,7 @@ NetHandler::mainNetEvent(int event, Even
NET_INCREMENT_DYN_STAT(net_handler_run_stat);
process_enabled_list(this, e->ethread);
- if (likely(!read_ready_list.empty() || !write_ready_list.empty() ||
- !read_enable_list.empty() || !write_enable_list.empty()))
+ if (likely(!read_ready_list.empty() || !write_ready_list.empty() || !read_enable_list.empty() || !write_enable_list.empty()))
poll_timeout = 0; // poll immediately returns -- we have triggered stuff to process right now
else
poll_timeout = net_config_poll_timeout;
@@ -321,9 +321,7 @@ NetHandler::mainNetEvent(int event, Even
struct timespec tv;
tv.tv_sec = poll_timeout / 1000;
tv.tv_nsec = 1000000 * (poll_timeout % 1000);
- pd->result = kevent(pd->kqueue_fd, NULL, 0,
- pd->kq_Triggered_Events, POLL_DESCRIPTOR_SIZE,
- &tv);
+ pd->result = kevent(pd->kqueue_fd, NULL, 0, pd->kq_Triggered_Events, POLL_DESCRIPTOR_SIZE, &tv);
NetDebug("iocore_net_main_poll", "[NetHandler::mainNetEvent] kevent(%d,%f), result=%d", pd->kqueue_fd,poll_timeout,pd->result);
#elif TS_USE_PORT
int retval;
@@ -331,15 +329,14 @@ NetHandler::mainNetEvent(int event, Even
ptimeout.tv_sec = poll_timeout / 1000;
ptimeout.tv_nsec = 1000000 * (poll_timeout % 1000);
unsigned nget = 1;
- if((retval = port_getn(pd->port_fd, pd->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
+ if((retval = port_getn(pd->port_fd, pd->Port_Triggered_Events, POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
pd->result = 0;
switch(errno) {
case EINTR:
case EAGAIN:
case ETIME:
if (nget > 0) {
- pd->result = (int)nget;
+ pd->result = (int)nget;
}
break;
default:
@@ -350,9 +347,10 @@ NetHandler::mainNetEvent(int event, Even
pd->result = (int)nget;
}
NetDebug("iocore_net_main_poll", "[NetHandler::mainNetEvent] %d[%s]=port_getn(%d,%p,%d,%d,%d),results(%d)",
- retval,retval < 0 ? strerror(errno) : "ok",
- pd->port_fd, pd->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pd->result);
+ retval,retval < 0 ? strerror(errno) : "ok",
+ pd->port_fd, pd->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pd->result);
+
#else
#error port me
#endif
@@ -390,13 +388,12 @@ NetHandler::mainNetEvent(int event, Even
}
} else if (epd->type == EVENTIO_DNS_CONNECTION) {
if (epd->data.dnscon != NULL) {
- dnsqueue.enqueue(epd->data.dnscon);
+ epd->data.dnscon->trigger(); // Make sure the DNSHandler for this con knows we triggered
#if defined(USE_EDGE_TRIGGER)
epd->refresh(EVENTIO_READ);
#endif
}
- }
- else if (epd->type == EVENTIO_ASYNC_SIGNAL)
+ } else if (epd->type == EVENTIO_ASYNC_SIGNAL)
net_signal_hook_callback(trigger_event->ethread);
ev_next_event(pd,x);
}
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=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc Thu Nov 18 15:12:31 2010
@@ -728,29 +728,18 @@ ink_res_init(ink_res_state statp, const
continue;
}
}
- if (nserv > 0)
- statp->nscount = nserv;
#ifdef RESOLVSORT
statp->nsort = nsort;
#endif
(void) fclose(fp);
}
-/*
- * Last chance to get a nameserver. This should not normally
- * be necessary
- */
-#ifdef NO_RESOLV_CONF
- if(nserv == 0)
- nserv = get_nameservers(statp);
-#endif
+ if (nserv > 0)
+ statp->nscount = nserv;
- if (statp->defdname[0] == 0 &&
- gethostname(buf, sizeof(statp->defdname) - 1) == 0 &&
- (cp = strchr(buf, '.')) != NULL)
+ if (statp->defdname[0] == 0 && gethostname(buf, sizeof(statp->defdname) - 1) == 0 && (cp = strchr(buf, '.')) != NULL)
strcpy(statp->defdname, cp + 1);
-
/* find components of local domain that might be searched */
if (havesearch == 0) {
pp = statp->dnsrch;
Modified: trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.cc?rev=1036479&r1=1036478&r2=1036479&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ trafficserver/traffic/trunk/proxy/Main.cc Thu Nov 18 15:12:31 2010
@@ -1918,8 +1918,7 @@ main(int argc, char **argv)
initIPAllow();
initCacheInspectorAllow();
ParentConfig::startup();
-#ifndef INK_NO_HOSTDB
- // fixme
+#ifdef SPLIT_DNS
SplitDNSConfig::startup();
#endif
#endif