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/07/15 19:01:22 UTC
svn commit: r1147244 - in /trafficserver/traffic/trunk: iocore/dns/DNS.cc
mgmt/utils/MgmtUtils.cc proxy/hdrs/HTTP.h
Author: amc
Date: Fri Jul 15 17:01:21 2011
New Revision: 1147244
URL: http://svn.apache.org/viewvc?rev=1147244&view=rev
Log:
Ameloriation for TS-837 which are generally cleaner code.
Modified:
trafficserver/traffic/trunk/iocore/dns/DNS.cc
trafficserver/traffic/trunk/mgmt/utils/MgmtUtils.cc
trafficserver/traffic/trunk/proxy/hdrs/HTTP.h
Modified: trafficserver/traffic/trunk/iocore/dns/DNS.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/dns/DNS.cc?rev=1147244&r1=1147243&r2=1147244&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/dns/DNS.cc (original)
+++ trafficserver/traffic/trunk/iocore/dns/DNS.cc Fri Jul 15 17:01:21 2011
@@ -76,7 +76,6 @@ static int local_num_entries = 1;
static int attempt_num_entries = 1;
char try_server_names[DEFAULT_NUM_TRY_SERVER][MAXDNAME];
-
static inline char *
strnchr(char *s, char c, int len) {
while (*s && *s != c && len)
@@ -613,17 +612,18 @@ DNSHandler::rr_failure(int ndx)
}
}
+static inline unsigned int get_rcode(char* buff) {
+ return reinterpret_cast<HEADER*>(buff)->rcode;
+}
+
+static inline unsigned int get_rcode(HostEnt* ent) {
+ return get_rcode(reinterpret_cast<char*>(ent));
+}
+
static bool
-good_rcode(char *buf)
-{
- HEADER *h = (HEADER *) buf;
- switch (h->rcode) {
- default:
- return false;
- case NOERROR:
- case NXDOMAIN:
- return true;
- }
+good_rcode(char *buff) {
+ unsigned int r = get_rcode(buff);
+ return NOERROR == r || NXDOMAIN == r;
}
@@ -665,7 +665,7 @@ DNSHandler::recv_dns(int event, Event *e
buf->packet_size = res;
Debug("dns", "received packet size = %d", res);
if (dns_ns_rr) {
- Debug("dns", "round-robin: nameserver %d DNS response code = %d", dnsc->num, ((HEADER *) buf->buf)->rcode);
+ Debug("dns", "round-robin: nameserver %d DNS response code = %d", dnsc->num, get_rcode(buf));
if (good_rcode(buf->buf)) {
received_one(dnsc->num);
if (ns_down[dnsc->num]) {
@@ -677,7 +677,7 @@ DNSHandler::recv_dns(int event, Event *e
}
} else {
if (!dnsc->num) {
- Debug("dns", "primary DNS response code = %d", ((HEADER *) buf->buf)->rcode);
+ Debug("dns", "primary DNS response code = %d", get_rcode(buf));
if (good_rcode(buf->buf)) {
if (name_server)
recover();
@@ -855,17 +855,20 @@ static bool
write_dns_event(DNSHandler *h, DNSEntry *e)
{
ProxyMutex *mutex = h->mutex;
- char buffer[MAX_DNS_PACKET_LEN];
+ union {
+ HEADER _h;
+ char _b[MAX_DNS_PACKET_LEN];
+ } blob;
int r = 0;
- if ((r = _ink_res_mkquery(h->m_res, e->qname, e->qtype, buffer)) <= 0) {
+ if ((r = _ink_res_mkquery(h->m_res, e->qname, e->qtype, blob._b)) <= 0) {
Debug("dns", "cannot build query: %s", e->qname);
dns_result(h, e, NULL, false);
return true;
}
uint16_t i = h->get_query_id();
- ((HEADER *) (buffer))->id = htons(i);
+ blob._h.id = htons(i);
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]);
@@ -873,7 +876,7 @@ write_dns_event(DNSHandler *h, DNSEntry
e->id[dns_retries - e->retries] = i;
Debug("dns", "send query for %s to fd %d", e->qname, h->con[h->name_server].fd);
- int s = socketManager.send(h->con[h->name_server].fd, buffer, r, 0);
+ int s = socketManager.send(h->con[h->name_server].fd, blob._b, r, 0);
if (s != r) {
Debug("dns", "send() failed: qname = %s, %d != %d, nameserver= %d", e->qname, s, r, h->name_server);
// changed if condition from 'r < 0' to 's < 0' - 8/2001 pas
Modified: trafficserver/traffic/trunk/mgmt/utils/MgmtUtils.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/utils/MgmtUtils.cc?rev=1147244&r1=1147243&r2=1147244&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/utils/MgmtUtils.cc (original)
+++ trafficserver/traffic/trunk/mgmt/utils/MgmtUtils.cc Fri Jul 15 17:01:21 2011
@@ -764,13 +764,13 @@ mgmt_localhost_ip()
#if defined(LOCAL_MANAGER)
bool found;
char *hostname;
- unsigned int ip;
+ in_addr ip;
int rec_err = RecGetRecordString_Xmalloc("proxy.node.hostname_FQ", &hostname);
found = (rec_err == REC_ERR_OKAY);
if (found && hostname) {
- ip = host_to_ip(hostname);
- if (ip != INADDR_ANY) {
- return inet_ntoa(*(struct in_addr *) &ip);
+ ip.s_addr = host_to_ip(hostname);
+ if (ip.s_addr != INADDR_ANY) {
+ return inet_ntoa(ip);
}
}
#endif
Modified: trafficserver/traffic/trunk/proxy/hdrs/HTTP.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/HTTP.h?rev=1147244&r1=1147243&r2=1147244&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/hdrs/HTTP.h (original)
+++ trafficserver/traffic/trunk/proxy/hdrs/HTTP.h Fri Jul 15 17:01:21 2011
@@ -1364,18 +1364,19 @@ inline HTTPInfo &
HTTPInfo::operator =(const HTTPInfo & m)
{
m_alt = m.m_alt;
- return (*this);
+ return *this;
}
inline INK_MD5
HTTPInfo::object_key_get()
{
INK_MD5 val;
+ int32_t* pi = reinterpret_cast<int32_t*>(&val);
- ((int32_t *) & val)[0] = m_alt->m_object_key[0];
- ((int32_t *) & val)[1] = m_alt->m_object_key[1];
- ((int32_t *) & val)[2] = m_alt->m_object_key[2];
- ((int32_t *) & val)[3] = m_alt->m_object_key[3];
+ pi[0] = m_alt->m_object_key[0];
+ pi[1] = m_alt->m_object_key[1];
+ pi[2] = m_alt->m_object_key[2];
+ pi[3] = m_alt->m_object_key[3];
return val;
}
@@ -1383,44 +1384,51 @@ HTTPInfo::object_key_get()
inline void
HTTPInfo::object_key_get(INK_MD5 *md5)
{
- ((int32_t *) md5)[0] = m_alt->m_object_key[0];
- ((int32_t *) md5)[1] = m_alt->m_object_key[1];
- ((int32_t *) md5)[2] = m_alt->m_object_key[2];
- ((int32_t *) md5)[3] = m_alt->m_object_key[3];
+ int32_t* pi = reinterpret_cast<int32_t*>(md5);
+ pi[0] = m_alt->m_object_key[0];
+ pi[1] = m_alt->m_object_key[1];
+ pi[2] = m_alt->m_object_key[2];
+ pi[3] = m_alt->m_object_key[3];
}
inline bool
HTTPInfo::compare_object_key(const INK_MD5 *md5)
{
- return ((m_alt->m_object_key[0] == ((int32_t *) md5)[0]) &&
- (m_alt->m_object_key[1] == ((int32_t *) md5)[1]) &&
- (m_alt->m_object_key[2] == ((int32_t *) md5)[2]) && (m_alt->m_object_key[3] == ((int32_t *) md5)[3]));
+ int32_t const* pi = reinterpret_cast<int32_t const*>(md5);
+ return ((m_alt->m_object_key[0] == pi[0]) &&
+ (m_alt->m_object_key[1] == pi[1]) &&
+ (m_alt->m_object_key[2] == pi[2]) &&
+ (m_alt->m_object_key[3] == pi[3])
+ );
}
inline int64_t
HTTPInfo::object_size_get()
{
int64_t val;
+ int32_t* pi = reinterpret_cast<int32_t*>(&val);
- ((int32_t *) & val)[0] = m_alt->m_object_size[0];
- ((int32_t *) & val)[1] = m_alt->m_object_size[1];
+ pi[0] = m_alt->m_object_size[0];
+ pi[1] = m_alt->m_object_size[1];
return val;
}
inline void
HTTPInfo::object_key_set(INK_MD5 & md5)
{
- m_alt->m_object_key[0] = ((int32_t *) & md5)[0];
- m_alt->m_object_key[1] = ((int32_t *) & md5)[1];
- m_alt->m_object_key[2] = ((int32_t *) & md5)[2];
- m_alt->m_object_key[3] = ((int32_t *) & md5)[3];
+ int32_t* pi = reinterpret_cast<int32_t*>(&md5);
+ m_alt->m_object_key[0] = pi[0];
+ m_alt->m_object_key[1] = pi[1];
+ m_alt->m_object_key[2] = pi[2];
+ m_alt->m_object_key[3] = pi[3];
}
inline void
HTTPInfo::object_size_set(int64_t size)
{
- m_alt->m_object_size[0] = ((int32_t *) & size)[0];
- m_alt->m_object_size[1] = ((int32_t *) & size)[1];
+ int32_t* pi = reinterpret_cast<int32_t*>(&size);
+ m_alt->m_object_size[0] = pi[0];
+ m_alt->m_object_size[1] = pi[1];
}