You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2010/11/30 02:43:06 UTC
svn commit: r1040383 [8/38] - in /trafficserver/traffic/branches/wccp: ./
build/ contrib/ contrib/perl/AdminClient/lib/Apache/TS/ example/
example/add-header/ example/app-template/ example/append-transform/
example/basic-auth/ example/blacklist-0/ exam...
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixNet.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixNet.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixNet.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixNet.cc Tue Nov 30 01:42:55 2010
@@ -55,9 +55,10 @@ struct InactivityCop:public Continuation
vc_next = (UnixNetVConnection*)vc->link.next;
if (vc->inactivity_timeout_in && vc->next_inactivity_timeout_at && vc->next_inactivity_timeout_at < now){
vc->handleEvent(EVENT_IMMEDIATE, e);
- } else
+ } else {
if (vc->closed)
close_UnixNetVConnection(vc, e->ethread);
+ }
vc = vc_next;
}
return 0;
@@ -102,8 +103,8 @@ PollCont::pollEvent(int event, Event *e)
(!net_handler->read_ready_list.empty() || !net_handler->read_ready_list.empty() ||
!net_handler->read_enable_list.empty() || !net_handler->write_enable_list.empty())) {
NetDebug("iocore_net_poll", "rrq: %d, wrq: %d, rel: %d, wel: %d", net_handler->read_ready_list.empty(),
- net_handler->write_ready_list.empty(), net_handler->read_enable_list.empty(),
- net_handler->write_enable_list.empty());
+ net_handler->write_ready_list.empty(), net_handler->read_enable_list.empty(),
+ net_handler->write_enable_list.empty());
poll_timeout = 0; //poll immediately returns -- we have triggered stuff to process right now
} else {
poll_timeout = net_config_poll_timeout;
@@ -121,7 +122,7 @@ PollCont::pollEvent(int event, Event *e)
pollDescriptor->result = epoll_wait(pollDescriptor->epoll_fd,
pollDescriptor->ePoll_Triggered_Events, POLL_DESCRIPTOR_SIZE, poll_timeout);
NetDebug("iocore_net_poll", "[PollCont::pollEvent] epoll_fd: %d, timeout: %d, results: %d", pollDescriptor->epoll_fd, poll_timeout,
- pollDescriptor->result);
+ pollDescriptor->result);
#elif TS_USE_KQUEUE
struct timespec tv;
tv.tv_sec = poll_timeout / 1000;
@@ -131,7 +132,7 @@ PollCont::pollEvent(int event, Event *e)
POLL_DESCRIPTOR_SIZE,
&tv);
NetDebug("iocore_net_poll", "[PollCont::pollEvent] kueue_fd: %d, timeout: %d, results: %d", pollDescriptor->kqueue_fd, poll_timeout,
- pollDescriptor->result);
+ pollDescriptor->result);
#elif TS_USE_PORT
int retval;
timespec_t ptimeout;
@@ -139,15 +140,15 @@ PollCont::pollEvent(int event, Event *e)
ptimeout.tv_nsec = 1000000 * (poll_timeout % 1000);
unsigned nget = 1;
if((retval = port_getn(pollDescriptor->port_fd,
- pollDescriptor->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
+ pollDescriptor->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
pollDescriptor->result = 0;
switch(errno) {
case EINTR:
case EAGAIN:
case ETIME:
if (nget > 0) {
- pollDescriptor->result = (int)nget;
+ pollDescriptor->result = (int)nget;
}
break;
default:
@@ -158,9 +159,9 @@ PollCont::pollEvent(int event, Event *e)
pollDescriptor->result = (int)nget;
}
NetDebug("iocore_net_poll", "[PollCont::pollEvent] %d[%s]=port_getn(%d,%p,%d,%d,%d),results(%d)",
- retval,retval < 0 ? strerror(errno) : "ok",
- pollDescriptor->port_fd, pollDescriptor->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pollDescriptor->result);
+ retval,retval < 0 ? strerror(errno) : "ok",
+ pollDescriptor->port_fd, pollDescriptor->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pollDescriptor->result);
#else
#error port me
#endif
@@ -299,8 +300,7 @@ NetHandler::mainNetEvent(int event, Even
NET_INCREMENT_DYN_STAT(net_handler_run_stat);
process_enabled_list(this, e->ethread);
- if (likely(!read_ready_list.empty() || !write_ready_list.empty() ||
- !read_enable_list.empty() || !write_enable_list.empty()))
+ if (likely(!read_ready_list.empty() || !write_ready_list.empty() || !read_enable_list.empty() || !write_enable_list.empty()))
poll_timeout = 0; // poll immediately returns -- we have triggered stuff to process right now
else
poll_timeout = net_config_poll_timeout;
@@ -321,9 +321,7 @@ NetHandler::mainNetEvent(int event, Even
struct timespec tv;
tv.tv_sec = poll_timeout / 1000;
tv.tv_nsec = 1000000 * (poll_timeout % 1000);
- pd->result = kevent(pd->kqueue_fd, NULL, 0,
- pd->kq_Triggered_Events, POLL_DESCRIPTOR_SIZE,
- &tv);
+ pd->result = kevent(pd->kqueue_fd, NULL, 0, pd->kq_Triggered_Events, POLL_DESCRIPTOR_SIZE, &tv);
NetDebug("iocore_net_main_poll", "[NetHandler::mainNetEvent] kevent(%d,%f), result=%d", pd->kqueue_fd,poll_timeout,pd->result);
#elif TS_USE_PORT
int retval;
@@ -331,15 +329,14 @@ NetHandler::mainNetEvent(int event, Even
ptimeout.tv_sec = poll_timeout / 1000;
ptimeout.tv_nsec = 1000000 * (poll_timeout % 1000);
unsigned nget = 1;
- if((retval = port_getn(pd->port_fd, pd->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
+ if((retval = port_getn(pd->port_fd, pd->Port_Triggered_Events, POLL_DESCRIPTOR_SIZE, &nget, &ptimeout)) < 0) {
pd->result = 0;
switch(errno) {
case EINTR:
case EAGAIN:
case ETIME:
if (nget > 0) {
- pd->result = (int)nget;
+ pd->result = (int)nget;
}
break;
default:
@@ -350,9 +347,10 @@ NetHandler::mainNetEvent(int event, Even
pd->result = (int)nget;
}
NetDebug("iocore_net_main_poll", "[NetHandler::mainNetEvent] %d[%s]=port_getn(%d,%p,%d,%d,%d),results(%d)",
- retval,retval < 0 ? strerror(errno) : "ok",
- pd->port_fd, pd->Port_Triggered_Events,
- POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pd->result);
+ retval,retval < 0 ? strerror(errno) : "ok",
+ pd->port_fd, pd->Port_Triggered_Events,
+ POLL_DESCRIPTOR_SIZE, nget, poll_timeout, pd->result);
+
#else
#error port me
#endif
@@ -369,7 +367,7 @@ NetHandler::mainNetEvent(int event, Even
read_ready_list.enqueue(vc);
else if (get_ev_events(pd,x) & EVENTIO_ERROR) {
// check for unhandled epoll events that should be handled
- NetDebug("iocore_net_main", "Unhandled epoll event on read: 0x%04x read.enabled=%d closed=%d read.netready_queue=%d",
+ Debug("iocore_net_main", "Unhandled epoll event on read: 0x%04x read.enabled=%d closed=%d read.netready_queue=%d",
get_ev_events(pd,x), vc->read.enabled, vc->closed, read_ready_list.in(vc));
}
}
@@ -381,22 +379,21 @@ NetHandler::mainNetEvent(int event, Even
write_ready_list.enqueue(vc);
else if (get_ev_events(pd,x) & EVENTIO_ERROR) {
// check for unhandled epoll events that should be handled
- NetDebug("iocore_net_main",
+ Debug("iocore_net_main",
"Unhandled epoll event on write: 0x%04x write.enabled=%d closed=%d write.netready_queue=%d",
get_ev_events(pd,x), vc->write.enabled, vc->closed, write_ready_list.in(vc));
}
} else if (!get_ev_events(pd,x) & EVENTIO_ERROR) {
- NetDebug("iocore_net_main", "Unhandled epoll event: 0x%04x", get_ev_events(pd,x));
+ Debug("iocore_net_main", "Unhandled epoll event: 0x%04x", get_ev_events(pd,x));
}
} else if (epd->type == EVENTIO_DNS_CONNECTION) {
if (epd->data.dnscon != NULL) {
- dnsqueue.enqueue(epd->data.dnscon);
+ epd->data.dnscon->trigger(); // Make sure the DNSHandler for this con knows we triggered
#if defined(USE_EDGE_TRIGGER)
epd->refresh(EVENTIO_READ);
#endif
}
- }
- else if (epd->type == EVENTIO_ASYNC_SIGNAL)
+ } else if (epd->type == EVENTIO_ASYNC_SIGNAL)
net_signal_hook_callback(trigger_event->ethread);
ev_next_event(pd,x);
}
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixNetAccept.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixNetAccept.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixNetAccept.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixNetAccept.cc Tue Nov 30 01:42:55 2010
@@ -96,8 +96,7 @@ net_accept(NetAccept * na, void *ep, boo
vc = (UnixNetVConnection *) na->alloc_cache;
if (!vc) {
vc = na->allocateThread(e->ethread);
- ProxyMutex *mutex = e->ethread->mutex;
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
na->alloc_cache = vc;
#if TS_USE_DETAILED_LOG
@@ -122,9 +121,9 @@ net_accept(NetAccept * na, void *ep, boo
na->alloc_cache = NULL;
vc->submit_time = ink_get_hrtime();
- vc->ip = vc->con.sa.sin_addr.s_addr;
- vc->port = ntohs(vc->con.sa.sin_port);
- vc->accept_port = ntohs(na->server.sa.sin_port);
+ vc->ip = ((struct sockaddr_in *)(&(vc->con.sa)))->sin_addr.s_addr;
+ vc->port = ntohs(((struct sockaddr_in *)(&(vc->con.sa)))->sin_port);
+ vc->accept_port = ntohs(((struct sockaddr_in *)(&(na->server.sa)))->sin_port);
vc->mutex = new_ProxyMutex();
vc->action_ = *na->action_;
vc->set_is_transparent(na->server.f_inbound_transparent);
@@ -167,21 +166,25 @@ net_accept_main_blocking(NetAccept * na,
}
-// Functions all THREAD_FREE and THREAD_ALLOC to be performed
-// for both SSL and regular UnixNetVConnection transparent to
-// accept functions.
UnixNetVConnection *
NetAccept::allocateThread(EThread * t)
{
- return ((UnixNetVConnection *) THREAD_ALLOC(netVCAllocator, t));
+ return ((UnixNetVConnection *)THREAD_ALLOC(netVCAllocator, t));
}
void
NetAccept::freeThread(UnixNetVConnection * vc, EThread * t)
{
+ ink_assert(!vc->from_accept_thread);
THREAD_FREE(vc, netVCAllocator, t);
}
+// This allocates directly on the class allocator, used for accept threads.
+UnixNetVConnection *
+NetAccept::allocateGlobal()
+{
+ return (UnixNetVConnection *)netVCAllocator.alloc();
+}
// Virtual function allows the correct
// etype to be used in NetAccept functions (ET_SSL
@@ -203,8 +206,6 @@ NetAccept::init_accept_loop()
action_->continuation->mutex = new_ProxyMutex();
action_->mutex = action_->continuation->mutex;
}
- do_listen(BLOCKING);
- unix_netProcessor.accepts_on_thread.push(this);
SET_CONTINUATION_HANDLER(this, &NetAccept::acceptLoopEvent);
eventProcessor.spawn_thread(this);
}
@@ -247,7 +248,8 @@ NetAccept::init_accept_per_thread()
else
SET_HANDLER((NetAcceptHandler) & NetAccept::acceptEvent);
period = ACCEPT_PERIOD;
- NetAccept *a = this;
+
+ NetAccept *a;
n = eventProcessor.n_threads_for_type[ET_NET];
for (i = 0; i < n; i++) {
if (i < n - 1) {
@@ -277,7 +279,7 @@ NetAccept::do_listen(bool non_blocking)
}
} else {
Lretry:
- if ((res = server.listen(port, non_blocking, recv_bufsize, send_bufsize)))
+ if ((res = server.listen(port, domain, non_blocking, recv_bufsize, send_bufsize)))
Warning("unable to listen on port %d: %d %d, %s", port, res, errno, strerror(errno));
}
if (callback_on_open && !action_->cancelled) {
@@ -302,8 +304,10 @@ NetAccept::do_blocking_accept(NetAccept
//added by YTS Team, yamsat
do {
vc = (UnixNetVConnection *) master_na->alloc_cache;
- if (!vc) {
- vc = allocateThread(t);
+ if (likely(!vc)) {
+ //vc = allocateThread(t);
+ vc = allocateGlobal(); // Bypass proxy / thread allocator
+ vc->from_accept_thread = true;
vc->id = net_next_connection_number();
master_na->alloc_cache = vc;
#if TS_USE_DETAILED_LOG
@@ -342,11 +346,11 @@ NetAccept::do_blocking_accept(NetAccept
check_emergency_throttle(vc->con);
master_na->alloc_cache = NULL;
- RecIncrGlobalRawStatSum(net_rsb, net_connections_currently_open_stat, 1);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->submit_time = now;
- vc->ip = vc->con.sa.sin_addr.s_addr;
- vc->port = ntohs(vc->con.sa.sin_port);
- vc->accept_port = ntohs(server.sa.sin_port);
+ vc->ip = ((struct sockaddr_in *)(&(vc->con.sa)))->sin_addr.s_addr;
+ vc->port = ntohs(((struct sockaddr_in *)(&(vc->con.sa)))->sin_port);
+ vc->accept_port = ntohs(((struct sockaddr_in *)(&(server.sa)))->sin_port);
vc->set_is_transparent(master_na->server.f_inbound_transparent);
vc->set_is_other_side_transparent(master_na->server.f_outbound_transparent);
Debug("http_tproxy", "Marking accepted %sconnect on %x as%s outbound transparent.\n",
@@ -392,8 +396,8 @@ NetAccept::acceptEvent(int event, void *
if ((res = accept_fn(this, e, false)) < 0) {
NET_DECREMENT_DYN_STAT(net_accepts_currently_open_stat);
/* INKqa11179 */
- Warning("Accept on port %d failed with error no %d", ntohs(server.sa.sin_port), res);
- Warning("Traffic Server may be unable to accept more network" "connections on %d", ntohs(server.sa.sin_port));
+ Warning("Accept on port %d failed with error no %d", ntohs(((struct sockaddr_in *)(&(server.sa)))->sin_port), res);
+ Warning("Traffic Server may be unable to accept more network" "connections on %d", ntohs(((struct sockaddr_in *)(&(server.sa)))->sin_port));
e->cancel();
delete this;
return EVENT_DONE;
@@ -433,7 +437,7 @@ NetAccept::acceptFastEvent(int event, vo
if (likely(fd >= 0)) {
vc->addLogMessage("accepting the connection");
- NetDebug("iocore_net", "accepted a new socket: %d", fd);
+ Debug("iocore_net", "accepted a new socket: %d", fd);
if (send_bufsize > 0) {
if (unlikely(socketManager.set_sndbuf_size(fd, send_bufsize))) {
bufsz = ROUNDUP(send_bufsize, 1024);
@@ -456,11 +460,11 @@ NetAccept::acceptFastEvent(int event, vo
}
if (sockopt_flags & 1) { // we have to disable Nagle
safe_setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, ON, sizeof(int));
- NetDebug("socket", "::acceptFastEvent: setsockopt() TCP_NODELAY on socket");
+ Debug("socket", "::acceptFastEvent: setsockopt() TCP_NODELAY on socket");
}
if (sockopt_flags & 2) {
safe_setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, ON, sizeof(int));
- NetDebug("socket", "::acceptFastEvent: setsockopt() SO_KEEPALIVE on socket");
+ Debug("socket", "::acceptFastEvent: setsockopt() SO_KEEPALIVE on socket");
}
do {
res = safe_nonblocking(fd);
@@ -490,13 +494,13 @@ NetAccept::acceptFastEvent(int event, vo
}
vc->con.fd = fd;
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
vc->submit_time = ink_get_hrtime();
- vc->ip = vc->con.sa.sin_addr.s_addr;
- vc->port = ntohs(vc->con.sa.sin_port);
- vc->accept_port = ntohs(server.sa.sin_port);
+ vc->ip = ((struct sockaddr_in *)(&(vc->con.sa)))->sin_addr.s_addr;
+ vc->port = ntohs(((struct sockaddr_in *)(&(vc->con.sa)))->sin_port);
+ vc->accept_port = ntohs(((struct sockaddr_in *)(&(server.sa)))->sin_port);
vc->set_is_transparent(server.f_inbound_transparent);
vc->set_is_other_side_transparent(server.f_outbound_transparent);
Debug("http_tproxy", "Marking fast accepted %sconnection on as%s outbound transparent.\n",
@@ -520,7 +524,7 @@ NetAccept::acceptFastEvent(int event, vo
#ifdef USE_EDGE_TRIGGER
// Set the vc as triggered and place it in the read ready queue in case there is already data on the socket.
- NetDebug("iocore_net", "acceptEvent : Setting triggered and adding to the read ready queue");
+ Debug("iocore_net", "acceptEvent : Setting triggered and adding to the read ready queue");
vc->read.triggered = 1;
vc->nh->read_ready_list.enqueue(vc);
#endif
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixNetPages.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixNetPages.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixNetPages.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixNetPages.cc Tue Nov 30 01:42:55 2010
@@ -39,13 +39,13 @@ struct ShowNet: public ShowCont
int showMain(int event, Event * e)
{
CHECK_SHOW(begin("Net"));
- CHECK_SHOW(show("<H3>Show <A HREF=\"/connections\">Connections</A></H3>\n"
- "<H3>Show <A HREF=\"/threads\">Net Threads</A></H3>\n"
- "<form method = GET action = \"/ips\">\n"
+ CHECK_SHOW(show("<H3>Show <A HREF=\"./connections\">Connections</A></H3>\n"
+ "<H3>Show <A HREF=\"./threads\">Net Threads</A></H3>\n"
+ "<form method = GET action = \"./ips\">\n"
"Show Connections to/from IP (e.g. 127.0.0.1):<br>\n"
"<input type=text name=ip size=64 maxlength=256>\n"
"</form>\n"
- "<form method = GET action = \"/ports\">\n"
+ "<form method = GET action = \"./ports\">\n"
"Show Connections to/from Port (e.g. 80):<br>\n"
"<input type=text name=name size=64 maxlength=256>\n" "</form>\n"));
return complete(event, e);
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixNetProcessor.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixNetProcessor.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixNetProcessor.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixNetProcessor.cc Tue Nov 30 01:42:55 2010
@@ -28,15 +28,13 @@
#include "StatPages.h"
#endif
-// Globals
-int use_accept_thread = 0;
-
NetProcessor::AcceptOptions const NetProcessor::DEFAULT_ACCEPT_OPTIONS;
NetProcessor::AcceptOptions&
NetProcessor::AcceptOptions::reset()
{
port = 0;
+ accept_threads = 0;
domain = AF_INET;
etype = ET_NET;
f_callback_on_open = false;
@@ -64,8 +62,10 @@ net_next_connection_number()
Action *
NetProcessor::accept(Continuation * cont,
int port,
+ int domain,
bool frequent_accept,
unsigned int accept_ip,
+ char *accept_ip_str,
bool callback_on_open,
SOCKET listen_socket_in,
int accept_pool_size,
@@ -79,13 +79,14 @@ NetProcessor::accept(Continuation * cont
(void) accept_only; // NT only
(void) bound_sockaddr; // NT only
(void) bound_sockaddr_size; // NT only
- NetDebug("iocore_net_processor",
- "NetProcessor::accept - port %d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0lX",
- port, recv_bufsize, send_bufsize, sockopt_flags
- );
+ Debug("iocore_net_processor",
+ "NetProcessor::accept - port %d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0lX",
+ port, recv_bufsize, send_bufsize, sockopt_flags
+ );
AcceptOptions opt;
opt.port = port;
+ opt.domain = domain;
opt.etype = etype;
opt.f_callback_on_open = callback_on_open;
opt.recv_bufsize = recv_bufsize;
@@ -97,19 +98,20 @@ NetProcessor::accept(Continuation * cont
frequent_accept,
net_accept,
accept_ip,
- opt
- );
+ accept_ip_str,
+ opt
+ );
}
Action *
NetProcessor::main_accept(Continuation * cont, SOCKET fd,
sockaddr * bound_sockaddr, int *bound_sockaddr_size,
bool accept_only,
- AcceptOptions const& opt
- )
+ AcceptOptions const& opt
+ )
{
(void) accept_only; // NT only
- NetDebug("iocore_net_processor", "NetProcessor::main_accept - port %d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0lX",
+ Debug("iocore_net_processor", "NetProcessor::main_accept - port %d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0lX",
opt.port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
return ((UnixNetProcessor *) this)->accept_internal(cont, fd,
bound_sockaddr,
@@ -117,8 +119,9 @@ NetProcessor::main_accept(Continuation *
true,
net_accept,
((UnixNetProcessor *) this)->incoming_ip_to_bind_saddr,
- opt
- );
+ ((UnixNetProcessor *) this)->incoming_ip_to_bind,
+ opt
+ );
}
@@ -131,20 +134,25 @@ UnixNetProcessor::accept_internal(Contin
bool frequent_accept,
AcceptFunction fn,
unsigned int accept_ip,
- AcceptOptions const& opt
- )
+ char *accept_ip_str,
+ AcceptOptions const& opt
+ )
{
EventType et = opt.etype; // setEtype requires non-const ref.
- setEtype(et);
NetAccept *na = createNetAccept();
-
EThread *thread = this_ethread();
ProxyMutex *mutex = thread->mutex;
+
+ // Potentially upgrade to SSL.
+ upgradeEtype(et);
+
NET_INCREMENT_DYN_STAT(net_accepts_currently_open_stat);
na->port = opt.port;
+ na->domain = opt.domain;
na->accept_fn = fn;
na->server.fd = fd;
na->server.accept_ip = accept_ip;
+ na->server.accept_ip_str = accept_ip_str;
na->server.f_outbound_transparent = opt.f_outbound_transparent;
na->server.f_inbound_transparent = opt.f_inbound_transparent;
if (opt.f_outbound_transparent) Debug("http_tproxy", "Marking accept server %x on port %d as outbound transparent.\n", na, opt.port);
@@ -159,10 +167,23 @@ UnixNetProcessor::accept_internal(Contin
if (na->callback_on_open)
na->mutex = cont->mutex;
if (frequent_accept) { // true
- if (use_accept_thread) // 0
- na->init_accept_loop();
- else
+ if (opt.accept_threads > 0) {
+ if (0 == na->do_listen(BLOCKING)) {
+ NetAccept *a;
+
+ for (int i=1; i < opt.accept_threads; ++i) {
+ a = NEW(new NetAccept);
+ *a = *na;
+ a->init_accept_loop();
+ Debug("iocore_net_accept", "Created accept thread #%d for port %d", i, opt.port);
+ }
+ // Start the "template" accept thread last.
+ Debug("iocore_net_accept", "Created accept thread #%d for port %d", opt.accept_threads, opt.port);
+ na->init_accept_loop();
+ }
+ } else {
na->init_accept_per_thread();
+ }
} else
na->init_accept();
if (bound_sockaddr && bound_sockaddr_size)
@@ -184,18 +205,17 @@ Action *
UnixNetProcessor::connect_re_internal(Continuation * cont,
unsigned int ip, int port, NetVCOptions * opt)
{
-
ProxyMutex *mutex = cont->mutex;
EThread *t = mutex->thread_holding;
UnixNetVConnection *vc = allocateThread(t);
+
if (opt)
vc->options = *opt;
else
opt = &vc->options;
- // virtual function used to set etype to ET_SSL
- // for SSLNetProcessor. Does nothing if not overwritten.
- setEtype(opt->etype);
+ // virtual function used to upgrade etype to ET_SSL for SSLNetProcessor.
+ upgradeEtype(opt->etype);
#ifndef INK_NO_SOCKS
bool using_socks = (socks_conf_stuff->socks_needed && opt->socks_support != NO_SOCKS
@@ -210,7 +230,7 @@ UnixNetProcessor::connect_re_internal(Co
);
SocksEntry *socksEntry = NULL;
#endif
- NET_INCREMENT_DYN_STAT(net_connections_currently_open_stat);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->id = net_next_connection_number();
vc->submit_time = ink_get_hrtime();
vc->setSSLClientConnection(true);
@@ -220,7 +240,7 @@ UnixNetProcessor::connect_re_internal(Co
Action *result = &vc->action_;
#ifndef INK_NO_SOCKS
if (using_socks) {
- NetDebug("Socks", "Using Socks ip: %u.%u.%u.%u:%d\n", PRINT_IP(ip), port);
+ Debug("Socks", "Using Socks ip: %u.%u.%u.%u:%d\n", PRINT_IP(ip), port);
socksEntry = socksAllocator.alloc();
socksEntry->init(cont->mutex, vc, opt->socks_support, opt->socks_version); /*XXXX remove last two args */
socksEntry->action_ = cont;
@@ -235,7 +255,7 @@ UnixNetProcessor::connect_re_internal(Co
result = &socksEntry->action_;
vc->action_ = socksEntry;
} else {
- NetDebug("Socks", "Not Using Socks %d \n", socks_conf_stuff->socks_needed);
+ Debug("Socks", "Not Using Socks %d \n", socks_conf_stuff->socks_needed);
vc->action_ = cont;
}
#else
@@ -292,7 +312,7 @@ struct CheckConnect:public Continuation
switch (event) {
case NET_EVENT_OPEN:
vc = (UnixNetVConnection *) e;
- NetDebug("iocore_net_connect", "connect Net open");
+ Debug("iocore_net_connect", "connect Net open");
vc->do_io_write(this, 10, /* some non-zero number just to get the poll going */
reader);
/* dont wait for more than timeout secs */
@@ -301,7 +321,7 @@ struct CheckConnect:public Continuation
break;
case NET_EVENT_OPEN_FAILED:
- NetDebug("iocore_net_connect", "connect Net open failed");
+ Debug("iocore_net_connect", "connect Net open failed");
if (!action_.cancelled)
action_.continuation->handleEvent(NET_EVENT_OPEN_FAILED, (void *) e);
break;
@@ -314,7 +334,7 @@ struct CheckConnect:public Continuation
ret = getsockopt(vc->con.fd, SOL_SOCKET, SO_ERROR, (char *) &sl, &sz);
if (!ret && sl == 0)
{
- NetDebug("iocore_net_connect", "connection established");
+ Debug("iocore_net_connect", "connection established");
/* disable write on vc */
vc->write.enabled = 0;
vc->cancel_inactivity_timeout();
@@ -335,7 +355,7 @@ struct CheckConnect:public Continuation
action_.continuation->handleEvent(NET_EVENT_OPEN_FAILED, (void *) -ENET_CONNECT_FAILED);
break;
case VC_EVENT_INACTIVITY_TIMEOUT:
- NetDebug("iocore_net_connect", "connect timed out");
+ Debug("iocore_net_connect", "connect timed out");
vc->do_io_close();
if (!action_.cancelled)
action_.continuation->handleEvent(NET_EVENT_OPEN_FAILED, (void *) -ENET_CONNECT_TIMEOUT);
@@ -384,7 +404,7 @@ Action *
NetProcessor::connect_s(Continuation * cont, unsigned int ip,
int port, int timeout, NetVCOptions * opt)
{
- NetDebug("iocore_net_connect", "NetProcessor::connect_s called");
+ Debug("iocore_net_connect", "NetProcessor::connect_s called");
CheckConnect *c = NEW(new CheckConnect(cont->mutex));
return c->connect_s(cont, ip, port, timeout, opt);
}
@@ -397,13 +417,14 @@ int
UnixNetProcessor::start(int)
{
EventType etype = ET_NET;
+
netHandler_offset = eventProcessor.allocate(sizeof(NetHandler));
pollCont_offset = eventProcessor.allocate(sizeof(PollCont));
- // customize the threads for net
- setEtype(etype);
// etype is ET_NET for netProcessor
// and ET_SSL for sslNetProcessor
+ upgradeEtype(etype);
+
n_netthreads = eventProcessor.n_threads_for_type[etype];
netthreads = eventProcessor.eventthread[etype];
for (int i = 0; i < n_netthreads; i++) {
@@ -447,7 +468,8 @@ UnixNetProcessor::start(int)
*/
#ifdef NON_MODULAR
extern Action *register_ShowNet(Continuation * c, HTTPHdr * h);
- statPagesManager.register_http("net", register_ShowNet);
+ if (etype == ET_NET)
+ statPagesManager.register_http("net", register_ShowNet);
#endif
return 1;
}
@@ -466,10 +488,10 @@ UnixNetProcessor::allocateThread(EThread
void
UnixNetProcessor::freeThread(UnixNetVConnection * vc, EThread * t)
{
+ ink_assert(!vc->from_accept_thread);
THREAD_FREE(vc, netVCAllocator, t);
}
-
// Virtual function allows creation of an
// SSLNetAccept or NetAccept transparent to NetProcessor.
NetAccept *
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixNetVConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixNetVConnection.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixNetVConnection.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixNetVConnection.cc Tue Nov 30 01:42:55 2010
@@ -318,7 +318,7 @@ read_from_net(NetHandler *nh, UnixNetVCo
buf.writer()->fill(r);
#ifdef DEBUG
if (buf.writer()->write_avail() <= 0)
- NetDebug("iocore_net", "read_from_net, read buffer full");
+ Debug("iocore_net", "read_from_net, read buffer full");
#endif
s->vio.ndone += r;
net_activity(vc, thread);
@@ -331,7 +331,7 @@ read_from_net(NetHandler *nh, UnixNetVCo
ink_assert(ntodo >= 0);
if (s->vio.ntodo() <= 0) {
read_signal_done(VC_EVENT_READ_COMPLETE, nh, vc);
- NetDebug("iocore_net", "read_from_net, read finished - signal done");
+ Debug("iocore_net", "read_from_net, read finished - signal done");
return;
} else {
if (read_signal_and_update(VC_EVENT_READ_READY, vc) != EVENT_CONT)
@@ -784,15 +784,16 @@ UnixNetVConnection::reenable_re(VIO *vio
}
-UnixNetVConnection::UnixNetVConnection():
-closed(0), inactivity_timeout_in(0), active_timeout_in(0),
+UnixNetVConnection::UnixNetVConnection()
+ : closed(0), inactivity_timeout_in(0), active_timeout_in(0),
#ifdef INACTIVITY_TIMEOUT
- inactivity_timeout(NULL),
+ inactivity_timeout(NULL),
#else
- next_inactivity_timeout_at(0),
+ next_inactivity_timeout_at(0),
#endif
- active_timeout(NULL), nh(NULL),
- id(0), ip(0), accept_port(0), port(0), flags(0), recursion(0), submit_time(0), oob_ptr(0)
+ active_timeout(NULL), nh(NULL),
+ id(0), ip(0), accept_port(0), port(0), flags(0), recursion(0), submit_time(0), oob_ptr(0),
+ from_accept_thread(false)
{
memset(&local_sa, 0, sizeof local_sa);
SET_HANDLER((NetVConnHandler) & UnixNetVConnection::startEvent);
@@ -961,7 +962,7 @@ UnixNetVConnection::acceptEvent(int even
nh = get_NetHandler(thread);
PollDescriptor *pd = get_PollDescriptor(thread);
if (ep.start(pd, this, EVENTIO_READ|EVENTIO_WRITE) < 0) {
- NetDebug("iocore_net", "acceptEvent : failed EventIO::start\n");
+ Debug("iocore_net", "acceptEvent : failed EventIO::start\n");
close_UnixNetVConnection(this, e->ethread);
return EVENT_DONE;
}
@@ -1074,7 +1075,7 @@ UnixNetVConnection::connectUp(EThread *t
// Initialize this UnixNetVConnection
//
int res = 0;
- NetDebug("iocore_net", "connectUp:: local_addr=%u.%u.%u.%u [%s]\n",
+ Debug("iocore_net", "connectUp:: local_addr=%u.%u.%u.%u [%s]\n",
PRINT_IP(options.local_addr),
NetVCOptions::toString(options.addr_binding)
);
@@ -1087,7 +1088,7 @@ UnixNetVConnection::connectUp(EThread *t
// when edge triggering is used.
if (ep.start(get_PollDescriptor(t), this, EVENTIO_READ|EVENTIO_WRITE) < 0) {
lerrno = errno;
- NetDebug("iocore_net", "connectUp : Failed to add to epoll list\n");
+ Debug("iocore_net", "connectUp : Failed to add to epoll list\n");
action_.continuation->handleEvent(NET_EVENT_OPEN_FAILED, (void *) res);
free(t);
return CONNECT_FAILURE;
@@ -1123,7 +1124,7 @@ UnixNetVConnection::connectUp(EThread *t
void
UnixNetVConnection::free(EThread *t)
{
- NET_DECREMENT_THREAD_DYN_STAT(net_connections_currently_open_stat, t);
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
// clear variables for reuse
got_remote_addr = 0;
got_local_addr = 0;
@@ -1147,5 +1148,10 @@ UnixNetVConnection::free(EThread *t)
ink_debug_assert(!active_timeout);
ink_debug_assert(con.fd == NO_FD);
ink_debug_assert(t == this_ethread());
- THREAD_FREE(this, netVCAllocator, t);
+
+ if (from_accept_thread) {
+ netVCAllocator.free(this);
+ } else {
+ THREAD_FREE(this, netVCAllocator, t);
+ }
}
Modified: trafficserver/traffic/branches/wccp/iocore/net/UnixUDPNet.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/iocore/net/UnixUDPNet.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/iocore/net/UnixUDPNet.cc (original)
+++ trafficserver/traffic/branches/wccp/iocore/net/UnixUDPNet.cc Tue Nov 30 01:42:55 2010
@@ -1078,7 +1078,6 @@ UDPQueue::SendUDPPacket(UDPPacketInterna
int n, count, iov_len = 0;
if (!p->isReliabilityPkt) {
- p->conn->SetLastSentPktTSSeqNum(p->pktTSSeqNum);
p->conn->lastSentPktStartTime = p->delivery_time;
}
Propchange: trafficserver/traffic/branches/wccp/libinktomi++/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Nov 30 01:42:55 2010
@@ -6,5 +6,9 @@ ParseRulesCTypeToUpper
ParseRulesCType
CompileParseRules
libinktomi++.a
+ink_config.h
+ink_autoconf.h.in
+ink_autoconf.h
+stamp-h1
.deps
.libs
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Allocator.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Allocator.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Allocator.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Allocator.cc Tue Nov 30 01:42:55 2010
@@ -41,58 +41,3 @@ Allocator::Allocator(const char *name, u
ink_freelist_init(&fl, name, element_size, chunk_size, 0, alignment);
#endif
}
-
-#ifdef USE_PARTITION_MEMORY /* VxWorks */
-
-PART_ID uts_part_id = NULL;
-
-void
-partfree(void *ptr)
-{
- memPartFree(uts_part_id, (char *) ptr);
-}
-
-void *
-partmalloc(unsigned int size)
-{
- char *mem;
- if (NULL == uts_part_id) {
- if (NULL == (uts_part_id = memPartCreate("uTSmem", 10000000))) {
- fprintf(stderr, "[TS]: main: Unable to allocate Memory pool(%d bytes)\n", 10000000);
- return NULL;
- }
- memPartOptionsSet(uts_part_id, MEM_ALLOC_ERROR_LOG_FLAG
- | MEM_ALLOC_ERROR_SUSPEND_FLAG |
- MEM_BLOCK_ERROR_LOG_FLAG | MEM_BLOCK_ERROR_SUSPEND_FLAG | MEM_BLOCK_CHECK);
-
- /*fprintf(stdout,"[TS]: main: create memory pool, armMemPartitionId=%x\n", uts_part_id); */
- }
-
- mem = (char *) memPartAlloc(uts_part_id, size);
- return mem;
-}
-
-void *
-partrealloc(void *ptr, unsigned int size)
-{
- char *mem;
-
- mem = (char *) memPartRealloc(uts_part_id, (char *) ptr, size);
- return mem;
-}
-
-void *
-partstrdup(const char *str, int length)
-{
- char *mem;
-
- if (length == -1) {
- mem = (char *) memPartAlloc(uts_part_id, strlen(str) + 1);
- strcpy(mem, str);
- } else {
- mem = (char *) memPartAlloc(uts_part_id, length);
- strncpy(mem, str, length);
- }
- return mem;
-}
-#endif /* PARTITION_MEMORY */
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Allocator.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Allocator.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Allocator.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Allocator.h Tue Nov 30 01:42:55 2010
@@ -247,10 +247,8 @@ template<class C> inline
}
template<class C> inline
- SparceClassAllocator<C>::SparceClassAllocator(const char *name, unsigned int chunk_size, unsigned int alignment,
- void (*instantiate_func) (C * proto, C * instance)):
- ClassAllocator <
-C > (name, chunk_size, alignment)
+SparceClassAllocator<C>::SparceClassAllocator(const char *name, unsigned int chunk_size, unsigned int alignment,
+ void (*instantiate_func) (C * proto, C * instance)) : ClassAllocator <C> (name, chunk_size, alignment)
{
instantiate = instantiate_func; // NULL by default
}
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Diags.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Diags.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Diags.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Diags.cc Tue Nov 30 01:42:55 2010
@@ -209,7 +209,7 @@ Diags::print_va(const char *debug_tag, D
// add the thread id
pthread_t id = pthread_self();
- end_of_format += snprintf(end_of_format, sizeof(format_buf), "{%lu} ", (unsigned long) id);
+ end_of_format += snprintf(end_of_format, sizeof(format_buf), "{%llu} ", (uint64) id);
////////////////////////////////
// start with the user prefix //
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Diags.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Diags.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Diags.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Diags.h Tue Nov 30 01:42:55 2010
@@ -79,7 +79,7 @@ typedef enum
#define DiagsLevel_IsTerminal(_l) (((_l) >= DL_Fatal) && ((_l) < DL_Undefined))
-#ifndef INK_NO_DIAGS
+#ifdef TS_USE_DIAGS
// Cleanup Function Prototype - Called before ink_fatal to
// cleanup process state
typedef void (*DiagsCleanupFunc) ();
@@ -405,7 +405,7 @@ dummy_debug(const char *dummy_arg ...)
#define action_tag_assert(_t,_a) /**/
#endif
#define stat_debug_assert(_tst) (void)((_tst) || (Warning(#_tst), debug_tag_assert("stat_check",! #_tst), 0))
-#else // INK_NO_DIAGS
+#else // TS_USE_DIAGS
class Diags
{
@@ -446,5 +446,5 @@ dummy_debug(char *dummy_arg ...)
#define debug_tag_assert(_t,_a) /**/
#define action_tag_assert(_t,_a)
#define is_diags_on(_t) 0
-#endif // INK_NO_DIAGS
+#endif // TS_USE_DIAGS
#endif /*_Diags_h_*/
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Makefile.am
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Makefile.am?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Makefile.am (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Makefile.am Tue Nov 30 01:42:55 2010
@@ -94,8 +94,6 @@ libinktomi___a_SOURCES = \
ink_rwlock.h \
ink_sock.cc \
ink_sock.h \
- ink_spill.cc \
- ink_spill.h \
ink_sprintf.cc \
ink_sprintf.h \
ink_stack_trace.cc \
Modified: trafficserver/traffic/branches/wccp/libinktomi++/MatcherUtils.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/MatcherUtils.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/MatcherUtils.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/MatcherUtils.cc Tue Nov 30 01:42:55 2010
@@ -66,7 +66,7 @@ readIntoBuffer(char *file_path, const ch
}
if (file_info.st_size < 0) {
- Error("%s Can not get correct file size for %s file : %lld", module_name, file_path, (long long) file_info.st_size);
+ Error("%s Can not get correct file size for %s file : %lld", module_name, file_path, (int64) file_info.st_size);
close(fd);
return NULL;
}
@@ -115,15 +115,13 @@ unescapifyStr(char *buffer)
char *read = buffer;
char *write = buffer;
char subStr[3];
- long charVal;
subStr[2] = '\0';
while (*read != '\0') {
if (*read == '%' && *(read + 1) != '\0' && *(read + 2) != '\0') {
subStr[0] = *(++read);
subStr[1] = *(++read);
- charVal = strtol(subStr, (char **) NULL, 16);
- *write = (char) charVal;
+ *write = (char)strtol(subStr, (char **) NULL, 16);
read++;
write++;
} else if (*read == '+') {
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Resource.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Resource.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Resource.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Resource.cc Tue Nov 30 01:42:55 2010
@@ -63,38 +63,4 @@ void operator delete[] (void *p)
_xfree(p);
}
-#elif defined(USE_PARTITION_MEMORY) /* VxWorks */
-
-/*-------------------------------------------------------------------------
- -------------------------------------------------------------------------*/
-void *operator
-new(size_t size)
-{
- return xmalloc((unsigned int) size);
-}
-
-/*-------------------------------------------------------------------------
- -------------------------------------------------------------------------*/
-
-void operator
-delete(void *p)
-{
- xfree(p);
-}
-
-/*-------------------------------------------------------------------------
- -------------------------------------------------------------------------*/
-void *operator new[] (size_t size)
-{
- return xmalloc((unsigned int) size);
-}
-
-/*-------------------------------------------------------------------------
- -------------------------------------------------------------------------*/
-
-void operator delete[] (void *p)
-{
- xfree(p);
-}
-
#endif /* TRACK_MEMORY */
Modified: trafficserver/traffic/branches/wccp/libinktomi++/Resource.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/Resource.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/Resource.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/Resource.h Tue Nov 30 01:42:55 2010
@@ -32,15 +32,7 @@
#define NEW(mem) _xtrack_helper (mem, RES_MEM_PATH)
-
-#if defined(__alpha)
-extern void *operator
-new(size_t size)
-throw();
-extern void operator
-delete(void *p)
-throw();
-#elif defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x500)
+#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x500)
void *operator
new(size_t)
throw(std::bad_alloc);
@@ -52,40 +44,20 @@ extern void *operator new(size_t size);
extern void operator delete(void *p);
#endif
-
-#ifndef __SUNPRO_CC
-
-#ifdef __alpha
-extern void *operator new[] (size_t size) throw();
-extern void operator delete[] (void *p) throw();
-#elif !defined (_WIN64)
+#if !defined(__SUNPRO_CC) && !defined (_WIN64)
extern void *operator new[] (size_t size);
extern void operator delete[] (void *p);
#endif
-#endif /* __SUNPRO_CC */
-
-
template<class T> static inline T *
_xtrack_helper(T * ptr, const char *path)
{
return (T *) _xtrack(ptr, path);
}
-#elif defined(USE_PARTITION_MEMORY) /* VxWorks */
-
-#define NEW(mem) mem
-
-inkcoreapi extern void *operator new(size_t size);
-inkcoreapi extern void operator delete(void *p);
-inkcoreapi extern void *operator new[] (size_t size);
-inkcoreapi extern void operator delete[] (void *p);
-
-#else /* USE_PARTITION_MEMORY */
+#else
#define NEW(mem) mem
-#endif /* USE_PARTITION_MEMORY */
-
-
+#endif
#endif /* __RESOURCE_H__ */
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_atomic.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_atomic.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_atomic.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_atomic.h Tue Nov 30 01:42:55 2010
@@ -44,6 +44,7 @@
#include "ink_port.h"
#include "ink_apidefs.h"
+#include "ink_mutex.h"
typedef volatile int32 vint32;
typedef volatile int64 vint64;
@@ -88,14 +89,44 @@ static inline void *ink_atomic_increment
/* see http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html */
static inline int32 ink_atomic_swap(pvint32 mem, int32 value) { return __sync_lock_test_and_set(mem, value); }
-static inline int64 ink_atomic_swap64(pvint64 mem, int64 value) { return __sync_lock_test_and_set(mem, value); }
static inline void *ink_atomic_swap_ptr(vvoidp mem, void *value) { return __sync_lock_test_and_set((void**)mem, value); }
static inline int ink_atomic_cas(pvint32 mem, int old, int new_value) { return __sync_bool_compare_and_swap(mem, old, new_value); }
-static inline int64 ink_atomic_cas64(pvint64 mem, int64 old, int64 new_value) { return __sync_bool_compare_and_swap(mem, old, new_value); }
static inline int ink_atomic_cas_ptr(pvvoidp mem, void* old, void* new_value) { return __sync_bool_compare_and_swap(mem, old, new_value); }
static inline int ink_atomic_increment(pvint32 mem, int value) { return __sync_fetch_and_add(mem, value); }
-static inline int64 ink_atomic_increment64(pvint64 mem, int64 value) { return __sync_fetch_and_add(mem, value); }
static inline void *ink_atomic_increment_ptr(pvvoidp mem, intptr_t value) { return __sync_fetch_and_add((void**)mem, value); }
+#if defined(__arm__) && (SIZEOF_VOIDP == 4)
+extern ProcessMutex __global_death;
+
+static inline int64 ink_atomic_swap64(pvint64 mem, int64 value) {
+ int64 old;
+ ink_mutex_acquire(&__global_death);
+ old = *mem;
+ *mem = value;
+ ink_mutex_release(&__global_death);
+ return old;
+}
+static inline int64 ink_atomic_cas64(pvint64 mem, int64 old, int64 new_value) {
+ int64 curr;
+ ink_mutex_acquire(&__global_death);
+ curr = *mem;
+ if(old == curr) *mem = new_value;
+ ink_mutex_release(&__global_death);
+ if(old == curr) return 1;
+ return 0;
+}
+static inline int64 ink_atomic_increment64(pvint64 mem, int64 value) {
+ int64 curr;
+ ink_mutex_acquire(&__global_death);
+ curr = *mem;
+ *mem = curr + value;
+ ink_mutex_release(&__global_death);
+ return curr + value;
+}
+#else
+static inline int64 ink_atomic_swap64(pvint64 mem, int64 value) { return __sync_lock_test_and_set(mem, value); }
+static inline int64 ink_atomic_cas64(pvint64 mem, int64 old, int64 new_value) { return __sync_bool_compare_and_swap(mem, old, new_value); }
+static inline int64 ink_atomic_increment64(pvint64 mem, int64 value) { return __sync_fetch_and_add(mem, value); }
+#endif
/* not used for Intel Processors which have sequential(esque) consistency */
#define INK_WRITE_MEMORY_BARRIER
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_config.h.in
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_config.h.in?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_config.h.in (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_config.h.in Tue Nov 30 01:42:55 2010
@@ -38,14 +38,6 @@
*/
#include "ink_autoconf.h"
-/* Version info
- */
-#define TS_VERSION_STRING "@TS_VERSION_STRING@"
-#define TS_VERSION_NUMBER @TS_VERSION_NUMBER@
-#define TS_VERSION_MAJOR @TS_VERSION_MAJOR@
-#define TS_VERSION_MINOR @TS_VERSION_MINOR@
-#define TS_VERSION_MICRO @TS_VERSION_MICRO@
-
#define BUILD_MACHINE "@build_machine@"
#define BUILD_PERSON "@build_person@"
#define BUILD_GROUP "@build_group@"
@@ -133,21 +125,21 @@
#define TS_HAS_V2STATS @has_v2stats@
#define TS_HAS_PURIFY @has_purify@
#define TS_HAS_DEMANGLE @has_demangle@
+#define TS_HAS_TESTS @has_tests@
/* XXX: Should make those individually selectable ? */
-/* TODO: Use ATS prefix instead no prefix or INK */
+/* TODO: Use TS prefix instead no prefix or INK */
#if TS_IS_MICRO_BUILD
# define TS_MICRO 1
# define INK_NO_ACL 1
# define INK_NO_CLUSTER 1
-# define INK_NO_DIAGS 1
+# define TS_USE_DIAGS 0
# define INK_NO_HOSTDB 1
# define INK_NO_ICP 1
# define INK_NO_LOG 1
# define INK_NO_REVERSE 1
# define INK_NO_SOCKS 1
# define INK_NO_STAT_PAGES 1
-# define INK_NO_TESTS 1
# define INK_USE_MUTEX_FOR_ATOMICLISTS 1
# define INK_USE_MUTEX_FOR_FREELISTS 1
# define USE_MD5_FOR_MMH 1
@@ -158,8 +150,8 @@
#define TS_MAX_API_STATS @max_api_stats@
/* XXX: Should make those individually selectable ? */
#else
-# define INK_NO_TRANSFORM 1
-# define INK_NO_API 1
+# define TS_NO_TRANSFORM 1
+# define TS_NO_API 1
# define INK_SINGLE_THREADED 1
#endif
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_hrtime.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_hrtime.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_hrtime.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_hrtime.h Tue Nov 30 01:42:55 2010
@@ -250,7 +250,7 @@ ink_get_hrtime_internal()
timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
return (ts.tv_sec * HRTIME_SECOND + ts.tv_nsec * HRTIME_NSECOND);
-#else /* !defined (__alpha) */
+#else
timeval tv;
gettimeofday(&tv, NULL);
return (tv.tv_sec * HRTIME_SECOND + tv.tv_usec * HRTIME_USECOND);
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_inet.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.cc Tue Nov 30 01:42:55 2010
@@ -162,3 +162,35 @@ ink_inet_addr(const char *s)
}
return htonl((uint32) - 1);
}
+
+const char *ink_inet_ntop(const struct sockaddr *addr, char *dst, size_t size)
+{
+ void *address = NULL;
+
+ switch (addr->sa_family) {
+ case AF_INET:
+ address = &((struct sockaddr_in *)addr)->sin_addr;
+ break;
+ case AF_INET6:
+ address = &((struct sockaddr_in6 *)addr)->sin6_addr;
+ break;
+ }
+
+ return inet_ntop(addr->sa_family, address, dst, size);
+}
+
+uint16_t ink_inet_port(const struct sockaddr *addr)
+{
+ uint16_t port = 0;
+
+ switch (addr->sa_family) {
+ case AF_INET:
+ port = ntohs(((struct sockaddr_in *)addr)->sin_port);
+ break;
+ case AF_INET6:
+ port = ntohs(((struct sockaddr_in6 *)addr)->sin6_port);
+ break;
+ }
+
+ return port;
+}
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_inet.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_inet.h Tue Nov 30 01:42:55 2010
@@ -88,4 +88,7 @@ struct hostent *ink_gethostbyaddr_r(char
*/
inkcoreapi uint32 ink_inet_addr(const char *s);
+const char *ink_inet_ntop(const struct sockaddr *addr, char *dst, size_t size);
+uint16_t ink_inet_port(const struct sockaddr *addr);
+
#endif // _ink_inet.h
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_inout.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_inout.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_inout.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_inout.h Tue Nov 30 01:42:55 2010
@@ -66,7 +66,7 @@ extern "C"
(cp)[2] = (l >>= 8); \
(cp)[1] = (l >>= 8); \
(cp)[0] = l >> 8; \
- (cp) += sizeof (long long); \
+ (cp) += 8; \
}
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_memory.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.cc Tue Nov 30 01:42:55 2010
@@ -46,157 +46,6 @@
#endif
-
-class MAMemChunk
-{
-public:
- MAMemChunk * next;
- void *ptr;
-};
-
-class MAHeap
-{
-private:
- pthread_mutex_t mutex;
- char *heap;
- char *heap_end;
- int size;
- int chunk_size;
- int total_chunks;
- MAMemChunk *chunk_list_free;
- MAMemChunk *chunk_list_used;
-public:
- MAHeap(int chunk_size = 0, int total_chunks = 0);
- ~MAHeap();
- bool Init(int chunk_size = 0, int total_chunks = 0);
- void *Get(void);
- bool Free(void *ptr);
-};
-
-bool
-MAHeap::Init(int _chunk_size, int _total_chunks)
-{
- bool retcode = true;
- chunk_size = _chunk_size;
- total_chunks = _total_chunks;
- size = chunk_size * total_chunks;
-
- if (size > 0) {
- heap = (char *)ink_memalign(8192, size);
- if (heap != NULL) {
- for (int i = 0; i < total_chunks; i++) {
- MAMemChunk *mc = new MAMemChunk();
- mc->next = chunk_list_free;
- chunk_list_free = mc;
- mc->ptr = (void *) &heap[chunk_size * i];
- }
- heap_end = heap + size;
- } else
- retcode = false;
- }
- return retcode;
-}
-
-MAHeap::MAHeap(int _chunk_size, int _total_chunks)
-{
- chunk_list_free = (chunk_list_used = 0);
- heap_end = (heap = NULL);
- pthread_mutex_init(&mutex, NULL);
- Init(_chunk_size, _total_chunks);
-}
-
-MAHeap::~MAHeap()
-{
- pthread_mutex_lock(&mutex);
- // free the heap
- if (heap != NULL) {
- free(heap);
- }
- // delete the free list
- MAMemChunk *head = chunk_list_free;
- MAMemChunk *next = NULL;
- while (head != NULL) {
- next = head->next;
- delete head;
- head = next;
- }
- // delete the used list
- head = chunk_list_used;
- next = NULL;
- while (head != NULL) {
- next = head->next;
- delete head;
- head = next;
- }
- pthread_mutex_unlock(&mutex);
-}
-
-void *
-MAHeap::Get(void)
-{
- MAMemChunk *mc;
- void *ptr = 0;
- if (heap) {
- pthread_mutex_lock(&mutex);
- if ((mc = chunk_list_free) != 0) {
- chunk_list_free = mc->next;
- mc->next = chunk_list_used;
- chunk_list_used = mc;
- ptr = mc->ptr;
- }
- pthread_mutex_unlock(&mutex);
- }
- return ptr;
-}
-
-// I know that it is not optimal but we are not going to free aligned memory at all
-// I wrote it - just in case ...
-bool
-MAHeap::Free(void *ptr)
-{
- bool retcode = false;
- if (ptr && heap && ptr >= heap && ptr < heap_end) {
- MAMemChunk *mc, **mcc;
- retcode = true;
- pthread_mutex_lock(&mutex);
- for (mcc = &chunk_list_used; (mc = *mcc) != 0; mcc = &(mc->next)) {
- if (mc->ptr == ptr) {
- *mcc = mc->next;
- mc->next = chunk_list_free;
- chunk_list_free = mc;
- break;
- }
- }
- pthread_mutex_unlock(&mutex);
- }
- return retcode;
-}
-
-static MAHeap *maheap_1m = new MAHeap();
-static MAHeap *maheap_512k = new MAHeap();
-static MAHeap *maheap_256k = new MAHeap();
-
-bool
-ink_memalign_heap_init(long long ram_cache_size)
-{
- bool retcode = true;
- int _total_chunks = (int) (ram_cache_size / (1024 * 1024));
-
- if (_total_chunks > 1024)
- _total_chunks = 1024;
-
- if (likely(maheap_1m)) {
- retcode = maheap_1m->Init(1024 * 1024, _total_chunks) ? retcode : false;
- }
- if (likely(maheap_512k)) {
- retcode = maheap_512k->Init(512 * 1024, _total_chunks) ? retcode : false;
- }
- if (likely(maheap_256k)) {
- retcode = maheap_256k->Init(256 * 1024, _total_chunks) ? retcode : false;
- }
- return retcode;
-}
-
void *
ink_malloc(size_t size)
{
@@ -209,6 +58,8 @@ ink_malloc(size_t size)
* certain they die quickly & don't trash things.
*/
+ // Useful for tracing bad mallocs
+ // ink_stack_trace_dump();
if (likely(size > 0)) {
if (unlikely((ptr = malloc(size)) == NULL)) {
xdump();
@@ -247,16 +98,11 @@ void
ink_memalign_free(void *ptr)
{
if (likely(ptr)) {
- if (maheap_1m && maheap_1m->Free(ptr))
- return;
- if (maheap_512k && maheap_512k->Free(ptr))
- return;
- if (maheap_256k && maheap_256k->Free(ptr))
- return;
ink_free(ptr);
}
}
+
void *
ink_memalign(size_t alignment, size_t size)
{
@@ -268,17 +114,6 @@ ink_memalign(size_t alignment, size_t si
if (alignment <= 8)
return ink_malloc(size);
- if (size == (1024 * 1024)) {
- if (maheap_1m && (ptr = maheap_1m->Get()) != 0)
- return ptr;
- } else if (size == (1024 * 512)) {
- if (maheap_512k && (ptr = maheap_512k->Get()) != 0)
- return ptr;
- } else if (size == (1024 * 256)) {
- if (maheap_256k && (ptr = maheap_256k->Get()) != 0)
- return ptr;
- }
-
int retcode = posix_memalign(&ptr, alignment, size);
if (unlikely(retcode)) {
if (retcode == EINVAL) {
@@ -333,8 +168,6 @@ ink_memalign(size_t alignment, size_t si
return NULL;
} /* End ink_memalign */
-
-
void
ink_free(void *ptr)
{
@@ -354,102 +187,6 @@ ink_duplicate_string(char *ptr)
return (ink_string_duplicate(ptr));
} /* End ink_duplicate_string */
-
-void
-ink_memzero(void *src_arg, int nbytes)
-{
- ink_assert(!"don't use this slow code!");
-
- char *src = (char *) src_arg;
-
- ink_assert(nbytes > 0);
-
- if (nbytes <= 20) {
- switch (nbytes) {
- case 1:
- src[0] = '\0';
- break;
- case 2:
- src[0] = src[1] = '\0';
- break;
- case 3:
- src[0] = src[1] = src[2] = '\0';
- break;
- case 4:
- src[0] = src[1] = src[2] = src[3] = '\0';
- break;
- case 5:
- src[0] = src[1] = src[2] = src[3] = src[4] = '\0';
- break;
- case 6:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = '\0';
- break;
- case 7:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = '\0';
- break;
- case 8:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = '\0';
- break;
- case 9:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = '\0';
- break;
- case 10:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] = '\0';
- break;
- case 11:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] = src[10] = '\0';
- break;
- case 12:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = '\0';
- break;
- case 13:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = '\0';
- break;
- case 14:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = '\0';
- break;
- case 15:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = '\0';
- break;
- case 16:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = '\0';
- break;
- case 17:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = '\0';
- break;
- case 18:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = '\0';
- break;
- case 19:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = src[18] = '\0';
- break;
- case 20:
- src[0] = src[1] = src[2] = src[3] = src[4] = src[5] = src[6] = src[7] = src[8] = src[9] =
- src[10] = src[11] = src[12] = src[13] = src[14] = src[15] = src[16] = src[17] = src[18] = src[19] = '\0';
- break;
- default:
- break;
- }
- } else if (nbytes <= 1000) {
- int i;
- for (i = 0; i < nbytes; i++) {
- src[i] = '\0';
- }
- } else {
- memset(src, '\0', nbytes);
- }
- return;
-}
-
-
void *
ink_memcpy(void *s1, const void *s2, int n)
{
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_memory.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_memory.h Tue Nov 30 01:42:55 2010
@@ -50,7 +50,6 @@ extern "C"
#define ink_type_malloc_n(n,type) (type *)ink_malloc((n) * sizeof(type));
#define ink_type_calloc(n,type) (type *)ink_calloc((n),sizeof(type));
- bool ink_memalign_heap_init(long long ram_cache_size);
void *ink_malloc(size_t size);
void *ink_calloc(size_t nelem, size_t elsize);
void *ink_realloc(void *ptr, size_t size);
@@ -58,7 +57,6 @@ extern "C"
void ink_free(void *ptr);
void ink_memalign_free(void *ptr);
char *ink_duplicate_string(char *ptr); /* obsoleted by ink_string_duplicate --- don't use */
- void ink_memzero(void *src_arg, int nbytes);
void *ink_memcpy(void *s1, const void *s2, int n);
void ink_bcopy(void *s1, void *s2, size_t n);
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_mutex.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_mutex.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_mutex.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_mutex.cc Tue Nov 30 01:42:55 2010
@@ -29,6 +29,9 @@
x_pthread_mutexattr_t _g_mattr;
+ProcessMutex __global_death = PTHREAD_MUTEX_INITIALIZER;
+ProcessMutex *gobal_death_mutex = &__global_death;
+
void
ink_ProcessMutex_init(ProcessMutex * m, const char *name)
{
@@ -71,5 +74,8 @@ ink_ProcessMutex_print(FILE * out, Proce
{
(void) out;
(void) m;
- fprintf(out, "ProcessMutex\n");
+ if(m == gobal_death_mutex)
+ fprintf(out, "Global ProcessMutex\n");
+ else
+ fprintf(out, "ProcessMutex\n");
}
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_queue.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.cc Tue Nov 30 01:42:55 2010
@@ -82,7 +82,7 @@ inkcoreapi volatile int64 fastalloc_mem_
#define MEMPROTECT_SIZE 0x200
#ifdef MEMPROTECT
-static long page_size = 8192; /* sysconf (_SC_PAGESIZE); */
+static const int page_size = 8192; /* sysconf (_SC_PAGESIZE); */
#endif
static ink_freelist_list *freelists = NULL;
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_queue.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_queue.h Tue Nov 30 01:42:55 2010
@@ -74,7 +74,7 @@ extern "C"
typedef union
{
-#if defined(__i386__)
+#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
struct
{
void *pointer;
@@ -104,7 +104,7 @@ extern "C"
#define TO_PTR(_x) ((void*)(_x))
#endif
-#if defined(__i386__) || defined(__i386)
+#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
#define FREELIST_POINTER(_x) (_x).s.pointer
#define FREELIST_VERSION(_x) (_x).s.version
#define SET_FREELIST_POINTER_VERSION(_x,_p,_v) \
@@ -165,10 +165,11 @@ extern "C"
static inline void *ink_freelist_new(InkFreeList * f)
{
void *retval = NULL;
- ink_mutex_acquire(&(f->inkfreelist_mutex));
- retval = ink_freelist_new_wrap(f);
- ink_mutex_release(&(f->inkfreelist_mutex));
- return retval;
+
+ ink_mutex_acquire(&(f->inkfreelist_mutex));
+ retval = ink_freelist_new_wrap(f);
+ ink_mutex_release(&(f->inkfreelist_mutex));
+ return retval;
}
inkcoreapi void ink_freelist_free_wrap(InkFreeList * f, void *item);
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_queue_utils.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_queue_utils.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_queue_utils.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_queue_utils.cc Tue Nov 30 01:42:55 2010
@@ -69,7 +69,7 @@
void
ink_queue_load_64(void *dst, void *src)
{
-#if defined(__i386__)
+#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
int32 src_version = (*(head_p *) src).s.version;
void *src_pointer = (*(head_p *) src).s.pointer;
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_res_init.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_res_init.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_res_init.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_res_init.cc Tue Nov 30 01:42:55 2010
@@ -411,7 +411,8 @@ ink_res_get_nibblesuffix2(ink_res_state
*/
/*% This function has to be reachable by res_data.c but not publically. */
int
-ink_res_init(ink_res_state statp, unsigned int *pHostList, int *pPort, char *pDefDomain, char *pSearchList, char *pResolvConf) {
+ink_res_init(ink_res_state statp, const unsigned int *pHostList, const int *pPort, const char *pDefDomain, const char *pSearchList,
+ const char *pResolvConf) {
register FILE *fp;
register char *cp, **pp;
register int n;
@@ -539,16 +540,12 @@ ink_res_init(ink_res_state statp, unsign
---------------------------------------------- */
if (pDefDomain && '\0' != *pDefDomain && '\n' != *pDefDomain) {
-
- cp = pDefDomain;
- strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
+ strncpy(statp->defdname, pDefDomain, sizeof(statp->defdname) - 1);
if ((cp = strpbrk(statp->defdname, " \t\n")) != NULL)
*cp = '\0';
}
if (pSearchList && '\0' != *pSearchList && '\n' != *pSearchList) {
-
- cp = pSearchList;
- strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
+ strncpy(statp->defdname, pSearchList, sizeof(statp->defdname) - 1);
if ((cp = strchr(statp->defdname, '\n')) != NULL)
*cp = '\0';
/*
@@ -731,29 +728,18 @@ ink_res_init(ink_res_state statp, unsign
continue;
}
}
- if (nserv > 0)
- statp->nscount = nserv;
#ifdef RESOLVSORT
statp->nsort = nsort;
#endif
(void) fclose(fp);
}
-/*
- * Last chance to get a nameserver. This should not normally
- * be necessary
- */
-#ifdef NO_RESOLV_CONF
- if(nserv == 0)
- nserv = get_nameservers(statp);
-#endif
+ if (nserv > 0)
+ statp->nscount = nserv;
- if (statp->defdname[0] == 0 &&
- gethostname(buf, sizeof(statp->defdname) - 1) == 0 &&
- (cp = strchr(buf, '.')) != NULL)
+ if (statp->defdname[0] == 0 && gethostname(buf, sizeof(statp->defdname) - 1) == 0 && (cp = strchr(buf, '.')) != NULL)
strcpy(statp->defdname, cp + 1);
-
/* find components of local domain that might be searched */
if (havesearch == 0) {
pp = statp->dnsrch;
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_resolver.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_resolver.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_resolver.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_resolver.h Tue Nov 30 01:42:55 2010
@@ -242,21 +242,21 @@ typedef __ink_res_state *ink_res_state;
struct __ink_res_state_ext {
- union ink_res_sockaddr_union nsaddrs[INK_MAXNS];
- struct sort_list {
- int af;
- union {
- struct in_addr ina;
- struct in6_addr in6a;
- } addr, mask;
- } sort_list[MAXRESOLVSORT];
- char nsuffix[64];
- char nsuffix2[64];
+ union ink_res_sockaddr_union nsaddrs[INK_MAXNS];
+ struct sort_list {
+ int af;
+ union {
+ struct in_addr ina;
+ struct in6_addr in6a;
+ } addr, mask;
+ } sort_list[MAXRESOLVSORT];
+ char nsuffix[64];
+ char nsuffix2[64];
};
-int ink_res_init(ink_res_state, unsigned int *pHostList, int *pPort = NULL, char *pDefDomain = NULL,
- char *pSearchList = NULL, char *pResolvConf = NULL);
+int ink_res_init(ink_res_state, const unsigned int *pHostList, const int *pPort = NULL, const char *pDefDomain = NULL,
+ const char *pSearchList = NULL, const char *pResolvConf = NULL);
int ink_res_mkquery(ink_res_state, int, const char *, int, int,
const unsigned char *, int, const unsigned char *, unsigned char *, int);
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_resource.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_resource.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_resource.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_resource.cc Tue Nov 30 01:42:55 2010
@@ -419,7 +419,7 @@ _xmalloc(unsigned int size, const char *
-------------------------------------------------------------------------*/
char *
-_xstrdup(const char *str, int length, const char *path)
+_xstrdup(const char *str, int64 length, const char *path)
{
char *newstr;
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_stack_trace.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_stack_trace.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_stack_trace.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_stack_trace.cc Tue Nov 30 01:42:55 2010
@@ -45,7 +45,6 @@ struct sigframe
int sig;
#ifdef HAVE_SIGCONTEXT
struct sigcontext sc;
- struct _fpstate fpstate;
#endif
};
@@ -58,19 +57,23 @@ ink_restore_signal_handler_frame(void **
struct sigframe *sf;
struct sigcontext *scxt;
-#ifdef __i386__
+#if defined(__i386__)
asm volatile ("movl %%ebp,%0":"=r" (fp));
-#else
+#elif defined(__x86_64__)
asm volatile ("mov %%rbp,%0":"=r" (fp));
+#elif defined(__arm__)
+ asm volatile ("mov %%r9,%0":"=r" (fp));
#endif
for (i = 0; i < signalhandler_frame; i++)
fp = (void **) (*fp);
sf = (struct sigframe *) (fp + 1);
scxt = &(sf->sc);
-#ifdef __i386__
+#if defined(__i386__)
stack[signalhandler_frame + 1] = (void *) scxt->eip;
-#else
+#elif defined(__x86_64__)
stack[signalhandler_frame + 1] = (void *) scxt->rip;
+#elif defined(__arm__)
+ stack[signalhandler_frame + 1] = (void *) scxt->arm_ip;
#endif
for (i = signalhandler_frame + 2; i < len - 1; i++)
stack[i] = stack[i + 1];
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_string++.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_string%2B%2B.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_string++.cc (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_string++.cc Tue Nov 30 01:42:55 2010
@@ -214,7 +214,7 @@ StrList::_new_cell(const char *s, int le
p = (char *) alloc(sizeof(Str) + 7);
if (p == NULL)
return (NULL); // FIX: scale heap
- p = (char *) (((long) (p + 7)) & ~7); // round up to multiple of 8
+ p = (char *) ((((uintptr_t)p) + 7) & ~7); // round up to multiple of 8
cell = (Str *) p;
}
++cells_allocated;
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_string.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_string.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_string.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_string.h Tue Nov 30 01:42:55 2010
@@ -694,4 +694,87 @@ ptr_len_pbrk(const char *p1, int l1, con
return NULL;
}
+// Specialized "itoa", that is optimized for small integers, and use snprintf() otherwise.
+// On error, we'll return 0, and nothing is written to the buffer.
+// TODO: Do these really need to be inline?
+inline int
+ink_small_itoa(int32 val, char* buf, int buf_len)
+{
+ ink_assert(buf_len > 5);
+ ink_assert((val >= 0) && (val < 100000));
+
+ if (val < 10) { // 0 - 9
+ buf[0] = '0' + val;
+ return 1;
+ } else if (val < 100) { // 10 - 99
+ buf[1] = '0' + (val % 10);
+ val /= 10;
+ buf[0] = '0' + (val % 10);
+ return 2;
+ } else if (val < 1000) { // 100 - 999
+ buf[2] = '0' + (val % 10);
+ val /= 10;
+ buf[1] = '0' + (val % 10);
+ val /= 10;
+ buf[0] = '0' + (val % 10);
+ return 3;
+ } else if (val < 10000) { // 1000 - 9999
+ buf[3] = '0' + (val % 10);
+ val /= 10;
+ buf[2] = '0' + (val % 10);
+ val /= 10;
+ buf[1] = '0' + (val % 10);
+ val /= 10;
+ buf[0] = '0' + (val % 10);
+ return 4;
+ } else { // 10000 - 99999
+ buf[4] = '0' + (val % 10);
+ val /= 10;
+ buf[3] = '0' + (val % 10);
+ val /= 10;
+ buf[2] = '0' + (val % 10);
+ val /= 10;
+ buf[1] = '0' + (val % 10);
+ val /= 10;
+ buf[0] = '0' + (val % 10);
+ return 5;
+ }
+}
+
+inline int
+ink_fast_itoa(int32 val, char* buf, int buf_len)
+{
+ if ((val < 0) || (val > 99999)) {
+ int ret = snprintf(buf, buf_len, "%d", val);
+
+ return (ret >= 0 ? ret : 0);
+ }
+
+ return ink_small_itoa(val, buf, buf_len);
+}
+
+inline int
+ink_fast_uitoa(uint32 val, char* buf, int buf_len)
+{
+ if (val > 99999) {
+ int ret = snprintf(buf, buf_len, "%u", val);
+
+ return (ret >= 0 ? ret : 0);
+ }
+
+ return ink_small_itoa(val, buf, buf_len);
+}
+
+inline int
+ink_fast_ltoa(int64 val, char* buf, int buf_len)
+{
+ if ((val < 0) || (val > 99999)) {
+ int ret = snprintf(buf, buf_len, "%lld", val);
+
+ return (ret >= 0 ? ret : 0);
+ }
+
+ return ink_small_itoa(val, buf, buf_len);
+}
+
#endif
Modified: trafficserver/traffic/branches/wccp/libinktomi++/ink_thread.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/ink_thread.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/ink_thread.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/ink_thread.h Tue Nov 30 01:42:55 2010
@@ -34,7 +34,6 @@
#include "ink_hrtime.h"
#include <sched.h>
-// #define DEBUG_VXWORKS
//////////////////////////////////////////////////////////////////////////////
//
Modified: trafficserver/traffic/branches/wccp/libinktomi++/inktomi++.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/inktomi%2B%2B.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/inktomi++.h (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/inktomi++.h Tue Nov 30 01:42:55 2010
@@ -68,7 +68,6 @@
#include "ink_resource.h"
#include "ink_sock.h"
#include "ink_inet.h"
-#include "ink_spill.h"
#include "ink_sprintf.h"
#include "ink_stack_trace.h"
#include "ink_string++.h"
Modified: trafficserver/traffic/branches/wccp/libinktomi++/mkdfa.c
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/libinktomi%2B%2B/mkdfa.c?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/libinktomi++/mkdfa.c (original)
+++ trafficserver/traffic/branches/wccp/libinktomi++/mkdfa.c Tue Nov 30 01:42:55 2010
@@ -28,10 +28,8 @@
#include <string.h>
#include "ink_unused.h"
-#ifndef __alpha
#define TRUE 1
#define FALSE 0
-#endif
#define SIZEOF(t) (sizeof (t) / (sizeof ((t)[0])))
Modified: trafficserver/traffic/branches/wccp/librecords/P_RecCore.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/librecords/P_RecCore.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/librecords/P_RecCore.h (original)
+++ trafficserver/traffic/branches/wccp/librecords/P_RecCore.h Tue Nov 30 01:42:55 2010
@@ -98,4 +98,7 @@ int RecExecRawStatUpdateFuncs();
void RecDumpRecordsHt(RecT rec_type = RECT_NULL);
+void
+RecDumpRecords(RecT rec_type, RecDumpEntryCb callback, void *edata);
+
#endif
Modified: trafficserver/traffic/branches/wccp/librecords/P_RecDefs.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/librecords/P_RecDefs.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/librecords/P_RecDefs.h (original)
+++ trafficserver/traffic/branches/wccp/librecords/P_RecDefs.h Tue Nov 30 01:42:55 2010
@@ -171,6 +171,8 @@ struct RecMessageItr
typedef RecMessageHdr RecMessage;
+typedef void (*RecDumpEntryCb) (RecT rec_type, void *edata, int registered, const char *name, int data_type, RecData *datum);
+
typedef int (*RecMessageRecvCb) (RecMessage * msg, RecMessageT msg_type, void *cookie);
#endif
Modified: trafficserver/traffic/branches/wccp/librecords/RecCore.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/librecords/RecCore.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/librecords/RecCore.cc (original)
+++ trafficserver/traffic/branches/wccp/librecords/RecCore.cc Tue Nov 30 01:42:55 2010
@@ -878,42 +878,52 @@ RecForceInsert(RecRecord * record)
//-------------------------------------------------------------------------
// RecDumpRecordsHt
//-------------------------------------------------------------------------
+
+static void
+debug_record_callback(RecT rec_type, void *edata, int registered, const char *name, int data_type, RecData *datum)
+{
+ switch(data_type) {
+ case RECD_INT:
+ RecDebug(DL_Note, " ([%d] '%s', '%lld')", registered, name, datum->rec_int);
+ break;
+ case RECD_FLOAT:
+ RecDebug(DL_Note, " ([%d] '%s', '%f')", registered, name, datum->rec_float);
+ break;
+ case RECD_STRING:
+ RecDebug(DL_Note, " ([%d] '%s', '%s')",
+ registered, name, datum->rec_string ? datum->rec_string : "NULL");
+ break;
+ case RECD_COUNTER:
+ RecDebug(DL_Note, " ([%d] '%s', '%lld')", registered, name, datum->rec_counter);
+ break;
+ default:
+ RecDebug(DL_Note, " ([%d] '%s', <? ? ?>)", registered, name);
+ break;
+ }
+}
void
-RecDumpRecordsHt(RecT rec_type)
+RecDumpRecords(RecT rec_type, RecDumpEntryCb callback, void *edata)
{
int i, num_records;
- RecDebug(DL_Note, "Dumping Records:");
-
num_records = g_num_records;
for (i = 0; i < num_records; i++) {
RecRecord *r = &(g_records[i]);
if ((rec_type == RECT_NULL) || (rec_type == r->rec_type)) {
rec_mutex_acquire(&(r->lock));
- switch (r->data_type) {
- case RECD_INT:
- RecDebug(DL_Note, " ([%d] '%s', '%lld')", r->registered, r->name, r->data.rec_int);
- break;
- case RECD_FLOAT:
- RecDebug(DL_Note, " ([%d] '%s', '%f')", r->registered, r->name, r->data.rec_float);
- break;
- case RECD_STRING:
- RecDebug(DL_Note, " ([%d] '%s', '%s')",
- r->registered, r->name, r->data.rec_string ? r->data.rec_string : "NULL");
- break;
- case RECD_COUNTER:
- RecDebug(DL_Note, " ([%d] '%s', '%lld')", r->registered, r->name, r->data.rec_counter);
- break;
- default:
- RecDebug(DL_Note, " ([%d] '%s', <? ? ?>)", r->registered, r->name);
- break;
- }
+ callback(rec_type, edata, r->registered, r->name, r->data_type, &r->data);
rec_mutex_release(&(r->lock));
}
}
}
void
+RecDumpRecordsHt(RecT rec_type) {
+ RecDebug(DL_Note, "Dumping Records:");
+ RecDumpRecords(rec_type, debug_record_callback, NULL);
+}
+
+void
RecGetRecordTree(char *subtree)
{
RecTree *tree = g_records_tree;
Modified: trafficserver/traffic/branches/wccp/proxy/ControlMatcher.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/proxy/ControlMatcher.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/proxy/ControlMatcher.cc (original)
+++ trafficserver/traffic/branches/wccp/proxy/ControlMatcher.cc Tue Nov 30 01:42:55 2010
@@ -57,8 +57,8 @@
char *
HttpRequestData::get_string()
{
- char *str = hdr->url_string_get();
- unescapifyStr(str);
+ char *str = hdr->url_string_get(NULL);
+ if (str) unescapifyStr(str);
return str;
}
Modified: trafficserver/traffic/branches/wccp/proxy/DiagsConfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/proxy/DiagsConfig.cc?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/proxy/DiagsConfig.cc (original)
+++ trafficserver/traffic/branches/wccp/proxy/DiagsConfig.cc Tue Nov 30 01:42:55 2010
@@ -317,13 +317,13 @@ DiagsConfig::DiagsConfig(char *bdt, char
////////////////////////
if (access(system_log_dir, R_OK) == -1) {
- REC_ReadConfigString(diags_logpath, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+ REC_ReadConfigString(diags_logpath, "proxy.config.log.logfile_dir", PATH_NAME_MAX);
Layout::get()->relative(system_log_dir, PATH_NAME_MAX, diags_logpath);
if (access(system_log_dir, R_OK) == -1) {
fprintf(stderr,"unable to access() log dir'%s': %d, %s\n",
system_log_dir, errno, strerror(errno));
- fprintf(stderr,"please set 'proxy.config.log2.logfile_dir'\n");
+ fprintf(stderr,"please set 'proxy.config.log.logfile_dir'\n");
_exit(1);
}
}
Modified: trafficserver/traffic/branches/wccp/proxy/DynamicStats.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/wccp/proxy/DynamicStats.h?rev=1040383&r1=1040382&r2=1040383&view=diff
==============================================================================
--- trafficserver/traffic/branches/wccp/proxy/DynamicStats.h (original)
+++ trafficserver/traffic/branches/wccp/proxy/DynamicStats.h Tue Nov 30 01:42:55 2010
@@ -102,14 +102,6 @@ _D(cpu_metric_fds_ready_per_loop_stat)
//
// Dynamic Scheduled Update Stats
//
- //
- // Dynamic WMT stats
- //
-#define WMT_STATS_1
- //
- // Dynamic QT stats
- //
-#define QT_STATS_1
#ifdef TS_MICRO
//
// Prefetch Stuffer Stats