http://git-wip-us.apache.org/repos/asf/trafficserver/blob/65477944/iocore/cache/CachePages.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/CachePages.cc b/iocore/cache/CachePages.cc
index 5aa8bc5..13f2b2a 100644
--- a/iocore/cache/CachePages.cc
+++ b/iocore/cache/CachePages.cc
@@ -28,11 +28,11 @@
 #include "I_Tasks.h"
 #include "CacheControl.h"
 
-struct ShowCache: public ShowCont {
+struct ShowCache : public ShowCont {
   enum scan_type {
     scan_type_lookup,
     scan_type_delete,
-    scan_type_invalidate
+    scan_type_invalidate,
   };
 
   int vol_index;
@@ -65,9 +65,9 @@ struct ShowCache: public ShowCont {
   int handleCacheDeleteComplete(int event, Event *e);
   int handleCacheScanCallback(int event, Event *e);
 
-  ShowCache(Continuation *c, HTTPHdr *h):
-    ShowCont(c, h), vol_index(0), seg_index(0), scan_flag(scan_type_lookup),
-    cache_vc(0), buffer(0), buffer_reader(0), content_length(0), cvio(0)
+  ShowCache(Continuation *c, HTTPHdr *h)
+    : ShowCont(c, h), vol_index(0), seg_index(0), scan_flag(scan_type_lookup), 
cache_vc(0), buffer(0), buffer_reader(0),
+      content_length(0), cvio(0)
   {
     urlstrs_index = 0;
     linecount = 0;
@@ -93,7 +93,7 @@ struct ShowCache: public ShowCont {
       unsigned l, m;
       for (l = 0, m = 0; l < (unsigned)query_len; l++) {
         if (query[l] != '\015') {
-            query[m++] = query[l];
+          query[m++] = query[l];
         }
       }
       query[m] = '\0';
@@ -104,7 +104,7 @@ struct ShowCache: public ShowCont {
       if (p) {
         while ((p = strstr(p, "\n"))) {
           nstrings++;
-          if ((size_t) (p - query) >= strlen(query) - 1)
+          if ((size_t)(p - query) >= strlen(query) - 1)
             break;
           else
             p++;
@@ -112,22 +112,22 @@ struct ShowCache: public ShowCont {
       }
       // initialize url array
       show_cache_urlstrs = new char[nstrings + 1][500];
-      memset(show_cache_urlstrs, '\0', (nstrings + 1) * 500 * sizeof (char));
+      memset(show_cache_urlstrs, '\0', (nstrings + 1) * 500 * sizeof(char));
 
       char *q, *t;
       p = strstr(unescapedQuery, "url=");
       if (p) {
-        p += 4;                 // 4 ==> strlen("url=")
+        p += 4; // 4 ==> strlen("url=")
         t = strchr(p, '&');
         if (!t)
-          t = (char *) unescapedQuery + strlen(unescapedQuery);
+          t = (char *)unescapedQuery + strlen(unescapedQuery);
         for (int s = 0; p < t; s++) {
           show_cache_urlstrs[s][0] = '\0';
-          q = strstr(p, "%0D%0A" /* \r\n */);      // we used this in the JS 
to separate urls
+          q = strstr(p, "%0D%0A" /* \r\n */); // we used this in the JS to 
separate urls
           if (!q)
             q = t;
           ink_strlcpy(show_cache_urlstrs[s], p, sizeof(show_cache_urlstrs[s]));
-          p = q + 6;            // +6 ==> strlen(%0D%0A)
+          p = q + 6; // +6 ==> strlen(%0D%0A)
         }
       }
 
@@ -141,27 +141,27 @@ struct ShowCache: public ShowCont {
         unescapifyStr(show_cache_urlstrs[i]);
         Debug("cache_inspector", "URL %d: '%s'", i + 1, show_cache_urlstrs[i]);
       }
-
     }
 
     SET_HANDLER(&ShowCache::showMain);
   }
 
-  ~ShowCache() {
+  ~ShowCache()
+  {
     if (show_cache_urlstrs)
-      delete[]show_cache_urlstrs;
+      delete[] show_cache_urlstrs;
     url.destroy();
   }
-
 };
 
-#define STREQ_PREFIX(_x,_s) (!strncasecmp(_x,_s,sizeof(_s)-1))
-#define STREQ_LEN_PREFIX(_x,_l,_s) (path_len < sizeof(_s) && 
!strncasecmp(_x,_s,sizeof(_s)-1))
+#define STREQ_PREFIX(_x, _s) (!strncasecmp(_x, _s, sizeof(_s) - 1))
+#define STREQ_LEN_PREFIX(_x, _l, _s) (path_len < sizeof(_s) && 
!strncasecmp(_x, _s, sizeof(_s) - 1))
 
 
 Action *
-register_ShowCache(Continuation *c, HTTPHdr *h) {
-  ShowCache * theshowcache = new ShowCache(c, h);
+register_ShowCache(Continuation *c, HTTPHdr *h)
+{
+  ShowCache *theshowcache = new ShowCache(c, h);
   URL *u = h->url_get();
   int path_len;
   const char *path = u->path_get(&path_len);
@@ -201,7 +201,8 @@ register_ShowCache(Continuation *c, HTTPHdr *h) {
 }
 
 int
-ShowCache::showMain(int event, Event *e) {
+ShowCache::showMain(int event, Event *e)
+{
   CHECK_SHOW(begin("Cache"));
   CHECK_SHOW(show("<H3><A HREF=\"./lookup_url_form\">Lookup url</A></H3>\n"
                   "<H3><A HREF=\"./delete_url_form\">Delete url</A></H3>\n"
@@ -218,19 +219,24 @@ ShowCache::lookup_url_form(int event, Event *e)
   CHECK_SHOW(show("<FORM METHOD=\"GET\" ACTION=\"./lookup_url\">\n"
                   "<H3>Lookup</H3>\n"
                   "<INPUT TYPE=\"TEXT\" NAME=\"url\" value=\"http://\";>\n"
-                  "<INPUT TYPE=\"SUBMIT\" value=\"Lookup\">\n" "</FORM>\n\n"));
+                  "<INPUT TYPE=\"SUBMIT\" value=\"Lookup\">\n"
+                  "</FORM>\n\n"));
   return complete(event, e);
 }
 
 int
-ShowCache::delete_url_form(int event, Event *e) {
+ShowCache::delete_url_form(int event, Event *e)
+{
   CHECK_SHOW(begin("Cache Delete"));
   CHECK_SHOW(show("<FORM METHOD=\"GET\" ACTION=\"./delete_url\">\n"
                   "<P><B>Type the list urls that you want to delete\n"
                   "in the box below. The urls MUST be separated by\n"
                   "new lines</B></P>\n\n"
                   "<TEXTAREA NAME=\"url\" rows=10 cols=50>"
-                  "http://"; "</TEXTAREA>\n" "<INPUT TYPE=\"SUBMIT\" 
value=\"Delete\">\n" "</FORM>\n\n"));
+                  "http://";
+                  "</TEXTAREA>\n"
+                  "<INPUT TYPE=\"SUBMIT\" value=\"Delete\">\n"
+                  "</FORM>\n\n"));
   return complete(event, e);
 }
 
@@ -243,171 +249,187 @@ ShowCache::lookup_regex_form(int event, Event *e)
                   "in the box below. The regular expressions MUST be separated 
by\n"
                   "new lines</B></P>\n\n"
                   "<TEXTAREA NAME=\"url\" rows=10 cols=50>"
-                  "http://"; "</TEXTAREA>\n" "<INPUT TYPE=\"SUBMIT\" 
value=\"Lookup\">\n" "</FORM>\n\n"));
+                  "http://";
+                  "</TEXTAREA>\n"
+                  "<INPUT TYPE=\"SUBMIT\" value=\"Lookup\">\n"
+                  "</FORM>\n\n"));
   return complete(event, e);
 }
 
 int
-ShowCache::delete_regex_form(int event, Event *e) {
+ShowCache::delete_regex_form(int event, Event *e)
+{
   CHECK_SHOW(begin("Cache Regex delete"));
   CHECK_SHOW(show("<FORM METHOD=\"GET\" ACTION=\"./delete_regex\">\n"
                   "<P><B>Type the list of regular expressions that you want to 
delete\n"
                   "in the box below. The regular expressions MUST be separated 
by\n"
                   "new lines</B></P>\n\n"
                   "<TEXTAREA NAME=\"url\" rows=10 cols=50>"
-                  "http://"; "</TEXTAREA>\n" "<INPUT TYPE=\"SUBMIT\" 
value=\"Delete\">\n" "</FORM>\n\n"));
+                  "http://";
+                  "</TEXTAREA>\n"
+                  "<INPUT TYPE=\"SUBMIT\" value=\"Delete\">\n"
+                  "</FORM>\n\n"));
   return complete(event, e);
 }
 
 int
-ShowCache::invalidate_regex_form(int event, Event *e) {
+ShowCache::invalidate_regex_form(int event, Event *e)
+{
   CHECK_SHOW(begin("Cache Regex Invalidate"));
   CHECK_SHOW(show("<FORM METHOD=\"GET\" ACTION=\"./invalidate_regex\">\n"
                   "<P><B>Type the list of regular expressions that you want to 
invalidate\n"
                   "in the box below. The regular expressions MUST be separated 
by\n"
                   "new lines</B></P>\n\n"
                   "<TEXTAREA NAME=\"url\" rows=10 cols=50>"
-                  "http://"; "</TEXTAREA>\n" "<INPUT TYPE=\"SUBMIT\" 
value=\"Invalidate\">\n" "</FORM>\n"));
+                  "http://";
+                  "</TEXTAREA>\n"
+                  "<INPUT TYPE=\"SUBMIT\" value=\"Invalidate\">\n"
+                  "</FORM>\n"));
   return complete(event, e);
 }
 
 
 int
-ShowCache::handleCacheEvent(int event, Event *e) {
+ShowCache::handleCacheEvent(int event, Event *e)
+{
   // we use VC_EVENT_xxx to finish the cluster read in cluster mode
   switch (event) {
-    case VC_EVENT_EOS:
-    case VC_EVENT_READ_COMPLETE: {
-      // cluster read done, we just print hit in cluster
+  case VC_EVENT_EOS:
+  case VC_EVENT_READ_COMPLETE: {
+    // cluster read done, we just print hit in cluster
+    CHECK_SHOW(show("<P><TABLE border=1 width=100%%>"));
+    CHECK_SHOW(show("<TR><TH bgcolor=\"#FFF0E0\" colspan=2>Doc Hit from 
Cluster</TH></TR>\n"));
+    CHECK_SHOW(show("<tr><td>Size</td><td>%" PRId64 "</td>\n", 
content_length));
+
+    // delete button
+    CHECK_SHOW(show("<tr><td>Action</td>\n"
+                    "<td><FORM action=\"./delete_url\" method=get>\n"
+                    "<Input type=HIDDEN name=url value=\"%s\">\n"
+                    "<input type=submit value=\"Delete URL\">\n"
+                    "</FORM></td></tr>\n",
+                    show_cache_urlstrs[0]));
+    CHECK_SHOW(show("</TABLE></P>"));
+
+    if (buffer_reader) {
+      buffer->dealloc_reader(buffer_reader);
+      buffer_reader = 0;
+    }
+    if (buffer) {
+      free_MIOBuffer(buffer);
+      buffer = 0;
+    }
+    cvio = 0;
+    cache_vc->do_io_close(-1);
+    cache_vc = 0;
+    return complete(event, e);
+  }
+  case CACHE_EVENT_OPEN_READ: {
+    // get the vector
+    cache_vc = (CacheVC *)e;
+    CacheHTTPInfoVector *vec = &(cache_vc->vector);
+    int alt_count = vec->count();
+    if (alt_count) {
+      Doc *d = (Doc *)(cache_vc->first_buf->data());
+      time_t t;
+      char tmpstr[4096];
+
+      // print the Doc
       CHECK_SHOW(show("<P><TABLE border=1 width=100%%>"));
-      CHECK_SHOW(show("<TR><TH bgcolor=\"#FFF0E0\" colspan=2>Doc Hit from 
Cluster</TH></TR>\n"));
-      CHECK_SHOW(show("<tr><td>Size</td><td>%" PRId64 "</td>\n", 
content_length));
+      CHECK_SHOW(show("<TR><TH bgcolor=\"#FFF0E0\" 
colspan=2>Doc</TH></TR>\n"));
+      CHECK_SHOW(
+        show("<TR><TD>Volume</td> <td>#%d - store='%s'</td></tr>\n", 
cache_vc->vol->cache_vol->vol_number, cache_vc->vol->path));
+      CHECK_SHOW(show("<TR><TD>first key</td> <td>%s</td></tr>\n", 
d->first_key.toHexStr(tmpstr)));
+      CHECK_SHOW(show("<TR><TD>key</td> <td>%s</td></tr>\n", 
d->key.toHexStr(tmpstr)));
+      CHECK_SHOW(show("<tr><td>sync_serial</td><td>%lu</tr>\n", 
d->sync_serial));
+      CHECK_SHOW(show("<tr><td>write_serial</td><td>%lu</tr>\n", 
d->write_serial));
+      CHECK_SHOW(show("<tr><td>header length</td><td>%lu</tr>\n", d->hlen));
+      CHECK_SHOW(show("<tr><td>fragment type</td><td>%lu</tr>\n", 
d->doc_type));
+      CHECK_SHOW(show("<tr><td>No of Alternates</td><td>%d</td></tr>\n", 
alt_count));
 
-      // delete button
       CHECK_SHOW(show("<tr><td>Action</td>\n"
                       "<td><FORM action=\"./delete_url\" method=get>\n"
                       "<Input type=HIDDEN name=url value=\"%s\">\n"
-                      "<input type=submit value=\"Delete URL\">\n" 
"</FORM></td></tr>\n",
+                      "<input type=submit value=\"Delete URL\">\n"
+                      "</FORM></td></tr>\n",
                       show_cache_urlstrs[0]));
       CHECK_SHOW(show("</TABLE></P>"));
 
-      if (buffer_reader) {
-        buffer->dealloc_reader(buffer_reader);
-        buffer_reader = 0;
-      }
-      if (buffer) {
-        free_MIOBuffer(buffer);
-        buffer = 0;
+      for (int i = 0; i < alt_count; i++) {
+        // unmarshal the alternate??
+        CHECK_SHOW(show("<p><table border=1>\n"));
+        CHECK_SHOW(show("<tr><th bgcolor=\"#FFF0E0\" colspan=2>Alternate 
%d</th></tr>\n", i + 1));
+        CacheHTTPInfo *obj = vec->get(i);
+        CacheKey obj_key = obj->object_key_get();
+        HTTPHdr *cached_request = obj->request_get();
+        HTTPHdr *cached_response = obj->response_get();
+        int64_t obj_size = obj->object_size_get();
+        int offset, tmp, used, done;
+        char b[4096];
+
+        // print request header
+        CHECK_SHOW(show("<tr><td>Request Header</td><td><PRE>"));
+        offset = 0;
+        do {
+          used = 0;
+          tmp = offset;
+          done = cached_request->print(b, 4095, &used, &tmp);
+          offset += used;
+          b[used] = '\0';
+          CHECK_SHOW(show("%s", b));
+        } while (!done);
+        CHECK_SHOW(show("</PRE></td><tr>\n"));
+
+        // print response header
+        CHECK_SHOW(show("<tr><td>Response Header</td><td><PRE>"));
+        offset = 0;
+        do {
+          used = 0;
+          tmp = offset;
+          done = cached_response->print(b, 4095, &used, &tmp);
+          offset += used;
+          b[used] = '\0';
+          CHECK_SHOW(show("%s", b));
+        } while (!done);
+        CHECK_SHOW(show("</PRE></td></tr>\n"));
+        CHECK_SHOW(show("<tr><td>Size</td><td>%" PRId64 "</td>\n", obj_size));
+        CHECK_SHOW(show("<tr><td>Key</td><td>%s</td>\n", 
obj_key.toHexStr(tmpstr)));
+        t = obj->request_sent_time_get();
+        ink_ctime_r(&t, tmpstr);
+        CHECK_SHOW(show("<tr><td>Request sent time</td><td>%s</td></tr>\n", 
tmpstr));
+        t = obj->response_received_time_get();
+        ink_ctime_r(&t, tmpstr);
+
+        CHECK_SHOW(show("<tr><td>Response received 
time</td><td>%s</td></tr>\n", tmpstr));
+        CHECK_SHOW(show("</TABLE></P>"));
       }
-      cvio = 0;
+
       cache_vc->do_io_close(-1);
-      cache_vc = 0;
       return complete(event, e);
     }
-    case CACHE_EVENT_OPEN_READ: {
-      // get the vector
-      cache_vc = (CacheVC *) e;
-      CacheHTTPInfoVector *vec = &(cache_vc->vector);
-      int alt_count = vec->count();
-      if (alt_count) {
-        Doc *d = (Doc *) (cache_vc->first_buf->data());
-        time_t t;
-        char tmpstr[4096];
-
-        // print the Doc
-        CHECK_SHOW(show("<P><TABLE border=1 width=100%%>"));
-        CHECK_SHOW(show("<TR><TH bgcolor=\"#FFF0E0\" 
colspan=2>Doc</TH></TR>\n"));
-        CHECK_SHOW(show("<TR><TD>Volume</td> <td>#%d - 
store='%s'</td></tr>\n", cache_vc->vol->cache_vol->vol_number, 
cache_vc->vol->path));
-        CHECK_SHOW(show("<TR><TD>first key</td> <td>%s</td></tr>\n", 
d->first_key.toHexStr(tmpstr)));
-        CHECK_SHOW(show("<TR><TD>key</td> <td>%s</td></tr>\n", 
d->key.toHexStr(tmpstr)));
-        CHECK_SHOW(show("<tr><td>sync_serial</td><td>%lu</tr>\n", 
d->sync_serial));
-        CHECK_SHOW(show("<tr><td>write_serial</td><td>%lu</tr>\n", 
d->write_serial));
-        CHECK_SHOW(show("<tr><td>header length</td><td>%lu</tr>\n", d->hlen));
-        CHECK_SHOW(show("<tr><td>fragment type</td><td>%lu</tr>\n", 
d->doc_type));
-        CHECK_SHOW(show("<tr><td>No of Alternates</td><td>%d</td></tr>\n", 
alt_count));
-
-        CHECK_SHOW(show("<tr><td>Action</td>\n"
-                        "<td><FORM action=\"./delete_url\" method=get>\n"
-                        "<Input type=HIDDEN name=url value=\"%s\">\n"
-                        "<input type=submit value=\"Delete URL\">\n" 
"</FORM></td></tr>\n",
-                        show_cache_urlstrs[0]));
-        CHECK_SHOW(show("</TABLE></P>"));
-
-        for (int i = 0; i < alt_count; i++) {
-          // unmarshal the alternate??
-          CHECK_SHOW(show("<p><table border=1>\n"));
-          CHECK_SHOW(show("<tr><th bgcolor=\"#FFF0E0\" colspan=2>Alternate 
%d</th></tr>\n", i + 1));
-          CacheHTTPInfo *obj = vec->get(i);
-          CacheKey obj_key = obj->object_key_get();
-          HTTPHdr *cached_request = obj->request_get();
-          HTTPHdr *cached_response = obj->response_get();
-          int64_t obj_size = obj->object_size_get();
-          int offset, tmp, used, done;
-          char b[4096];
-
-          // print request header
-          CHECK_SHOW(show("<tr><td>Request Header</td><td><PRE>"));
-          offset = 0;
-          do {
-            used = 0;
-            tmp = offset;
-            done = cached_request->print(b, 4095, &used, &tmp);
-            offset += used;
-            b[used] = '\0';
-            CHECK_SHOW(show("%s", b));
-          } while (!done);
-          CHECK_SHOW(show("</PRE></td><tr>\n"));
-
-          // print response header
-          CHECK_SHOW(show("<tr><td>Response Header</td><td><PRE>"));
-          offset = 0;
-          do {
-            used = 0;
-            tmp = offset;
-            done = cached_response->print(b, 4095, &used, &tmp);
-            offset += used;
-            b[used] = '\0';
-            CHECK_SHOW(show("%s", b));
-          } while (!done);
-          CHECK_SHOW(show("</PRE></td></tr>\n"));
-          CHECK_SHOW(show("<tr><td>Size</td><td>%" PRId64 "</td>\n", 
obj_size));
-          CHECK_SHOW(show("<tr><td>Key</td><td>%s</td>\n", 
obj_key.toHexStr(tmpstr)));
-          t = obj->request_sent_time_get();
-          ink_ctime_r(&t, tmpstr);
-          CHECK_SHOW(show("<tr><td>Request sent time</td><td>%s</td></tr>\n", 
tmpstr));
-          t = obj->response_received_time_get();
-          ink_ctime_r(&t, tmpstr);
-
-          CHECK_SHOW(show("<tr><td>Response received 
time</td><td>%s</td></tr>\n", tmpstr));
-          CHECK_SHOW(show("</TABLE></P>"));
-        }
-
-        cache_vc->do_io_close(-1);
-        return complete(event, e);
-      }
-      // open success but no vector, that is the Cluster open read, pass 
through
-    }
-    case VC_EVENT_READ_READY:
-      if (!cvio) {
-        buffer = new_empty_MIOBuffer();
-        buffer_reader = buffer->alloc_reader();
-        content_length = cache_vc->get_object_size();
-        cvio = cache_vc->do_io_read(this, content_length, buffer);
-      } else
-        buffer_reader->consume(buffer_reader->read_avail());
-      return EVENT_DONE;
-    case CACHE_EVENT_OPEN_READ_FAILED:
-      // something strange happen, or cache miss in cluster mode.
-      CHECK_SHOW(show("<H3>Cache Lookup Failed, or missing in 
cluster</H3>\n"));
-      return complete(event, e);
-    default:
-      CHECK_SHOW(show("<H3>Cache Miss</H3>\n"));
-      return complete(event, e);
+    // open success but no vector, that is the Cluster open read, pass through
+  }
+  case VC_EVENT_READ_READY:
+    if (!cvio) {
+      buffer = new_empty_MIOBuffer();
+      buffer_reader = buffer->alloc_reader();
+      content_length = cache_vc->get_object_size();
+      cvio = cache_vc->do_io_read(this, content_length, buffer);
+    } else
+      buffer_reader->consume(buffer_reader->read_avail());
+    return EVENT_DONE;
+  case CACHE_EVENT_OPEN_READ_FAILED:
+    // something strange happen, or cache miss in cluster mode.
+    CHECK_SHOW(show("<H3>Cache Lookup Failed, or missing in cluster</H3>\n"));
+    return complete(event, e);
+  default:
+    CHECK_SHOW(show("<H3>Cache Miss</H3>\n"));
+    return complete(event, e);
   }
 }
 
 int
-ShowCache::lookup_url(int event, Event *e) {
+ShowCache::lookup_url(int event, Event *e)
+{
   char header_str[300];
 
   snprintf(header_str, sizeof(header_str), "<font color=red>%s</font>", 
show_cache_urlstrs[0]);
@@ -421,16 +443,17 @@ ShowCache::lookup_url(int event, Event *e) {
   url.hash_get(&md5);
   const char *hostname = url.host_get(&len);
   SET_HANDLER(&ShowCache::handleCacheEvent);
-  Action *lookup_result = cacheProcessor.open_read(this, &md5, 
getClusterCacheLocal(&url, (char *)hostname), CACHE_FRAG_TYPE_HTTP, (char *) 
hostname, len);
+  Action *lookup_result =
+    cacheProcessor.open_read(this, &md5, getClusterCacheLocal(&url, (char 
*)hostname), CACHE_FRAG_TYPE_HTTP, (char *)hostname, len);
   if (!lookup_result)
     lookup_result = ACTION_IO_ERROR;
   if (lookup_result == ACTION_RESULT_DONE)
-    return EVENT_DONE;        // callback complete
+    return EVENT_DONE; // callback complete
   else if (lookup_result == ACTION_IO_ERROR) {
     handleEvent(CACHE_EVENT_OPEN_READ_FAILED, 0);
-    return EVENT_DONE;        // callback complete
+    return EVENT_DONE; // callback complete
   } else
-    return EVENT_CONT;        // callback pending, will be a cluster read.
+    return EVENT_CONT; // callback pending, will be a cluster read.
 }
 
 
@@ -468,14 +491,12 @@ ShowCache::delete_url(int event, Event *e)
 int
 ShowCache::handleCacheDeleteComplete(int event, Event *e)
 {
-
   if (event == CACHE_EVENT_REMOVE) {
     CHECK_SHOW(show("<td>Delete <font 
color=green>succeeded</font></td></tr>\n"));
   } else {
     CHECK_SHOW(show("<td>Delete <font color=red>failed</font></td></tr>\n"));
   }
   return delete_url(event, e);
-
 }
 
 
@@ -511,12 +532,16 @@ ShowCache::lookup_regex(int event, Event *e)
                   "       return true;\n"
                   "}\n"
                   "   srcfile=\"./delete_url?url=\" + 
form.elements[0].value;\n"
-                  "   document.location=srcfile;\n " " return true;\n" "}\n" 
"</SCRIPT>\n"));
+                  "   document.location=srcfile;\n "
+                  "    return true;\n"
+                  "}\n"
+                  "</SCRIPT>\n"));
 
   CHECK_SHOW(show("<FORM NAME=\"f\" ACTION=\"./delete_url\" METHOD=GET> \n"
-                  "<INPUT TYPE=HIDDEN NAME=\"url\">\n" "<B><TABLE 
border=1>\n"));
+                  "<INPUT TYPE=HIDDEN NAME=\"url\">\n"
+                  "<B><TABLE border=1>\n"));
 
-  scan_flag = scan_type_lookup;                //lookup
+  scan_flag = scan_type_lookup; // lookup
   SET_HANDLER(&ShowCache::handleCacheScanCallback);
   cacheProcessor.scan(this);
   return EVENT_DONE;
@@ -527,11 +552,10 @@ ShowCache::delete_regex(int event, Event *e)
 {
   CHECK_SHOW(begin("Regex Delete"));
   CHECK_SHOW(show("<B><TABLE border=1>\n"));
-  scan_flag = scan_type_delete;                // delete
+  scan_flag = scan_type_delete; // delete
   SET_HANDLER(&ShowCache::handleCacheScanCallback);
   cacheProcessor.scan(this);
   return EVENT_DONE;
-
 }
 
 
@@ -540,93 +564,98 @@ ShowCache::invalidate_regex(int event, Event *e)
 {
   CHECK_SHOW(begin("Regex Invalidate"));
   CHECK_SHOW(show("<B><TABLE border=1>\n"));
-  scan_flag = scan_type_invalidate;                // invalidate
+  scan_flag = scan_type_invalidate; // invalidate
   SET_HANDLER(&ShowCache::handleCacheScanCallback);
   cacheProcessor.scan(this);
   return EVENT_DONE;
-
 }
 
 
-
 int
 ShowCache::handleCacheScanCallback(int event, Event *e)
 {
   switch (event) {
-  case CACHE_EVENT_SCAN:{
-      cache_vc = (CacheVC *) e;
-      return EVENT_CONT;
-    }
-  case CACHE_EVENT_SCAN_OBJECT:{
-      HTTPInfo *alt = (HTTPInfo *) e;
-      char xx[501], m[501];
-      int ib = 0, xd = 0, ml = 0;
-
-      alt->request_get()->url_print(xx, 500, &ib, &xd);
-      xx[ib] = '\0';
-
-      const char *mm = alt->request_get()->method_get(&ml);
-
-      memcpy(m, mm, ml);
-      m[ml] = 0;
-
-      int res = CACHE_SCAN_RESULT_CONTINUE;
-
-      for (unsigned s = 0; show_cache_urlstrs[s][0] != '\0'; s++) {
-        const char* error;
-        int erroffset;
-        pcre* preq =  pcre_compile(show_cache_urlstrs[s], 0, &error, 
&erroffset, NULL);
-
-        Debug("cache_inspector", "matching url '%s' '%s' with regex '%s'\n", 
m, xx, show_cache_urlstrs[s]);
-
-        if (preq) {
-          int r = pcre_exec(preq, NULL, xx, ib, 0, 0, NULL, 0);
-
-          pcre_free(preq);
-          if (r != -1) {
-            linecount++;
-            if ((linecount % 5) == 0) {
-              CHECK_SHOW(show("<TR bgcolor=\"#FFF0E0\">"));
-            } else {
-              CHECK_SHOW(show("<TR>"));
-            }
-
-            switch (scan_flag) {
-            case scan_type_lookup:
-              /*Y! Bug: 2249781: using onClick() because i need 
encodeURIComponent() and YTS doesn't have something like that */
-              CHECK_SHOW(show("<TD><INPUT TYPE=CHECKBOX NAME=\"%s\" "
-                              "onClick=\"addToUrlList(this)\"></TD>"
-                              "<TD><A 
onClick='window.location.href=\"./lookup_url?url=\"+ 
encodeURIComponent(\"%s\");' HREF=\"#\">"
-                              "<B>%s</B></A></br></TD></TR>\n", xx, xx, xx));
-              break;
-            case scan_type_delete:
-              CHECK_SHOW(show("<TD><B>%s</B></TD>" "<TD><font 
color=red>deleted</font></TD></TR>\n", xx));
-              res = CACHE_SCAN_RESULT_DELETE;
-              break;
-            case scan_type_invalidate:
-              HTTPInfo new_info;
-              res = CACHE_SCAN_RESULT_UPDATE;
-              new_info.copy(alt);
-              new_info.response_get()->set_cooked_cc_need_revalidate_once();
-              CHECK_SHOW(show("<TD><B>%s</B></TD>" "<TD><font 
color=red>Invalidate</font></TD>" "</TR>\n", xx));
-              cache_vc->set_http_info(&new_info);
-            }
+  case CACHE_EVENT_SCAN: {
+    cache_vc = (CacheVC *)e;
+    return EVENT_CONT;
+  }
+  case CACHE_EVENT_SCAN_OBJECT: {
+    HTTPInfo *alt = (HTTPInfo *)e;
+    char xx[501], m[501];
+    int ib = 0, xd = 0, ml = 0;
 
+    alt->request_get()->url_print(xx, 500, &ib, &xd);
+    xx[ib] = '\0';
+
+    const char *mm = alt->request_get()->method_get(&ml);
+
+    memcpy(m, mm, ml);
+    m[ml] = 0;
+
+    int res = CACHE_SCAN_RESULT_CONTINUE;
+
+    for (unsigned s = 0; show_cache_urlstrs[s][0] != '\0'; s++) {
+      const char *error;
+      int erroffset;
+      pcre *preq = pcre_compile(show_cache_urlstrs[s], 0, &error, &erroffset, 
NULL);
+
+      Debug("cache_inspector", "matching url '%s' '%s' with regex '%s'\n", m, 
xx, show_cache_urlstrs[s]);
+
+      if (preq) {
+        int r = pcre_exec(preq, NULL, xx, ib, 0, 0, NULL, 0);
+
+        pcre_free(preq);
+        if (r != -1) {
+          linecount++;
+          if ((linecount % 5) == 0) {
+            CHECK_SHOW(show("<TR bgcolor=\"#FFF0E0\">"));
+          } else {
+            CHECK_SHOW(show("<TR>"));
+          }
+
+          switch (scan_flag) {
+          case scan_type_lookup:
+            /*Y! Bug: 2249781: using onClick() because i need 
encodeURIComponent() and YTS doesn't have something like that */
+            CHECK_SHOW(show("<TD><INPUT TYPE=CHECKBOX NAME=\"%s\" "
+                            "onClick=\"addToUrlList(this)\"></TD>"
+                            "<TD><A 
onClick='window.location.href=\"./lookup_url?url=\"+ 
encodeURIComponent(\"%s\");' HREF=\"#\">"
+                            "<B>%s</B></A></br></TD></TR>\n",
+                            xx, xx, xx));
+            break;
+          case scan_type_delete:
+            CHECK_SHOW(show("<TD><B>%s</B></TD>"
+                            "<TD><font color=red>deleted</font></TD></TR>\n",
+                            xx));
+            res = CACHE_SCAN_RESULT_DELETE;
             break;
+          case scan_type_invalidate:
+            HTTPInfo new_info;
+            res = CACHE_SCAN_RESULT_UPDATE;
+            new_info.copy(alt);
+            new_info.response_get()->set_cooked_cc_need_revalidate_once();
+            CHECK_SHOW(show("<TD><B>%s</B></TD>"
+                            "<TD><font color=red>Invalidate</font></TD>"
+                            "</TR>\n",
+                            xx));
+            cache_vc->set_http_info(&new_info);
           }
-        } else {
-          // TODO: Regex didn't compile, show errors ?
-          Debug("cache_inspector", "regex '%s' didn't compile", 
show_cache_urlstrs[s]);
+
+          break;
         }
+      } else {
+        // TODO: Regex didn't compile, show errors ?
+        Debug("cache_inspector", "regex '%s' didn't compile", 
show_cache_urlstrs[s]);
       }
-      return res;
     }
+    return res;
+  }
   case CACHE_EVENT_SCAN_DONE:
     CHECK_SHOW(show("</TABLE></B>\n"));
     if (scan_flag == 0)
       if (linecount) {
         CHECK_SHOW(show("<P><INPUT TYPE=button value=\"Delete\" "
-                        "onClick=\"setUrls(window.document.f)\"></P>" 
"</FORM>\n"));
+                        "onClick=\"setUrls(window.document.f)\"></P>"
+                        "</FORM>\n"));
       }
     CHECK_SHOW(show("<H3>Done</H3>\n"));
     Debug("cache_inspector", "scan done");
@@ -638,4 +667,3 @@ ShowCache::handleCacheScanCallback(int event, Event *e)
     return EVENT_DONE;
   }
 }
-

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/65477944/iocore/cache/CachePagesInternal.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/CachePagesInternal.cc 
b/iocore/cache/CachePagesInternal.cc
index 0d7b191..080decc 100644
--- a/iocore/cache/CachePagesInternal.cc
+++ b/iocore/cache/CachePagesInternal.cc
@@ -26,40 +26,34 @@
 #include "Show.h"
 #include "I_Tasks.h"
 
-struct ShowCacheInternal: public ShowCont
-{
+struct ShowCacheInternal : public ShowCont {
   int vol_index;
   int seg_index;
   CacheKey show_cache_key;
   CacheVC *cache_vc;
 
 
-  int showMain(int event, Event * e);
-  int showEvacuations(int event, Event * e);
-  int showVolEvacuations(int event, Event * e);
-  int showVolumes(int event, Event * e);
-  int showVolVolumes(int event, Event * e);
-  int showSegments(int event, Event * e);
-  int showSegSegment(int event, Event * e);
+  int showMain(int event, Event *e);
+  int showEvacuations(int event, Event *e);
+  int showVolEvacuations(int event, Event *e);
+  int showVolumes(int event, Event *e);
+  int showVolVolumes(int event, Event *e);
+  int showSegments(int event, Event *e);
+  int showSegSegment(int event, Event *e);
 #ifdef CACHE_STAT_PAGES
-  int showConnections(int event, Event * e);
-  int showVolConnections(int event, Event * e);
+  int showConnections(int event, Event *e);
+  int showVolConnections(int event, Event *e);
 #endif
 
-  ShowCacheInternal(Continuation * c, HTTPHdr * h)
-    : ShowCont(c, h), vol_index(0), seg_index(0)
+  ShowCacheInternal(Continuation *c, HTTPHdr *h) : ShowCont(c, h), 
vol_index(0), seg_index(0)
   {
     SET_HANDLER(&ShowCacheInternal::showMain);
   }
 
-  ~ShowCacheInternal() {
-  }
-
+  ~ShowCacheInternal() {}
 };
 extern ShowCacheInternal *theshowcacheInternal;
-Action *register_ShowCacheInternal(Continuation * c, HTTPHdr * h);
-
-
+Action *register_ShowCacheInternal(Continuation *c, HTTPHdr *h);
 
 
 extern Vol **gvol;
@@ -70,12 +64,12 @@ extern volatile int gnvol;
 ShowCacheInternal *theshowcacheInternal = NULL;
 
 
-#define STREQ_PREFIX(_x,_s) (!strncasecmp(_x,_s,sizeof(_s)-1))
-#define STREQ_LEN_PREFIX(_x,_l,_s) (path_len < sizeof(_s) && 
!strncasecmp(_x,_s,sizeof(_s)-1))
+#define STREQ_PREFIX(_x, _s) (!strncasecmp(_x, _s, sizeof(_s) - 1))
+#define STREQ_LEN_PREFIX(_x, _l, _s) (path_len < sizeof(_s) && 
!strncasecmp(_x, _s, sizeof(_s) - 1))
 
 
 Action *
-register_ShowCacheInternal(Continuation * c, HTTPHdr * h)
+register_ShowCacheInternal(Continuation *c, HTTPHdr *h)
 {
   theshowcacheInternal = new ShowCacheInternal(c, h);
   URL *u = h->url_get();
@@ -105,7 +99,7 @@ register_ShowCacheInternal(Continuation * c, HTTPHdr * h)
 
 
 int
-ShowCacheInternal::showMain(int event, Event * e)
+ShowCacheInternal::showMain(int event, Event *e)
 {
   CHECK_SHOW(begin("Cache"));
 #ifdef CACHE_STAT_PAGES
@@ -121,14 +115,18 @@ ShowCacheInternal::showMain(int event, Event * e)
 
 #ifdef CACHE_STAT_PAGES
 int
-ShowCacheInternal::showConnections(int event, Event * e)
+ShowCacheInternal::showConnections(int event, Event *e)
 {
   CHECK_SHOW(begin("Cache VConnections"));
   CHECK_SHOW(show("<H3>Cache Connections</H3>\n"
                   "<table border=1><tr>"
                   "<th>Operation</th>"
                   "<th>Volume</th>"
-                  "<th>URL/Hash</th>" "<th>Bytes Done</th>" "<th>Total 
Bytes</th>" "<th>Bytes Todo</th>" "</tr>\n"));
+                  "<th>URL/Hash</th>"
+                  "<th>Bytes Done</th>"
+                  "<th>Total Bytes</th>"
+                  "<th>Bytes Todo</th>"
+                  "</tr>\n"));
 
   SET_HANDLER(&ShowCacheInternal::showVolConnections);
   CONT_SCHED_LOCK_RETRY_RET(this);
@@ -136,14 +134,13 @@ ShowCacheInternal::showConnections(int event, Event * e)
 
 
 int
-ShowCacheInternal::showVolConnections(int event, Event * e)
+ShowCacheInternal::showVolConnections(int event, Event *e)
 {
   CACHE_TRY_LOCK(lock, gvol[vol_index]->mutex, mutex->thread_holding);
   if (!lock) {
     CONT_SCHED_LOCK_RETRY_RET(this);
   }
-  for (CacheVC * vc = (CacheVC *) gvol[vol_index]->stat_cache_vcs.head; vc; vc 
= vc->stat_link.next) {
-
+  for (CacheVC *vc = (CacheVC *)gvol[vol_index]->stat_cache_vcs.head; vc; vc = 
vc->stat_link.next) {
     char nbytes[60], todo[60], url[81092];
     int ib = 0, xd = 0;
     URL uu;
@@ -165,17 +162,15 @@ ShowCacheInternal::showVolConnections(int event, Event * 
e)
       url[ib] = 0;
     } else
       vc->key.string(url);
-    CHECK_SHOW(show("<tr>" "<td>%s</td>"        // operation
-                    "<td>%s</td>"       // Vol
-                    "<td>%s</td>"       // URL/Hash
+    CHECK_SHOW(show("<tr>"
+                    "<td>%s</td>" // operation
+                    "<td>%s</td>" // Vol
+                    "<td>%s</td>" // URL/Hash
                     "<td>%d</td>"
                     "<td>%s</td>"
                     "<td>%s</td>"
                     "</tr>\n",
-                    ((vc->vio.op == VIO::READ) ? "Read" : "Write"),
-                    vc->vol->hash_id,
-                    url,
-                    vc->vio.ndone,
+                    ((vc->vio.op == VIO::READ) ? "Read" : "Write"), 
vc->vol->hash_id, url, vc->vio.ndone,
                     vc->vio.nbytes == INT64_MAX ? "all" : nbytes, 
vc->vio.nbytes == INT64_MAX ? "all" : todo));
   }
   vol_index++;
@@ -192,12 +187,16 @@ ShowCacheInternal::showVolConnections(int event, Event * 
e)
 
 
 int
-ShowCacheInternal::showEvacuations(int event, Event * e)
+ShowCacheInternal::showEvacuations(int event, Event *e)
 {
   CHECK_SHOW(begin("Cache Pending Evacuations"));
   CHECK_SHOW(show("<H3>Cache Evacuations</H3>\n"
                   "<table border=1><tr>"
-                  "<th>Offset</th>" "<th>Estimated Size</th>" "<th>Reader 
Count</th>" "<th>Done</th>" "</tr>\n"));
+                  "<th>Offset</th>"
+                  "<th>Estimated Size</th>"
+                  "<th>Reader Count</th>"
+                  "<th>Done</th>"
+                  "</tr>\n"));
 
   SET_HANDLER(&ShowCacheInternal::showVolEvacuations);
   CONT_SCHED_LOCK_RETRY_RET(this);
@@ -205,7 +204,7 @@ ShowCacheInternal::showEvacuations(int event, Event * e)
 
 
 int
-ShowCacheInternal::showVolEvacuations(int event, Event * e)
+ShowCacheInternal::showVolEvacuations(int event, Event *e)
 {
   Vol *p = gvol[vol_index];
   CACHE_TRY_LOCK(lock, p->mutex, mutex->thread_holding);
@@ -217,12 +216,14 @@ ShowCacheInternal::showVolEvacuations(int event, Event * 
e)
   for (int i = 0; i < last; i++) {
     for (b = p->evacuate[i].head; b; b = b->link.next) {
       char offset[60];
-      sprintf(offset, "%" PRIu64 "", (uint64_t) vol_offset(p, &b->dir));
-      CHECK_SHOW(show("<tr>" "<td>%s</td>"      // offset
-                      "<td>%d</td>"     // estimated size
-                      "<td>%d</td>"     // reader count
-                      "<td>%s</td>"     // done
-                      "</tr>\n", offset, (int) dir_approx_size(&b->dir), 
b->readers, b->f.done ? "yes" : "no"));
+      sprintf(offset, "%" PRIu64 "", (uint64_t)vol_offset(p, &b->dir));
+      CHECK_SHOW(show("<tr>"
+                      "<td>%s</td>" // offset
+                      "<td>%d</td>" // estimated size
+                      "<td>%d</td>" // reader count
+                      "<td>%s</td>" // done
+                      "</tr>\n",
+                      offset, (int)dir_approx_size(&b->dir), b->readers, 
b->f.done ? "yes" : "no"));
     }
   }
   vol_index++;
@@ -236,7 +237,7 @@ ShowCacheInternal::showVolEvacuations(int event, Event * e)
 }
 
 int
-ShowCacheInternal::showVolumes(int event, Event * e)
+ShowCacheInternal::showVolumes(int event, Event *e)
 {
   CHECK_SHOW(begin("Cache Volumes"));
   CHECK_SHOW(show("<H3>Cache Volumes</H3>\n"
@@ -248,7 +249,11 @@ ShowCacheInternal::showVolumes(int event, Event * e)
                   "<th>Write Agg Todo</th>"
                   "<th>Write Agg Todo Size</th>"
                   "<th>Write Agg Done</th>"
-                  "<th>Phase</th>" "<th>Create Time</th>" "<th>Sync 
Serial</th>" "<th>Write Serial</th>" "</tr>\n"));
+                  "<th>Phase</th>"
+                  "<th>Create Time</th>"
+                  "<th>Sync Serial</th>"
+                  "<th>Write Serial</th>"
+                  "</tr>\n"));
 
   SET_HANDLER(&ShowCacheInternal::showVolVolumes);
   CONT_SCHED_LOCK_RETRY_RET(this);
@@ -256,7 +261,7 @@ ShowCacheInternal::showVolumes(int event, Event * e)
 
 
 int
-ShowCacheInternal::showVolVolumes(int event, Event * e)
+ShowCacheInternal::showVolVolumes(int event, Event *e)
 {
   Vol *p = gvol[vol_index];
   CACHE_TRY_LOCK(lock, p->mutex, mutex->thread_holding);
@@ -269,40 +274,42 @@ ShowCacheInternal::showVolVolumes(int event, Event * e)
   int agg_todo = 0;
   int agg_done = p->agg_buf_pos;
   CacheVC *c = 0;
-  for (c = p->agg.head; c; c = (CacheVC *) c->link.next)
+  for (c = p->agg.head; c; c = (CacheVC *)c->link.next)
     agg_todo++;
-  CHECK_SHOW(show("<tr>" "<td>%s</td>"  // ID
+  CHECK_SHOW(show("<tr>"
+                  "<td>%s</td>"          // ID
                   "<td>%" PRId64 "</td>" // blocks
                   "<td>%" PRId64 "</td>" // directory entries
                   "<td>%" PRId64 "</td>" // write position
-                  "<td>%d</td>" // write agg to do
-                  "<td>%d</td>" // write agg to do size
-                  "<td>%d</td>" // write agg done
-                  "<td>%d</td>" // phase
-                  "<td>%s</td>" // create time
-                  "<td>%u</td>" // sync serial
-                  "<td>%u</td>" // write serial
+                  "<td>%d</td>"          // write agg to do
+                  "<td>%d</td>"          // write agg to do size
+                  "<td>%d</td>"          // write agg done
+                  "<td>%d</td>"          // phase
+                  "<td>%s</td>"          // create time
+                  "<td>%u</td>"          // sync serial
+                  "<td>%u</td>"          // write serial
                   "</tr>\n",
-                  p->hash_text.get(),
-                  (uint64_t)((p->len - (p->start - p->skip)) / 
CACHE_BLOCK_SIZE),
+                  p->hash_text.get(), (uint64_t)((p->len - (p->start - 
p->skip)) / CACHE_BLOCK_SIZE),
                   (uint64_t)(p->buckets * DIR_DEPTH * p->segments),
-                  (uint64_t)((p->header->write_pos - p->start) / 
CACHE_BLOCK_SIZE),
-                  agg_todo,
-                  p->agg_todo_size,
-                  agg_done, p->header->phase, ctime, p->header->sync_serial, 
p->header->write_serial));
+                  (uint64_t)((p->header->write_pos - p->start) / 
CACHE_BLOCK_SIZE), agg_todo, p->agg_todo_size, agg_done,
+                  p->header->phase, ctime, p->header->sync_serial, 
p->header->write_serial));
   CHECK_SHOW(show("</table>\n"));
   SET_HANDLER(&ShowCacheInternal::showSegments);
   return showSegments(event, e);
 }
 
 int
-ShowCacheInternal::showSegments(int event, Event * e)
+ShowCacheInternal::showSegments(int event, Event *e)
 {
   CHECK_SHOW(show("<H3>Cache Volume Segments</H3>\n"
                   "<table border=1><tr>"
                   "<th>Free</th>"
                   "<th>Used</th>"
-                  "<th>Empty</th>" "<th>Valid</th>" "<th>Agg Valid</th>" 
"<th>Avg Size</th>" "</tr>\n"));
+                  "<th>Empty</th>"
+                  "<th>Valid</th>"
+                  "<th>Agg Valid</th>"
+                  "<th>Avg Size</th>"
+                  "</tr>\n"));
 
   SET_HANDLER(&ShowCacheInternal::showSegSegment);
   seg_index = 0;
@@ -310,7 +317,7 @@ ShowCacheInternal::showSegments(int event, Event * e)
 }
 
 int
-ShowCacheInternal::showSegSegment(int event, Event * e)
+ShowCacheInternal::showSegSegment(int event, Event *e)
 {
   Vol *p = gvol[vol_index];
   CACHE_TRY_LOCK(lock, p->mutex, mutex->thread_holding);
@@ -322,7 +329,11 @@ ShowCacheInternal::showSegSegment(int event, Event * e)
                   "<td>%d</td>"
                   "<td>%d</td>"
                   "<td>%d</td>"
-                  "<td>%d</td>" "<td>%d</td>" "<td>%d</td>" "</tr>\n", free, 
used, empty, valid, agg_valid, avg_size));
+                  "<td>%d</td>"
+                  "<td>%d</td>"
+                  "<td>%d</td>"
+                  "</tr>\n",
+                  free, used, empty, valid, agg_valid, avg_size));
   seg_index++;
   if (seg_index < p->segments)
     CONT_SCHED_LOCK_RETRY(this);
@@ -337,4 +348,3 @@ ShowCacheInternal::showSegSegment(int event, Event * e)
   }
   return EVENT_CONT;
 }
-

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/65477944/iocore/cache/CacheRead.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/CacheRead.cc b/iocore/cache/CacheRead.cc
index a20737e..4ba02f4 100644
--- a/iocore/cache/CacheRead.cc
+++ b/iocore/cache/CacheRead.cc
@@ -24,17 +24,17 @@
 #include "P_Cache.h"
 
 #ifdef HTTP_CACHE
-#include "HttpCacheSM.h"      //Added to get the scope of HttpCacheSM object.
+#include "HttpCacheSM.h" //Added to get the scope of HttpCacheSM object.
 #endif
 
 #define READ_WHILE_WRITER 1
 extern int cache_config_compatibility_4_2_0_fixup;
 
 Action *
-Cache::open_read(Continuation * cont, CacheKey * key, CacheFragType type, char 
*hostname, int host_len)
+Cache::open_read(Continuation *cont, CacheKey *key, CacheFragType type, char 
*hostname, int host_len)
 {
   if (!CacheProcessor::IsCacheReady(type)) {
-    cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) 
-ECACHE_NOT_READY);
+    cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *)-ECACHE_NOT_READY);
     return ACTION_RESULT_DONE;
   }
   ink_assert(caches[type] == this);
@@ -67,15 +67,18 @@ Cache::open_read(Continuation * cont, CacheKey * key, 
CacheFragType type, char *
       goto Lwriter;
     c->dir = result;
     c->last_collision = last_collision;
-    switch(c->do_read_call(&c->key)) {
-      case EVENT_DONE: return ACTION_RESULT_DONE;
-      case EVENT_RETURN: goto Lcallreturn;
-      default: return &c->_action;
+    switch (c->do_read_call(&c->key)) {
+    case EVENT_DONE:
+      return ACTION_RESULT_DONE;
+    case EVENT_RETURN:
+      goto Lcallreturn;
+    default:
+      return &c->_action;
     }
   }
 Lmiss:
   CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
-  cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) -ECACHE_NO_DOC);
+  cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *)-ECACHE_NO_DOC);
   return ACTION_RESULT_DONE;
 Lwriter:
   SET_CONTINUATION_HANDLER(c, &CacheVC::openReadFromWriter);
@@ -90,12 +93,11 @@ Lcallreturn:
 
 #ifdef HTTP_CACHE
 Action *
-Cache::open_read(Continuation * cont, CacheKey * key, CacheHTTPHdr * request,
-                 CacheLookupHttpConfig * params, CacheFragType type, char 
*hostname, int host_len)
+Cache::open_read(Continuation *cont, CacheKey *key, CacheHTTPHdr *request, 
CacheLookupHttpConfig *params, CacheFragType type,
+                 char *hostname, int host_len)
 {
-
   if (!CacheProcessor::IsCacheReady(type)) {
-    cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) 
-ECACHE_NOT_READY);
+    cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *)-ECACHE_NOT_READY);
     return ACTION_RESULT_DONE;
   }
   ink_assert(caches[type] == this);
@@ -133,15 +135,18 @@ Cache::open_read(Continuation * cont, CacheKey * key, 
CacheHTTPHdr * request,
     c->dir = c->first_dir = result;
     c->last_collision = last_collision;
     SET_CONTINUATION_HANDLER(c, &CacheVC::openReadStartHead);
-    switch(c->do_read_call(&c->key)) {
-      case EVENT_DONE: return ACTION_RESULT_DONE;
-      case EVENT_RETURN: goto Lcallreturn;
-      default: return &c->_action;
+    switch (c->do_read_call(&c->key)) {
+    case EVENT_DONE:
+      return ACTION_RESULT_DONE;
+    case EVENT_RETURN:
+      goto Lcallreturn;
+    default:
+      return &c->_action;
     }
   }
 Lmiss:
   CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
-  cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) -ECACHE_NO_DOC);
+  cont->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *)-ECACHE_NO_DOC);
   return ACTION_RESULT_DONE;
 Lwriter:
   // this is a horrible violation of the interface and should be fixed (FIXME)
@@ -158,14 +163,13 @@ Lcallreturn:
 #endif
 
 uint32_t
-CacheVC::load_http_info(CacheHTTPInfoVector* info, Doc* doc, RefCountObj * 
block_ptr)
+CacheVC::load_http_info(CacheHTTPInfoVector *info, Doc *doc, RefCountObj 
*block_ptr)
 {
   uint32_t zret = info->get_handles(doc->hdr(), doc->hlen, block_ptr);
   if (cache_config_compatibility_4_2_0_fixup && // manual override not engaged
-      ! this->f.doc_from_ram_cache && // it's already been done for ram cache 
fragments
-      vol->header->version.ink_major == 23 && vol->header->version.ink_minor 
== 0
-    ) {
-    for ( int i = info->xcount - 1 ; i >= 0 ; --i ) {
+      !this->f.doc_from_ram_cache &&            // it's already been done for 
ram cache fragments
+      vol->header->version.ink_major == 23 && vol->header->version.ink_minor 
== 0) {
+    for (int i = info->xcount - 1; i >= 0; --i) {
       
info->data(i).alternate.m_alt->m_response_hdr.m_mime->recompute_accelerators_and_presence_bits();
       
info->data(i).alternate.m_alt->m_request_hdr.m_mime->recompute_accelerators_and_presence_bits();
     }
@@ -174,9 +178,8 @@ CacheVC::load_http_info(CacheHTTPInfoVector* info, Doc* 
doc, RefCountObj * block
 }
 
 int
-CacheVC::openReadFromWriterFailure(int event, Event * e)
+CacheVC::openReadFromWriterFailure(int event, Event *e)
 {
-
   od = NULL;
   vector.clear(false);
   CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
@@ -216,7 +219,7 @@ CacheVC::openReadChooseWriter(int /* event ATS_UNUSED */, 
Event * /* e ATS_UNUSE
       vector.insert(write_vector->get(c));
     // check if all the writers who came before this reader have
     // set the http_info.
-    for (w = (CacheVC *) od->writers.head; w; w = (CacheVC *) 
w->opendir_link.next) {
+    for (w = (CacheVC *)od->writers.head; w; w = (CacheVC 
*)w->opendir_link.next) {
       if (w->start_time > start_time || w->closed < 0)
         continue;
       if (!w->closed && !cache_config_read_while_writer) {
@@ -250,7 +253,7 @@ CacheVC::openReadChooseWriter(int /* event ATS_UNUSED */, 
Event * /* e ATS_UNUSE
 
     if (!vector.count()) {
       if (od->reading_vec) {
-       // the writer(s) are reading the vector, so there is probably
+        // the writer(s) are reading the vector, so there is probably
         // an old vector. Since this reader came before any of the
         // current writers, we should return the old data
         od = NULL;
@@ -265,7 +268,7 @@ CacheVC::openReadChooseWriter(int /* event ATS_UNUSED */, 
Event * /* e ATS_UNUSE
     } else
       alternate_index = 0;
     CacheHTTPInfo *obj = vector.get(alternate_index);
-    for (w = (CacheVC *) od->writers.head; w; w = (CacheVC *) 
w->opendir_link.next) {
+    for (w = (CacheVC *)od->writers.head; w; w = (CacheVC 
*)w->opendir_link.next) {
       if (obj->m_alt == w->alternate.m_alt) {
         write_vc = w;
         break;
@@ -278,17 +281,15 @@ CacheVC::openReadChooseWriter(int /* event ATS_UNUSED */, 
Event * /* e ATS_UNUSE
       return EVENT_RETURN;
     }
 
-    DDebug("cache_read_agg",
-          "%p: key: %X eKey: %d # alts: %d, ndx: %d, # writers: %d writer: %p",
-          this, first_key.slice32(1), write_vc->earliest_key.slice32(1),
-          vector.count(), alternate_index, od->num_writers, write_vc);
+    DDebug("cache_read_agg", "%p: key: %X eKey: %d # alts: %d, ndx: %d, # 
writers: %d writer: %p", this, first_key.slice32(1),
+           write_vc->earliest_key.slice32(1), vector.count(), alternate_index, 
od->num_writers, write_vc);
   }
-#endif //HTTP_CACHE
+#endif // HTTP_CACHE
   return EVENT_NONE;
 }
 
 int
-CacheVC::openReadFromWriter(int event, Event * e)
+CacheVC::openReadFromWriter(int event, Event *e)
 {
   if (!f.read_from_writer_called) {
     // The assignment to last_collision as NULL was
@@ -306,7 +307,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
   intptr_t err = ECACHE_DOC_BUSY;
   DDebug("cache_read_agg", "%p: key: %X In openReadFromWriter", this, 
first_key.slice32(1));
 #ifndef READ_WHILE_WRITER
-  return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event *) 
-err);
+  return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event 
*)-err);
 #else
   if (_action.cancelled) {
     od = NULL; // only open for read so no need to close
@@ -328,7 +329,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
     if (ret < 0) {
       MUTEX_RELEASE(lock);
       SET_HANDLER(&CacheVC::openReadFromWriterFailure);
-      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, 
reinterpret_cast<Event *> (ret));
+      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, 
reinterpret_cast<Event *>(ret));
     } else if (ret == EVENT_RETURN) {
       MUTEX_RELEASE(lock);
       SET_HANDLER(&CacheVC::openReadStartHead);
@@ -341,8 +342,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
   } else {
     if (writer_done()) {
       MUTEX_RELEASE(lock);
-      DDebug("cache_read_agg",
-            "%p: key: %X writer %p has left, continuing as normal read", this, 
first_key.slice32(1), write_vc);
+      DDebug("cache_read_agg", "%p: key: %X writer %p has left, continuing as 
normal read", this, first_key.slice32(1), write_vc);
       od = NULL;
       write_vc = NULL;
       SET_HANDLER(&CacheVC::openReadStartHead);
@@ -357,7 +357,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
   if (write_vc->closed < 0) {
     MUTEX_RELEASE(lock);
     write_vc = NULL;
-    //writer aborted, continue as if there is no writer
+    // writer aborted, continue as if there is no writer
     SET_HANDLER(&CacheVC::openReadStartHead);
     return openReadStartHead(EVENT_IMMEDIATE, 0);
   }
@@ -366,11 +366,10 @@ CacheVC::openReadFromWriter(int event, Event * e)
   if (!write_vc->closed && !write_vc->fragment) {
     if (!cache_config_read_while_writer || frag_type != CACHE_FRAG_TYPE_HTTP) {
       MUTEX_RELEASE(lock);
-      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event *) 
- err);
+      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event 
*)-err);
     }
-    DDebug("cache_read_agg",
-          "%p: key: %X writer: closed:%d, fragment:%d, retry: %d",
-          this, first_key.slice32(1), write_vc->closed, write_vc->fragment, 
writer_lock_retry);
+    DDebug("cache_read_agg", "%p: key: %X writer: closed:%d, fragment:%d, 
retry: %d", this, first_key.slice32(1), write_vc->closed,
+           write_vc->fragment, writer_lock_retry);
     VC_SCHED_WRITER_RETRY();
   }
 
@@ -382,14 +381,13 @@ CacheVC::openReadFromWriter(int event, Event * e)
   MUTEX_RELEASE(lock);
 
   if (!write_vc->io.ok())
-    return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event *) - 
err);
+    return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event 
*)-err);
 #ifdef HTTP_CACHE
   if (frag_type == CACHE_FRAG_TYPE_HTTP) {
-    DDebug("cache_read_agg",
-          "%p: key: %X http passed stage 1, closed: %d, frag: %d",
-          this, first_key.slice32(1), write_vc->closed, write_vc->fragment);
+    DDebug("cache_read_agg", "%p: key: %X http passed stage 1, closed: %d, 
frag: %d", this, first_key.slice32(1), write_vc->closed,
+           write_vc->fragment);
     if (!write_vc->alternate.valid())
-      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event *) 
- err);
+      return openReadFromWriterFailure(CACHE_EVENT_OPEN_READ_FAILED, (Event 
*)-err);
     alternate.copy(&write_vc->alternate);
     vector.insert(&alternate);
     alternate.object_key_get(&key);
@@ -406,12 +404,12 @@ CacheVC::openReadFromWriter(int event, Event * e)
       DDebug("cache_read_agg", "%p: key: %X writer header update", this, 
first_key.slice32(1));
       // Update case (b) : grab doc_len from the writer's alternate
       doc_len = alternate.object_size_get();
-      if (write_vc->update_key == cod->single_doc_key &&
-          (cod->move_resident_alt || write_vc->f.rewrite_resident_alt) && 
write_vc->first_buf._ptr()) {
+      if (write_vc->update_key == cod->single_doc_key && 
(cod->move_resident_alt || write_vc->f.rewrite_resident_alt) &&
+          write_vc->first_buf._ptr()) {
         // the resident alternate is being updated and its a
         // header only update. The first_buf of the writer has the
         // document body.
-        Doc *doc = (Doc *) write_vc->first_buf->data();
+        Doc *doc = (Doc *)write_vc->first_buf->data();
         writer_buf = new_IOBufferBlock(write_vc->first_buf, doc->data_len(), 
doc->prefix_len());
         MUTEX_RELEASE(writer_lock);
         ink_assert(doc_len == doc->data_len());
@@ -433,7 +431,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
       return openReadStartEarliest(event, e);
     }
   } else {
-#endif //HTTP_CACHE
+#endif // HTTP_CACHE
     DDebug("cache_read_agg", "%p: key: %X non-http passed stage 1", this, 
first_key.slice32(1));
     key = write_vc->earliest_key;
 #ifdef HTTP_CACHE
@@ -442,9 +440,8 @@ CacheVC::openReadFromWriter(int event, Event * e)
   if (write_vc->fragment) {
     doc_len = write_vc->vio.nbytes;
     last_collision = NULL;
-    DDebug("cache_read_agg",
-          "%p: key: %X closed: %d, fragment: %d, len: %d starting first 
fragment",
-          this, first_key.slice32(1), write_vc->closed, write_vc->fragment, 
(int)doc_len);
+    DDebug("cache_read_agg", "%p: key: %X closed: %d, fragment: %d, len: %d 
starting first fragment", this, first_key.slice32(1),
+           write_vc->closed, write_vc->fragment, (int)doc_len);
     MUTEX_RELEASE(writer_lock);
     // either a header + body update or a new document
     SET_HANDLER(&CacheVC::openReadStartEarliest);
@@ -454,7 +451,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
   writer_offset = write_vc->offset;
   length = write_vc->length;
   // copy the vector
-  f.single_fragment = !write_vc->fragment;        // single fragment doc
+  f.single_fragment = !write_vc->fragment; // single fragment doc
   doc_pos = 0;
   earliest_key = write_vc->earliest_key;
   ink_assert(earliest_key == key);
@@ -466,7 +463,7 @@ CacheVC::openReadFromWriter(int event, Event * e)
   SET_HANDLER(&CacheVC::openReadFromWriterMain);
   CACHE_INCREMENT_DYN_STAT(cache_read_busy_success_stat);
   return callcont(CACHE_EVENT_OPEN_READ);
-#endif //READ_WHILE_WRITER
+#endif // READ_WHILE_WRITER
 }
 
 int
@@ -538,7 +535,7 @@ CacheVC::openReadClose(int event, Event * /* e ATS_UNUSED 
*/)
 }
 
 int
-CacheVC::openReadReadDone(int event, Event * e)
+CacheVC::openReadReadDone(int event, Event *e)
 {
   Doc *doc = NULL;
 
@@ -554,10 +551,10 @@ CacheVC::openReadReadDone(int event, Event * e)
       dir_delete(&earliest_key, vol, &earliest_dir);
       goto Lerror;
     }
-    if (last_collision &&         // no missed lock
-        dir_valid(vol, &dir))    // object still valid
+    if (last_collision &&     // no missed lock
+        dir_valid(vol, &dir)) // object still valid
     {
-      doc = (Doc *) buf->data();
+      doc = (Doc *)buf->data();
       if (doc->magic != DOC_MAGIC) {
         char tmpstring[100];
         if (doc->magic == DOC_CORRUPT)
@@ -576,18 +573,18 @@ CacheVC::openReadReadDone(int event, Event * e)
         goto LreadMain;
 #if TS_USE_INTERIM_CACHE == 1
       else if (dir_ininterim(&dir)) {
-          dir_delete(&key, vol, &dir);
-          last_collision = NULL;
-        }
+        dir_delete(&key, vol, &dir);
+        last_collision = NULL;
+      }
 #endif
     }
 #if TS_USE_INTERIM_CACHE == 1
     if (last_collision && dir_get_offset(&dir) != 
dir_get_offset(last_collision))
       last_collision = 0;
-Lread:
+  Lread:
 #else
     if (last_collision && dir_offset(&dir) != dir_offset(last_collision))
-      last_collision = 0;       // object has been/is being overwritten
+      last_collision = 0; // object has been/is being overwritten
 #endif
     if (dir_probe(&key, vol, &dir, &last_collision)) {
       int ret = do_read_call(&key);
@@ -603,14 +600,12 @@ Lread:
 #else
           if (dir_offset(&dir) == dir_offset(&earliest_dir)) {
 #endif
-            DDebug("cache_read_agg", "%p: key: %X ReadRead complete: %d",
-                  this, first_key.slice32(1), (int)vio.ndone);
+            DDebug("cache_read_agg", "%p: key: %X ReadRead complete: %d", 
this, first_key.slice32(1), (int)vio.ndone);
             doc_len = vio.ndone;
             goto Ldone;
           }
         }
-        DDebug("cache_read_agg", "%p: key: %X ReadRead writer aborted: %d",
-              this, first_key.slice32(1), (int)vio.ndone);
+        DDebug("cache_read_agg", "%p: key: %X ReadRead writer aborted: %d", 
this, first_key.slice32(1), (int)vio.ndone);
         goto Lerror;
       }
       DDebug("cache_read_agg", "%p: key: %X ReadRead retrying: %d", this, 
first_key.slice32(1), (int)vio.ndone);
@@ -638,7 +633,7 @@ int
 CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * /* e ATS_UNUSED */)
 {
   cancel_trigger();
-  Doc *doc = (Doc *) buf->data();
+  Doc *doc = (Doc *)buf->data();
   int64_t ntodo = vio.ntodo();
   int64_t bytes = doc->len - doc_pos;
   IOBufferBlock *b = NULL;
@@ -648,11 +643,11 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
       return calluser(VC_EVENT_EOS);
     }
 #ifdef HTTP_CACHE
-    HTTPInfo::FragOffset* frags = alternate.get_frag_table();
+    HTTPInfo::FragOffset *frags = alternate.get_frag_table();
     if (is_debug_tag_set("cache_seek")) {
       char b[33], c[33];
-      Debug("cache_seek", "Seek @ %" PRId64" in %s from #%d @ %" 
PRId64"/%d:%s",
-            seek_to, first_key.toHexStr(b), fragment, doc_pos, doc->len, 
doc->key.toHexStr(c));
+      Debug("cache_seek", "Seek @ %" PRId64 " in %s from #%d @ %" PRId64 
"/%d:%s", seek_to, first_key.toHexStr(b), fragment,
+            doc_pos, doc->len, doc->key.toHexStr(c));
     }
     /* Because single fragment objects can migrate to hang off an alt vector
        they can appear to the VC as multi-fragment when they are not really.
@@ -670,15 +665,13 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
          more than the fragment table length, the start of the last
          fragment being the last offset in the table.
       */
-      if (fragment == 0 ||
-          seek_to < frags[fragment-1] ||
-          (fragment <= lfi && frags[fragment] <= seek_to)
-        ) {
+      if (fragment == 0 || seek_to < frags[fragment - 1] || (fragment <= lfi 
&& frags[fragment] <= seek_to)) {
         // search from frag 0 on to find the proper frag
         while (seek_to >= next_off && target < lfi) {
           next_off = frags[++target];
         }
-        if (target == lfi && seek_to >= next_off) ++target;
+        if (target == lfi && seek_to >= next_off)
+          ++target;
       } else { // shortcut if we are in the fragment already
         target = fragment;
       }
@@ -699,13 +692,14 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
         if (is_debug_tag_set("cache_seek")) {
           char target_key_str[33];
           key.toHexStr(target_key_str);
-          Debug("cache_seek", "Seek #%d @ %" PRId64" -> #%d @ %" PRId64":%s", 
cfi, doc_pos, target, seek_to, target_key_str);
+          Debug("cache_seek", "Seek #%d @ %" PRId64 " -> #%d @ %" PRId64 
":%s", cfi, doc_pos, target, seek_to, target_key_str);
         }
         goto Lread;
       }
     }
     doc_pos = doc->prefix_len() + seek_to;
-    if (fragment) doc_pos -= static_cast<int64_t>(frags[fragment-1]);
+    if (fragment)
+      doc_pos -= static_cast<int64_t>(frags[fragment - 1]);
     vio.ndone = 0;
     seek_to = 0;
     ntodo = vio.ntodo();
@@ -713,7 +707,7 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
     if (is_debug_tag_set("cache_seek")) {
       char target_key_str[33];
       key.toHexStr(target_key_str);
-      Debug("cache_seek", "Read # %d @ %" PRId64"/%d for %" PRId64, fragment, 
doc_pos, doc->len, bytes);
+      Debug("cache_seek", "Read # %d @ %" PRId64 "/%d for %" PRId64, fragment, 
doc_pos, doc->len, bytes);
     }
 #endif
   }
@@ -741,53 +735,52 @@ CacheVC::openReadMain(int /* event ATS_UNUSED */, Event * 
/* e ATS_UNUSED */)
       goto Lread;
     return EVENT_CONT;
   }
-Lread: {
-    if (vio.ndone >= (int64_t)doc_len)
-      // reached the end of the document and the user still wants more
-      return calluser(VC_EVENT_EOS);
-    last_collision = 0;
-    writer_lock_retry = 0;
-    // if the state machine calls reenable on the callback from the cache,
-    // we set up a schedule_imm event. The openReadReadDone discards
-    // EVENT_IMMEDIATE events. So, we have to cancel that trigger and set
-    // a new EVENT_INTERVAL event.
-    cancel_trigger();
-    CACHE_TRY_LOCK(lock, vol->mutex, mutex->thread_holding);
-    if (!lock.is_locked()) {
-      SET_HANDLER(&CacheVC::openReadMain);
-      VC_SCHED_LOCK_RETRY();
-    }
-    if (dir_probe(&key, vol, &dir, &last_collision)) {
-      SET_HANDLER(&CacheVC::openReadReadDone);
-      int ret = do_read_call(&key);
-      if (ret == EVENT_RETURN)
-        goto Lcallreturn;
-      return EVENT_CONT;
-    } else if (write_vc) {
-      if (writer_done()) {
-        last_collision = NULL;
-        while (dir_probe(&earliest_key, vol, &dir, &last_collision)) {
-          if (dir_offset(&dir) == dir_offset(&earliest_dir)) {
-            DDebug("cache_read_agg", "%p: key: %X ReadMain complete: %d",
-                  this, first_key.slice32(1), (int)vio.ndone);
-            doc_len = vio.ndone;
-            goto Leos;
-          }
+Lread : {
+  if (vio.ndone >= (int64_t)doc_len)
+    // reached the end of the document and the user still wants more
+    return calluser(VC_EVENT_EOS);
+  last_collision = 0;
+  writer_lock_retry = 0;
+  // if the state machine calls reenable on the callback from the cache,
+  // we set up a schedule_imm event. The openReadReadDone discards
+  // EVENT_IMMEDIATE events. So, we have to cancel that trigger and set
+  // a new EVENT_INTERVAL event.
+  cancel_trigger();
+  CACHE_TRY_LOCK(lock, vol->mutex, mutex->thread_holding);
+  if (!lock.is_locked()) {
+    SET_HANDLER(&CacheVC::openReadMain);
+    VC_SCHED_LOCK_RETRY();
+  }
+  if (dir_probe(&key, vol, &dir, &last_collision)) {
+    SET_HANDLER(&CacheVC::openReadReadDone);
+    int ret = do_read_call(&key);
+    if (ret == EVENT_RETURN)
+      goto Lcallreturn;
+    return EVENT_CONT;
+  } else if (write_vc) {
+    if (writer_done()) {
+      last_collision = NULL;
+      while (dir_probe(&earliest_key, vol, &dir, &last_collision)) {
+        if (dir_offset(&dir) == dir_offset(&earliest_dir)) {
+          DDebug("cache_read_agg", "%p: key: %X ReadMain complete: %d", this, 
first_key.slice32(1), (int)vio.ndone);
+          doc_len = vio.ndone;
+          goto Leos;
         }
-        DDebug("cache_read_agg", "%p: key: %X ReadMain writer aborted: %d",
-              this, first_key.slice32(1), (int)vio.ndone);
-        goto Lerror;
       }
-      DDebug("cache_read_agg", "%p: key: %X ReadMain retrying: %d", this, 
first_key.slice32(1), (int)vio.ndone);
-      SET_HANDLER(&CacheVC::openReadMain);
-      VC_SCHED_WRITER_RETRY();
+      DDebug("cache_read_agg", "%p: key: %X ReadMain writer aborted: %d", 
this, first_key.slice32(1), (int)vio.ndone);
+      goto Lerror;
     }
-    if (is_action_tag_set("cache"))
-      ink_release_assert(false);
-    Warning("Document %X truncated at %d of %d, missing fragment %X", 
first_key.slice32(1), (int)vio.ndone, (int)doc_len, key.slice32(1));
-    // remove the directory entry
-    dir_delete(&earliest_key, vol, &earliest_dir);
+    DDebug("cache_read_agg", "%p: key: %X ReadMain retrying: %d", this, 
first_key.slice32(1), (int)vio.ndone);
+    SET_HANDLER(&CacheVC::openReadMain);
+    VC_SCHED_WRITER_RETRY();
   }
+  if (is_action_tag_set("cache"))
+    ink_release_assert(false);
+  Warning("Document %X truncated at %d of %d, missing fragment %X", 
first_key.slice32(1), (int)vio.ndone, (int)doc_len,
+          key.slice32(1));
+  // remove the directory entry
+  dir_delete(&earliest_key, vol, &earliest_dir);
+}
 Lerror:
   return calluser(VC_EVENT_ERROR);
 Leos:
@@ -825,7 +818,7 @@ CacheVC::openReadStartEarliest(int /* event ATS_UNUSED */, 
Event * /* e ATS_UNUS
         last_collision = NULL;
       goto Lread;
     }
-    doc = (Doc *) buf->data();
+    doc = (Doc *)buf->data();
     if (doc->magic != DOC_MAGIC) {
       char tmpstring[100];
       if (is_action_tag_set("cache")) {
@@ -856,16 +849,14 @@ CacheVC::openReadStartEarliest(int /* event ATS_UNUSED 
*/, Event * /* e ATS_UNUS
 #if TS_USE_INTERIM_CACHE == 1
         && !dir_ininterim(&dir)
 #endif
-        ) {
-      DDebug("cache_hit_evac", "dir: %" PRId64", write: %" PRId64", phase: %d",
-            dir_offset(&earliest_dir), offset_to_vol_offset(vol, 
vol->header->write_pos), vol->header->phase);
+          ) {
+      DDebug("cache_hit_evac", "dir: %" PRId64 ", write: %" PRId64 ", phase: 
%d", dir_offset(&earliest_dir),
+             offset_to_vol_offset(vol, vol->header->write_pos), 
vol->header->phase);
       f.hit_evacuate = 1;
     }
     goto Lsuccess;
-Lread:
-    if (dir_probe(&key, vol, &earliest_dir, &last_collision) ||
-        dir_lookaside_probe(&key, vol, &earliest_dir, NULL))
-    {
+  Lread:
+    if (dir_probe(&key, vol, &earliest_dir, &last_collision) || 
dir_lookaside_probe(&key, vol, &earliest_dir, NULL)) {
       dir = earliest_dir;
 #if TS_USE_INTERIM_CACHE == 1
       if (dir_ininterim(&dir) && alternate.get_frag_offset_count() > 1) {
@@ -878,13 +869,13 @@ Lread:
         goto Lcallreturn;
       return ret;
     }
-    // read has detected that alternate does not exist in the cache.
-    // rewrite the vector.
+// read has detected that alternate does not exist in the cache.
+// rewrite the vector.
 #ifdef HTTP_CACHE
     if (!f.read_from_writer_called && frag_type == CACHE_FRAG_TYPE_HTTP) {
       // don't want any writers while we are evacuating the vector
       if (!vol->open_write(this, false, 1)) {
-        Doc *doc1 = (Doc *) first_buf->data();
+        Doc *doc1 = (Doc *)first_buf->data();
         uint32_t len = this->load_http_info(write_vector, doc1);
         ink_assert(len == doc1->hlen && write_vector->count() > 0);
         write_vector->remove(alternate_index, true);
@@ -938,13 +929,13 @@ Lread:
       }
     }
 #endif
-    // open write failure - another writer, so don't modify the vector
+  // open write failure - another writer, so don't modify the vector
   Ldone:
     if (od)
       vol->close_write(this);
   }
   CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
-  _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) 
-ECACHE_NO_DOC);
+  _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void 
*)-ECACHE_NO_DOC);
   return free_CacheVC(this);
 Lcallreturn:
   return handleEvent(AIO_EVENT_DONE, 0); // hopefully a tail call
@@ -998,7 +989,7 @@ CacheVC::openReadVecWrite(int /* event ATS_UNUSED */, Event 
* /* e ATS_UNUSED */
   }
 
   CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
-  _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) 
-ECACHE_ALT_MISS);
+  _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void 
*)-ECACHE_ALT_MISS);
   return free_CacheVC(this);
 Lrestart:
   SET_HANDLER(&CacheVC::openReadStartHead);
@@ -1011,7 +1002,7 @@ Lrestart:
   if you change this you might have to change that.
 */
 int
-CacheVC::openReadStartHead(int event, Event * e)
+CacheVC::openReadStartHead(int event, Event *e)
 {
   intptr_t err = ECACHE_NO_DOC;
   Doc *doc = NULL;
@@ -1041,7 +1032,7 @@ CacheVC::openReadStartHead(int event, Event * e)
 #endif
       goto Lread;
     }
-    doc = (Doc *) buf->data();
+    doc = (Doc *)buf->data();
     if (doc->magic != DOC_MAGIC) {
       char tmpstring[100];
       if (is_action_tag_set("cache")) {
@@ -1084,28 +1075,23 @@ CacheVC::openReadStartHead(int event, Event * e)
         goto Ldone;
       if ((uml = this->load_http_info(&vector, doc)) != doc->hlen) {
         if (buf) {
-          HTTPCacheAlt* alt = reinterpret_cast<HTTPCacheAlt*>(doc->hdr());
+          HTTPCacheAlt *alt = reinterpret_cast<HTTPCacheAlt *>(doc->hdr());
           int32_t alt_length = 0;
           // count should be reasonable, as vector is initialized and unlikly 
to be too corrupted
           // by bad disk data - count should be the number of successfully 
unmarshalled alts.
-          for ( int32_t i = 0 ; i < vector.count() ; ++i ) {
-            CacheHTTPInfo* info = vector.get(i);
-            if (info && info->m_alt) alt_length += 
info->m_alt->m_unmarshal_len;
+          for (int32_t i = 0; i < vector.count(); ++i) {
+            CacheHTTPInfo *info = vector.get(i);
+            if (info && info->m_alt)
+              alt_length += info->m_alt->m_unmarshal_len;
           }
           Note("OpenReadHead failed for cachekey %X : vector inconsistency - "
                "unmarshalled %d expecting %d in %d (base=%d, ver=%d:%d) "
                "- vector n=%d size=%d"
-               "first alt=%d[%s]"
-               , key.slice32(0)
-               , uml, doc->hlen, doc->len, sizeofDoc
-               , doc->v_major, doc->v_minor
-               , vector.count(), alt_length
-               , alt->m_magic
-               , (CACHE_ALT_MAGIC_ALIVE == alt->m_magic ? "alive"
-                  : CACHE_ALT_MAGIC_MARSHALED == alt->m_magic ? "serial"
-                  : CACHE_ALT_MAGIC_DEAD == alt->m_magic ? "dead"
-                  : "bogus")
-            );
+               "first alt=%d[%s]",
+               key.slice32(0), uml, doc->hlen, doc->len, sizeofDoc, 
doc->v_major, doc->v_minor, vector.count(), alt_length,
+               alt->m_magic, (CACHE_ALT_MAGIC_ALIVE == alt->m_magic ? "alive" 
: CACHE_ALT_MAGIC_MARSHALED == alt->m_magic ?
+                                                                      "serial" 
:
+                                                                      
CACHE_ALT_MAGIC_DEAD == alt->m_magic ? "dead" : "bogus"));
           dir_delete(&key, vol, &dir);
         }
         err = ECACHE_BAD_META_DATA;
@@ -1131,9 +1117,9 @@ CacheVC::openReadStartHead(int event, Event * e)
       alternate.copy_shallow(alternate_tmp);
       alternate.object_key_get(&key);
       doc_len = alternate.object_size_get();
-      if (key == doc->key) {      // is this my data?
+      if (key == doc->key) { // is this my data?
         f.single_fragment = doc->single_fragment();
-        ink_assert(f.single_fragment);     // otherwise need to read earliest
+        ink_assert(f.single_fragment); // otherwise need to read earliest
         ink_assert(doc->hlen);
         doc_pos = doc->prefix_len();
         next_CacheKey(&key, &doc->key);
@@ -1150,17 +1136,15 @@ CacheVC::openReadStartHead(int event, Event * e)
     }
 
     if (is_debug_tag_set("cache_read")) { // amc debug
-      char xt[33],yt[33];
-      Debug("cache_read", "CacheReadStartHead - read %s target %s - %s %d of 
%" PRId64" bytes, %d fragments",
-            doc->key.toHexStr(xt), key.toHexStr(yt),
-            f.single_fragment ? "single" : "multi",
-            doc->len, doc->total_len,
+      char xt[33], yt[33];
+      Debug("cache_read", "CacheReadStartHead - read %s target %s - %s %d of 
%" PRId64 " bytes, %d fragments",
+            doc->key.toHexStr(xt), key.toHexStr(yt), f.single_fragment ? 
"single" : "multi", doc->len, doc->total_len,
 #ifdef HTTP_CACHE
             alternate.get_frag_offset_count()
 #else
             0
 #endif
-            );
+              );
     }
     // the first fragment might have been gc'ed. Make sure the first
     // fragment is there before returning CACHE_EVENT_OPEN_READ
@@ -1173,8 +1157,8 @@ CacheVC::openReadStartHead(int event, Event * e)
         && !f.read_from_interim
 #endif
         ) {
-      DDebug("cache_hit_evac", "dir: %" PRId64", write: %" PRId64", phase: %d",
-            dir_offset(&dir), offset_to_vol_offset(vol, 
vol->header->write_pos), vol->header->phase);
+      DDebug("cache_hit_evac", "dir: %" PRId64 ", write: %" PRId64 ", phase: 
%d", dir_offset(&dir),
+             offset_to_vol_offset(vol, vol->header->write_pos), 
vol->header->phase);
       f.hit_evacuate = 1;
     }
 
@@ -1211,10 +1195,10 @@ CacheVC::openReadStartHead(int event, Event * e)
 Ldone:
   if (!f.lookup) {
     CACHE_INCREMENT_DYN_STAT(cache_read_failure_stat);
-    _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void *) 
-err);
+    _action.continuation->handleEvent(CACHE_EVENT_OPEN_READ_FAILED, (void 
*)-err);
   } else {
     CACHE_INCREMENT_DYN_STAT(cache_lookup_failure_stat);
-    _action.continuation->handleEvent(CACHE_EVENT_LOOKUP_FAILED, (void *) 
-err);
+    _action.continuation->handleEvent(CACHE_EVENT_LOOKUP_FAILED, (void *)-err);
   }
   return free_CacheVC(this);
 Lcallreturn:

Reply via email to