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];
 }