Updated Branches:
  refs/heads/master e78a99e15 -> 6bc19b4e0

TS-1225: remove 32 bit doc_len instances


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/6bc19b4e
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/6bc19b4e
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/6bc19b4e

Branch: refs/heads/master
Commit: 6bc19b4e0893e0534e44b0a9930a4a1883bc4bef
Parents: e78a99e
Author: [email protected] <[email protected]>
Authored: Wed Apr 25 17:54:10 2012 -0700
Committer: John Plevyak <[email protected]>
Committed: Wed Apr 25 17:55:38 2012 -0700

----------------------------------------------------------------------
 iocore/cache/Cache.cc                |    3 -
 iocore/cache/CacheRead.cc            |    4 +-
 iocore/cache/I_CacheDefs.h           |    3 +-
 iocore/cluster/ClusterVConnection.cc |    5 -
 proxy/Main.cc                        |   10 -
 proxy/SimpleHttp.cc                  |  894 -----------------------------
 6 files changed, 3 insertions(+), 916 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/iocore/cache/Cache.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/Cache.cc b/iocore/cache/Cache.cc
index 78ef360..bcd5185 100644
--- a/iocore/cache/Cache.cc
+++ b/iocore/cache/Cache.cc
@@ -345,9 +345,6 @@ bool
 CacheVC::get_data(int i, void *data)
 {
   switch (i) {
-  case CACHE_DATA_SIZE:
-    *((int *) data) = doc_len;
-    return true;
 #ifdef HTTP_CACHE
   case CACHE_DATA_HTTP_INFO:
     *((CacheHTTPInfo **) data) = &alternate;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/iocore/cache/CacheRead.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/CacheRead.cc b/iocore/cache/CacheRead.cc
index aa200d0..d10f851 100644
--- a/iocore/cache/CacheRead.cc
+++ b/iocore/cache/CacheRead.cc
@@ -624,7 +624,7 @@ CacheVC::openReadMain(int event, Event * e)
   int64_t bytes = doc->len - doc_pos;
   IOBufferBlock *b = NULL;
   if (seek_to) { // handle do_io_pread
-    if (seek_to >= (int)doc_len) {
+    if (seek_to >= (int64_t)doc_len) {
       vio.ndone = doc_len;
       return calluser(VC_EVENT_EOS);
     }
@@ -687,7 +687,7 @@ CacheVC::openReadMain(int event, Event * e)
     return EVENT_CONT;
   }
 Lread: {
-    if ((uint32_t)vio.ndone >= doc_len)
+    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;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/iocore/cache/I_CacheDefs.h
----------------------------------------------------------------------
diff --git a/iocore/cache/I_CacheDefs.h b/iocore/cache/I_CacheDefs.h
index 5910d4b..9d2db84 100644
--- a/iocore/cache/I_CacheDefs.h
+++ b/iocore/cache/I_CacheDefs.h
@@ -104,8 +104,7 @@ enum CacheScanResult
 
 enum CacheDataType
 {
-  CACHE_DATA_SIZE = VCONNECTION_CACHE_DATA_BASE,
-  CACHE_DATA_HTTP_INFO,
+  CACHE_DATA_HTTP_INFO = VCONNECTION_CACHE_DATA_BASE,
   CACHE_DATA_KEY,
   CACHE_DATA_RAM_CACHE_HIT_FLAG
 };

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/iocore/cluster/ClusterVConnection.cc
----------------------------------------------------------------------
diff --git a/iocore/cluster/ClusterVConnection.cc 
b/iocore/cluster/ClusterVConnection.cc
index fe0813b..bec5445 100644
--- a/iocore/cluster/ClusterVConnection.cc
+++ b/iocore/cluster/ClusterVConnection.cc
@@ -456,11 +456,6 @@ ClusterVConnection::set_type(int options)
 bool ClusterVConnection::get_data(int id, void *data)
 {
   switch (id) {
-  case CACHE_DATA_SIZE:
-    {
-      *((int64_t *) data) = get_object_size();
-      return true;
-    }
   case CACHE_DATA_HTTP_INFO:
     {
       ink_release_assert(!"ClusterVConnection::get_data CACHE_DATA_HTTP_INFO 
not supported");

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/proxy/Main.cc
----------------------------------------------------------------------
diff --git a/proxy/Main.cc b/proxy/Main.cc
index e369e43..6235507 100644
--- a/proxy/Main.cc
+++ b/proxy/Main.cc
@@ -75,23 +75,16 @@ extern "C" int plock(int);
 #include "CacheControl.h"
 #include "IPAllow.h"
 #include "ParentSelection.h"
-//#include "simple/Simple.h"
-
 #include "MgmtUtils.h"
 #include "StatPages.h"
 #include "HTTP.h"
 #include "Plugin.h"
 #include "DiagsConfig.h"
-
 #include "CoreUtils.h"
-
 #include "Update.h"
 #include "congest/Congestion.h"
-
 #include "RemapProcessor.h"
-
 #include "XmlUtils.h"
-
 #include "I_Tasks.h"
 
 #include <ts/ink_cap.h>
@@ -182,9 +175,6 @@ AppVersionInfo appVersionInfo;  // Build info for this 
application
 
 #if TS_HAS_TESTS
 extern int run_TestHook();
-// TODO: Maybe review and "fix" this test at some point?
-//
-//extern void run_SimpleHttp();
 #endif
 void deinitSubAgent();
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6bc19b4e/proxy/SimpleHttp.cc
----------------------------------------------------------------------
diff --git a/proxy/SimpleHttp.cc b/proxy/SimpleHttp.cc
deleted file mode 100644
index bd043d8..0000000
--- a/proxy/SimpleHttp.cc
+++ /dev/null
@@ -1,894 +0,0 @@
-/** @file
-
-  A brief file description
-
-  @section license License
-
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
- */
-
-#include <limits.h>
-#include <string.h>
-#include "libts.h"
-#include "P_Cache.h"
-#include "P_Net.h"
-#include "P_HostDB.h"
-#include "ProxyConfig.h"
-#include "Diags.h"
-#include "HTTP.h"
-
-// TODO: This should be changed later to use TS_HAS_TESTS, but currently, the 
test
-// most likely isn't functional.
-#if COMPILE_SIMPLE_HTTP
-
-#define HISTORY_SIZE     0
-#define HISTORY_DECL
-#define HISTORY_MARK()
-
-
-static int enabled = 0;
-static int port = 8888;
-static int buffer_size = 32 * 1024;
-static int buffer_size_idx = BUFFER_SIZE_INDEX_32K;
-
-
-class AcceptCont:public Continuation
-{
-public:
-  AcceptCont();
-
-  int handle_event(int event, void *edata);
-};
-
-
-class SimpleCont:public Continuation
-{
-public:
-  SimpleCont();
-
-  static SimpleCont *create();
-  void destroy();
-
-  void start(NetVConnection * ua);
-  void parse_ua_req(int eof);
-  void cache_read(void);
-  void cache_ua_tunnel(void);
-  void dns_lookup(void);
-  void os_connect(unsigned int addr);
-  void os_write_req(void);
-  void os_read_resp(void);
-  void parse_os_resp(int eof);
-  void ua_write_resp(void);
-  void cache_write(void);
-  void os_ua_tunnel(void);
-  void ua_close(void);
-  void cache_close(void);
-  void cache_abort(void);
-
-  int ua_read_req_event(int event, void *edata);
-  int cache_read_event(int event, void *edata);
-  int cache_ua_tunnel_event(int event, void *edata);
-  int dns_event(int event, void *edata);
-  int os_connect_event(int event, void *edata);
-  int os_write_event(int event, void *edata);
-  int os_read_resp_event(int event, void *edata);
-  int cache_write_event(int event, void *edata);
-  int os_ua_tunnel_event(int event, void *edata);
-
-public:
-    HTTPParser m_parser;
-  Action *m_pending_action;
-
-  NetVConnection *m_ua_vc;
-  MIOBuffer *m_ua_read_buf;
-  IOBufferReader *m_ua_reader;
-  VIO *m_ua_read_vio;
-  VIO *m_ua_write_vio;
-  HTTPHdr m_ua_req;
-
-  MIOBuffer *m_ua_write_buf;
-  int m_ua_resp_size;
-
-  const char *m_os_name;
-  int m_os_port;
-  NetVConnection *m_os_vc;
-  MIOBuffer *m_os_write_buf;
-  VIO *m_os_write_vio;
-  VIO *m_os_read_vio;
-
-  MIOBuffer *m_os_read_buf;
-  IOBufferReader *m_os_reader;
-  HTTPHdr m_os_resp;
-
-  CacheKey m_key;
-  VConnection *m_cache_read_vc;
-  VIO *m_cache_read_vio;
-  VConnection *m_cache_write_vc;
-  VIO *m_cache_write_vio;
-
-  HISTORY_DECL};
-
-
-static ClassAllocator<SimpleCont> simpleContAllocator("simpleContAllocator");
-
-
-AcceptCont::AcceptCont()
-:Continuation(NULL)
-{
-  SET_HANDLER(&AcceptCont::handle_event);
-}
-
-int
-AcceptCont::handle_event(int event, void *edata)
-{
-  if (event == NET_EVENT_ACCEPT) {
-    SimpleCont *sm = SimpleCont::create();
-    sm->start((NetVConnection *) edata);
-  }
-  return 0;
-}
-
-
-SimpleCont::SimpleCont()
-:Continuation(NULL),
-m_pending_action(NULL),
-m_ua_vc(NULL),
-m_ua_read_buf(NULL),
-m_ua_reader(NULL),
-m_ua_read_vio(NULL),
-m_ua_write_vio(NULL),
-m_ua_req(),
-m_ua_write_buf(NULL),
-m_ua_resp_size(0),
-m_os_name(NULL),
-m_os_port(0),
-m_os_vc(NULL),
-m_os_write_buf(NULL),
-m_os_write_vio(NULL),
-m_os_read_vio(NULL),
-m_os_read_buf(NULL),
-m_os_reader(NULL),
-m_os_resp(), m_cache_read_vc(NULL), m_cache_read_vio(NULL), 
m_cache_write_vc(NULL), m_cache_write_vio(NULL)
-{
-}
-
-SimpleCont *
-SimpleCont::create()
-{
-  return simpleContAllocator.alloc();
-}
-
-void
-SimpleCont::destroy()
-{
-  if (m_pending_action) {
-    m_pending_action->cancel();
-  }
-
-  if (m_ua_vc) {
-    m_ua_vc->do_io_close();
-  }
-  if (m_os_vc) {
-    m_os_vc->do_io_close();
-  }
-  if (m_cache_read_vc) {
-    m_cache_read_vc->do_io_close(1);
-  }
-  if (m_cache_write_vc) {
-    m_cache_write_vc->do_io_close(1);
-  }
-
-  if (m_ua_read_buf) {
-    free_MIOBuffer(m_ua_read_buf);
-  }
-  if (m_ua_write_buf) {
-    free_MIOBuffer(m_ua_write_buf);
-  }
-  if (m_os_write_buf) {
-    free_MIOBuffer(m_os_write_buf);
-  }
-  if (m_os_read_buf) {
-    free_MIOBuffer(m_os_read_buf);
-  }
-
-  m_ua_req.destroy();
-  m_os_resp.destroy();
-
-  mutex = NULL;
-
-  simpleContAllocator.free(this);
-}
-
-void
-SimpleCont::start(NetVConnection * ua)
-{
-  mutex = this_ethread()->mutex;
-
-  http_parser_init(&m_parser);
-
-  m_ua_vc = ua;
-  m_ua_read_buf = new_MIOBuffer(buffer_size_idx);
-  m_ua_reader = m_ua_read_buf->alloc_reader();
-
-  SET_HANDLER(&SimpleCont::ua_read_req_event);
-
-  m_ua_read_vio = m_ua_vc->do_io_read(this, INT64_MAX, m_ua_read_buf);
-}
-
-void
-SimpleCont::parse_ua_req(int eof)
-{
-  const char *start, *p;
-  const char *end;
-  int avail;
-  int err;
-
-  for (;;) {
-    avail = m_ua_reader->block_read_avail();
-    if (!avail) {
-      if (eof) {
-        destroy();
-      }
-      return;
-    }
-    p = start = m_ua_reader->start();
-    end = start + avail;
-
-    err = m_ua_req.parse_req(&m_parser, &p, end, eof);
-
-    m_ua_reader->consume(p - start);
-
-    if (err == PARSE_DONE) {
-      if (is_debug_tag_set("simple_http")) {
-        m_ua_req.print(NULL, 0, NULL, NULL);
-      }
-      m_ua_read_vio->nbytes = m_ua_read_vio->ndone;
-      cache_read();
-      return;
-    }
-
-    if (err == PARSE_ERROR) {
-      destroy();
-      return;
-    }
-  }
-
-  m_ua_read_vio->reenable();
-}
-
-void
-SimpleCont::cache_read()
-{
-  URL url;
-  INK_MD5 md5;
-  Action *action;
-
-  url = m_ua_req.url_get();
-  url.MD5_get(&md5);
-  m_key.set(md5);
-
-  SET_HANDLER(&SimpleCont::cache_read_event);
-
-  action = cacheProcessor.open_read(this, &m_key);
-  if (action != ACTION_RESULT_DONE) {
-    m_pending_action = action;
-  }
-}
-
-void
-SimpleCont::cache_ua_tunnel()
-{
-  int length;
-
-  length = 0;
-  m_cache_read_vc->get_data(CACHE_DATA_SIZE, &length);
-
-  m_ua_write_buf = new_empty_MIOBuffer(buffer_size_idx);
-  m_ua_reader = m_ua_write_buf->alloc_reader();
-
-  SET_HANDLER(&SimpleCont::cache_ua_tunnel_event);
-
-  Debug("simple_http", "cache-ua tunnel %d", m_ua_reader->read_avail());
-
-  m_cache_read_vio = m_cache_read_vc->do_io_read(this, length, m_ua_write_buf);
-  m_ua_write_vio = m_ua_vc->do_io_write(this, length, m_ua_reader);
-}
-
-void
-SimpleCont::dns_lookup()
-{
-  URL url;
-  Action *action;
-
-  url = m_ua_req.url_get();
-  m_os_name = url.host_get();
-  m_os_port = url.port_get();
-
-  SET_HANDLER(&SimpleCont::dns_event);
-
-  action = hostDBProcessor.getbyname_re(this, (char *) m_os_name, 0, 
m_os_port);
-  if (action != ACTION_RESULT_DONE) {
-    m_pending_action = action;
-  }
-}
-
-void
-SimpleCont::os_connect(unsigned int addr)
-{
-  Action *action;
-
-  SET_HANDLER(&SimpleCont::os_connect_event);
-
-  action = netProcessor.connect_re(this, addr, m_os_port);
-  if (action != ACTION_RESULT_DONE) {
-    m_pending_action = action;
-  }
-}
-
-void
-SimpleCont::os_write_req()
-{
-  HTTPHdr req;
-  URL url;
-  IOBufferReader *reader;
-  IOBufferBlock *blk;
-  int bufindex;
-  int tmp, dumpoffset;
-  int done;
-
-  req.create();
-  req.copy(m_ua_req);
-
-  url = req.url_get();
-  url.scheme_set(NULL);
-  url.host_set(NULL);
-
-  m_os_write_buf = new_empty_MIOBuffer(buffer_size_idx);
-  reader = m_os_write_buf->alloc_reader();
-
-  dumpoffset = 0;
-  do {
-    blk = m_os_write_buf->get_current_block();
-    if (!blk) {
-      m_os_write_buf->add_block();
-    }
-    blk = m_os_write_buf->get_current_block();
-
-    bufindex = 0;
-    tmp = dumpoffset;
-
-    done = req.print(blk->end(), blk->write_avail(), &bufindex, &tmp);
-
-    dumpoffset += bufindex;
-    m_os_write_buf->fill(bufindex);
-  } while (!done);
-
-  req.destroy();
-
-  SET_HANDLER(&SimpleCont::os_write_event);
-
-  m_os_write_vio = m_os_vc->do_io_write(this, reader->read_avail(), reader);
-}
-
-void
-SimpleCont::os_read_resp()
-{
-  http_parser_init(&m_parser);
-
-  m_os_read_buf = new_MIOBuffer(buffer_size_idx);
-  m_os_reader = m_os_read_buf->alloc_reader();
-
-  SET_HANDLER(&SimpleCont::os_read_resp_event);
-
-  m_os_read_vio = m_os_vc->do_io_read(this, INT64_MAX, m_os_read_buf);
-}
-
-void
-SimpleCont::parse_os_resp(int eof)
-{
-  const char *start, *p;
-  const char *end;
-  int avail;
-  int err;
-
-  for (;;) {
-    avail = m_os_reader->block_read_avail();
-    if (!avail) {
-      if (eof) {
-        destroy();
-      }
-      return;
-    }
-    p = start = m_os_reader->start();
-    end = start + avail;
-
-    err = m_os_resp.parse_resp(&m_parser, &p, end, eof);
-
-    m_os_reader->consume(p - start);
-
-    if (err == PARSE_DONE) {
-      if (is_debug_tag_set("simple_http")) {
-        m_os_resp.print(NULL, 0, NULL, NULL);
-      }
-      m_os_read_vio->nbytes = m_os_read_vio->ndone;
-      ua_write_resp();
-      return;
-    }
-
-    if (err == PARSE_ERROR) {
-      destroy();
-      return;
-    }
-  }
-
-
-  m_os_read_vio->reenable();
-}
-
-void
-SimpleCont::ua_write_resp()
-{
-  IOBufferBlock *blk;
-  int bufindex;
-  int tmp, dumpoffset;
-  int done;
-
-  m_ua_write_buf = new_empty_MIOBuffer(buffer_size_idx);
-  m_ua_reader = m_ua_write_buf->alloc_reader();
-
-  dumpoffset = 0;
-  do {
-    blk = m_ua_write_buf->get_current_block();
-    if (!blk) {
-      m_ua_write_buf->add_block();
-    }
-    blk = m_ua_write_buf->get_current_block();
-
-    bufindex = 0;
-    tmp = dumpoffset;
-
-    done = m_os_resp.print(blk->end(), blk->write_avail(), &bufindex, &tmp);
-
-    dumpoffset += bufindex;
-    m_ua_write_buf->fill(bufindex);
-  } while (!done);
-
-  m_ua_write_buf->write(m_os_reader);
-  m_ua_resp_size = m_ua_reader->read_avail();
-
-  cache_write();
-}
-
-void
-SimpleCont::cache_write()
-{
-  Action *action;
-  MIMEField field;
-  int i, count;
-
-  field = m_os_resp.field_retrieve(MIME_FIELD_CACHE_CONTROL);
-  count = field.values_count();
-  for (i = 0; i < count; i++) {
-    if (field.value_get(i) == HTTP_VALUE_NO_CACHE) {
-      os_ua_tunnel();
-      return;
-    }
-  }
-
-  SET_HANDLER(&SimpleCont::cache_write_event);
-
-  action = cacheProcessor.open_write(this, 32 * 1024, &m_key, 
CACHE_FRAG_TYPE_HTTP);
-  if (action != ACTION_RESULT_DONE) {
-    m_pending_action = action;
-  }
-}
-
-void
-SimpleCont::os_ua_tunnel()
-{
-  SET_HANDLER(&SimpleCont::os_ua_tunnel_event);
-
-  m_os_read_vio = m_os_vc->do_io_read(this, INT64_MAX, m_ua_write_buf);
-  if (m_cache_write_vc) {
-    m_cache_write_vio = m_cache_write_vc->do_io_write(this, INT64_MAX, 
m_ua_reader->clone());
-  }
-  m_ua_write_vio = m_ua_vc->do_io_write(this, INT64_MAX, m_ua_reader);
-}
-
-void
-SimpleCont::ua_close()
-{
-  m_ua_vc->do_io_close();
-  m_ua_vc = NULL;
-  m_ua_write_vio = NULL;
-
-  if (!m_ua_vc && !m_cache_write_vc) {
-    destroy();
-  }
-}
-
-void
-SimpleCont::cache_close()
-{
-  m_cache_write_vc->do_io_close();
-  m_cache_write_vc = NULL;
-  m_cache_write_vio = NULL;
-
-  if (!m_ua_vc && !m_cache_write_vc) {
-    destroy();
-  }
-}
-
-void
-SimpleCont::cache_abort()
-{
-  m_cache_write_vc->do_io_close(1);
-  m_cache_write_vc = NULL;
-  m_cache_write_vio = NULL;
-
-  if (!m_ua_vc && !m_cache_write_vc) {
-    destroy();
-  }
-}
-
-int
-SimpleCont::ua_read_req_event(int event, void *edata)
-{
-  switch (event) {
-  case VC_EVENT_READ_READY:
-  case VC_EVENT_READ_COMPLETE:
-  case VC_EVENT_EOS:
-    HISTORY_MARK();
-    Debug("simple_http", "read event %d", event);
-    parse_ua_req((event == VC_EVENT_EOS) || (event == VC_EVENT_READ_COMPLETE));
-    break;
-  case VC_EVENT_ERROR:
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::cache_read_event(int event, void *edata)
-{
-  switch (event) {
-  case CACHE_EVENT_OPEN_READ:
-    HISTORY_MARK();
-    m_pending_action = NULL;
-    Debug("simple_http", "cache read success");
-    m_cache_read_vc = (VConnection *) edata;
-    cache_ua_tunnel();
-    break;
-  case CACHE_EVENT_OPEN_READ_FAILED:
-    HISTORY_MARK();
-    m_pending_action = NULL;
-    Debug("simple_http", "cache read failure");
-    dns_lookup();
-    break;
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::cache_ua_tunnel_event(int event, void *edata)
-{
-  switch (event) {
-  case VC_EVENT_READ_READY:
-    HISTORY_MARK();
-    Debug("simple_http", "cache read ready");
-    m_ua_write_vio->reenable();
-    break;
-  case VC_EVENT_READ_COMPLETE:
-  case VC_EVENT_EOS:
-    Debug("simple_http", "cache read complete");
-    m_ua_resp_size += m_cache_read_vio->ndone;
-    m_cache_read_vc->do_io_close();
-    m_cache_read_vc = NULL;
-    m_cache_read_vio = NULL;
-
-    m_ua_write_vio->nbytes = m_ua_resp_size;
-
-    if (m_ua_write_vio->ndone == m_ua_write_vio->nbytes) {
-      HISTORY_MARK();
-      Debug("simple_http", "ua write complete");
-      ua_close();
-    } else {
-      HISTORY_MARK();
-      m_ua_write_vio->reenable();
-    }
-    break;
-  case VC_EVENT_WRITE_READY:
-    HISTORY_MARK();
-    Debug("simple_http", "ua write ready");
-    if (m_cache_read_vc) {
-      m_cache_read_vio->reenable();
-    }
-    break;
-  case VC_EVENT_WRITE_COMPLETE:
-    HISTORY_MARK();
-    Debug("simple_http", "ua write complete");
-    ua_close();
-    break;
-  case VC_EVENT_ERROR:
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::dns_event(int event, void *edata)
-{
-  switch (event) {
-  case EVENT_HOST_DB_LOOKUP:
-    m_pending_action = NULL;
-    if (edata) {
-      HostDBInfo *r = (HostDBInfo *) edata;
-      HostDBInfo *rr = NULL;
-
-      Debug("simple_http", "dns lookup success");
-
-      if (r->round_robin) {
-        // TODO: IPv6
-        sockaddr_in ip4;
-        ats_ip4_set(&ip4, 0);
-
-        Debug("simple_http", "dns round robin");
-        rr = r->rr()->select_best(ats_ip_sa_cast(&ip4));
-      } else {
-        rr = r;
-      }
-
-      if (rr) {
-        HISTORY_MARK();
-        os_connect(rr->ip());
-      } else {
-        HISTORY_MARK();
-        Debug("simple_http", "dns error");
-        destroy();
-      }
-    } else {
-      HISTORY_MARK();
-      Debug("simple_http", "dns lookup failure");
-      destroy();
-    }
-    break;
-  case EVENT_HOST_DB_IP_REMOVED:
-    m_pending_action = NULL;
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::os_connect_event(int event, void *edata)
-{
-  switch (event) {
-  case NET_EVENT_OPEN:
-    HISTORY_MARK();
-    m_pending_action = NULL;
-    Debug("simple_http", "os connect success");
-    m_os_vc = (NetVConnection *) edata;
-    os_write_req();
-    break;
-  case NET_EVENT_OPEN_FAILED:
-    HISTORY_MARK();
-    m_pending_action = NULL;
-    Debug("simple_http", "os connect failure");
-    destroy();
-    break;
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::os_write_event(int event, void *edata)
-{
-  switch (event) {
-  case VC_EVENT_WRITE_READY:
-    HISTORY_MARK();
-    Debug("simple_http", "os write ready");
-    m_os_write_vio->reenable();
-    break;
-  case VC_EVENT_WRITE_COMPLETE:
-    HISTORY_MARK();
-    Debug("simple_http", "os write complete");
-    os_read_resp();
-    break;
-  case VC_EVENT_ERROR:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::os_read_resp_event(int event, void *edata)
-{
-  switch (event) {
-  case VC_EVENT_READ_READY:
-  case VC_EVENT_READ_COMPLETE:
-  case VC_EVENT_EOS:
-    HISTORY_MARK();
-    Debug("simple_http", "read event %d", event);
-    parse_os_resp((event == VC_EVENT_EOS) || (event == 
VC_EVENT_READ_COMPLETE));
-    break;
-  case VC_EVENT_ERROR:
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::cache_write_event(int event, void *edata)
-{
-  switch (event) {
-  case CACHE_EVENT_OPEN_WRITE:
-    HISTORY_MARK();
-    Debug("simple_http", "cache write success");
-    m_cache_write_vc = (VConnection *) edata;
-    os_ua_tunnel();
-    break;
-  case CACHE_EVENT_OPEN_WRITE_FAILED:
-    HISTORY_MARK();
-    Debug("simple_http", "cache write failure");
-    os_ua_tunnel();
-    break;
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-int
-SimpleCont::os_ua_tunnel_event(int event, void *edata)
-{
-  switch (event) {
-  case VC_EVENT_READ_READY:
-    HISTORY_MARK();
-    Debug("simple_http", "os read ready");
-    m_ua_write_vio->reenable();
-    if (m_cache_write_vio) {
-      m_cache_write_vio->reenable();
-    }
-    break;
-  case VC_EVENT_READ_COMPLETE:
-  case VC_EVENT_EOS:
-    HISTORY_MARK();
-    Debug("simple_http", "os read complete");
-    m_ua_resp_size += m_os_read_vio->ndone;
-    m_os_vc->do_io_close();
-    m_os_vc = NULL;
-    m_os_read_vio = NULL;
-
-    if (m_cache_write_vio) {
-      m_cache_write_vio->nbytes = m_ua_resp_size;
-      if (m_cache_write_vio->ndone == m_cache_write_vio->nbytes) {
-        Debug("simple_http", "cache write complete");
-        cache_close();
-      } else {
-        m_cache_write_vio->reenable();
-      }
-    }
-
-    m_ua_write_vio->nbytes = m_ua_resp_size;
-    if (m_ua_write_vio->ndone == m_ua_write_vio->nbytes) {
-      Debug("simple_http", "ua write complete");
-      ua_close();
-    } else {
-      m_ua_write_vio->reenable();
-    }
-    break;
-  case VC_EVENT_WRITE_READY:
-    if ((VIO *) edata == m_ua_write_vio) {
-      HISTORY_MARK();
-      Debug("simple_http", "ua write ready");
-    } else if ((VIO *) edata == m_cache_write_vio) {
-      HISTORY_MARK();
-      Debug("simple_http", "cache write ready");
-    }
-
-    if (m_os_vc) {
-      m_os_read_vio->reenable();
-    }
-    break;
-  case VC_EVENT_WRITE_COMPLETE:
-    if ((VIO *) edata == m_ua_write_vio) {
-      HISTORY_MARK();
-      Debug("simple_http", "ua write complete");
-      ua_close();
-    } else if ((VIO *) edata == m_cache_write_vio) {
-      HISTORY_MARK();
-      Debug("simple_http", "cache write complete");
-      cache_close();
-    }
-    break;
-  case VC_EVENT_ERROR:
-    if ((VIO *) edata == m_cache_write_vio) {
-      HISTORY_MARK();
-      Debug("simple_http", "cache error");
-      cache_abort();
-      break;
-    }
-  default:
-    HISTORY_MARK();
-    Debug("simple_http", "unexpected event %d", event);
-    destroy();
-    break;
-  }
-  return 0;
-}
-
-
-void
-run_SimpleHttp()
-{
-  if (is_action_tag_set("simple_http")) {
-
-    RecReadConfigInteger(port, "proxy.config.simple.http.port");
-    RecReadConfigInteger(buffer_size, "proxy.config.simple.http.buffer_size");
-    buffer_size_idx = buffer_size_to_index(buffer_size);
-
-    Note("simple http running on port %d", port);
-    netProcessor.main_accept(NEW(new AcceptCont()), NO_FD, port);
-  }
-
-  return;
-}
-
-#else
-
-void
-run_SimpleHttp()
-{
-  if (is_action_tag_set("simple_http")) {
-    Error("simple http not implemented for new headers");
-  }
-  return;
-}
-
-#endif

Reply via email to