You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ge...@apache.org on 2010/02/24 19:48:52 UTC

svn commit: r915922 [1/14] - in /incubator/trafficserver/traffic/trunk: ./ install/ iocore/aio/ iocore/block-cache/ iocore/cache/ iocore/cluster/ iocore/dns/ iocore/eventsystem/ iocore/hostdb/ iocore/net/ iocore/utils/ libev/ libev/CVS/ libinktomi++/ l...

Author: georgep
Date: Wed Feb 24 18:48:42 2010
New Revision: 915922

URL: http://svn.apache.org/viewvc?rev=915922&view=rev
Log:
Merged traffic-branchdev(trafficserver/traffic/branches/dev) changes r891822:915884 into trunk.
Tested: ubuntu904, forward and reverse proxy.

Added:
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheTest.cc
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/iocore/cache/CacheTest.cc
    incubator/trafficserver/traffic/trunk/libev/
      - copied from r915885, incubator/trafficserver/traffic/branches/dev/libev/
    incubator/trafficserver/traffic/trunk/libev/CVS/
      - copied from r915885, incubator/trafficserver/traffic/branches/dev/libev/CVS/
    incubator/trafficserver/traffic/trunk/libev/CVS/Entries
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/CVS/Entries
    incubator/trafficserver/traffic/trunk/libev/CVS/Repository
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/CVS/Repository
    incubator/trafficserver/traffic/trunk/libev/CVS/Root
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/CVS/Root
    incubator/trafficserver/traffic/trunk/libev/Changes
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/Changes
    incubator/trafficserver/traffic/trunk/libev/LICENSE
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/LICENSE
    incubator/trafficserver/traffic/trunk/libev/Makefile.am
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/Makefile.am
    incubator/trafficserver/traffic/trunk/libev/README
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/README
    incubator/trafficserver/traffic/trunk/libev/README.embed
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/README.embed
    incubator/trafficserver/traffic/trunk/libev/README.trafficserver
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/README.trafficserver
    incubator/trafficserver/traffic/trunk/libev/Symbols.ev
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/Symbols.ev
    incubator/trafficserver/traffic/trunk/libev/Symbols.event
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/Symbols.event
    incubator/trafficserver/traffic/trunk/libev/autogen.sh
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/autogen.sh
    incubator/trafficserver/traffic/trunk/libev/configure.ac
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/configure.ac
    incubator/trafficserver/traffic/trunk/libev/configure.trafficserver
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/configure.trafficserver
    incubator/trafficserver/traffic/trunk/libev/ev++.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev++.h
    incubator/trafficserver/traffic/trunk/libev/ev.3
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev.3
    incubator/trafficserver/traffic/trunk/libev/ev.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev.c
    incubator/trafficserver/traffic/trunk/libev/ev.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev.h
    incubator/trafficserver/traffic/trunk/libev/ev.pod
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev.pod
    incubator/trafficserver/traffic/trunk/libev/ev_epoll.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_epoll.c
    incubator/trafficserver/traffic/trunk/libev/ev_kqueue.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_kqueue.c
    incubator/trafficserver/traffic/trunk/libev/ev_poll.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_poll.c
    incubator/trafficserver/traffic/trunk/libev/ev_port.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_port.c
    incubator/trafficserver/traffic/trunk/libev/ev_select.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_select.c
    incubator/trafficserver/traffic/trunk/libev/ev_vars.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_vars.h
    incubator/trafficserver/traffic/trunk/libev/ev_win32.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_win32.c
    incubator/trafficserver/traffic/trunk/libev/ev_wrap.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/ev_wrap.h
    incubator/trafficserver/traffic/trunk/libev/event.c
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/event.c
    incubator/trafficserver/traffic/trunk/libev/event.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/event.h
    incubator/trafficserver/traffic/trunk/libev/event_compat.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/event_compat.h
    incubator/trafficserver/traffic/trunk/libev/import_libevent
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/import_libevent
    incubator/trafficserver/traffic/trunk/libev/libev.m4
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/libev.m4
    incubator/trafficserver/traffic/trunk/libev/update_ev_wrap
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/update_ev_wrap
    incubator/trafficserver/traffic/trunk/libev/update_symbols
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libev/update_symbols
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_config.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/libinktomi++/ink_config.h
    incubator/trafficserver/traffic/trunk/proxy/ProxyConfig.cc
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/proxy/ProxyConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/ProxyConfig.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/proxy/ProxyConfig.h
    incubator/trafficserver/traffic/trunk/proxy/RegressionSM.cc
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/proxy/RegressionSM.cc
    incubator/trafficserver/traffic/trunk/proxy/RegressionSM.h
      - copied unchanged from r915885, incubator/trafficserver/traffic/branches/dev/proxy/RegressionSM.h
Removed:
    incubator/trafficserver/traffic/trunk/iocore/cache/Inline.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/cache_test.config
    incubator/trafficserver/traffic/trunk/iocore/dns/Inline.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/Inline.cc
    incubator/trafficserver/traffic/trunk/iocore/hostdb/Inline.cc
    incubator/trafficserver/traffic/trunk/iocore/net/Inline.cc
    incubator/trafficserver/traffic/trunk/proxy/Config.cc
    incubator/trafficserver/traffic/trunk/proxy/Config.h
    incubator/trafficserver/traffic/trunk/proxy/cache_test.config
Modified:
    incubator/trafficserver/traffic/trunk/   (props changed)
    incubator/trafficserver/traffic/trunk/.gitignore
    incubator/trafficserver/traffic/trunk/Makefile.am
    incubator/trafficserver/traffic/trunk/configure.ac
    incubator/trafficserver/traffic/trunk/install/Makefile.am
    incubator/trafficserver/traffic/trunk/install/update_records.cc
    incubator/trafficserver/traffic/trunk/iocore/aio/AIO.cc
    incubator/trafficserver/traffic/trunk/iocore/aio/I_AIO.h
    incubator/trafficserver/traffic/trunk/iocore/aio/P_AIO.h
    incubator/trafficserver/traffic/trunk/iocore/block-cache/BlockCacheSegmentVConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheDir.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheDisk.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheHttp.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheLink.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CachePages.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CachePagesInternal.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CachePart.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheRead.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/CacheWrite.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/I_Cache.h
    incubator/trafficserver/traffic/trunk/iocore/cache/I_CacheDefs.h
    incubator/trafficserver/traffic/trunk/iocore/cache/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_Cache.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CacheDir.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CacheDisk.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CacheHttp.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CacheInternal.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CachePart.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_CacheTest.h
    incubator/trafficserver/traffic/trunk/iocore/cache/P_RamCache.h
    incubator/trafficserver/traffic/trunk/iocore/cache/RamCache.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/Store.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterCache.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterConfig.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterHandler.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterHandlerBase.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterMachine.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterProcessor.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/ClusterVConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/cluster/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/cluster/P_Cluster.h
    incubator/trafficserver/traffic/trunk/iocore/cluster/P_ClusterCache.h
    incubator/trafficserver/traffic/trunk/iocore/cluster/P_ClusterCacheInternal.h
    incubator/trafficserver/traffic/trunk/iocore/dns/DNS.cc
    incubator/trafficserver/traffic/trunk/iocore/dns/DNSConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/dns/I_DNS.h
    incubator/trafficserver/traffic/trunk/iocore/dns/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/dns/P_DNS.h
    incubator/trafficserver/traffic/trunk/iocore/dns/P_DNSConnection.h
    incubator/trafficserver/traffic/trunk/iocore/dns/P_DNSProcessor.h
    incubator/trafficserver/traffic/trunk/iocore/dns/P_SplitDNS.h
    incubator/trafficserver/traffic/trunk/iocore/dns/SRV.cc
    incubator/trafficserver/traffic/trunk/iocore/dns/SRV.h
    incubator/trafficserver/traffic/trunk/iocore/dns/SplitDNS.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/IOBuffer.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_EThread.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_EventSystem.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_ProtectedQueue.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_Thread.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VConnection.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_EventSystem.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_IOBuffer.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_ProtectedQueue.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_Thread.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixEThread.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixEvent.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixEventProcessor.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VConnection.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/Processor.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/ProtectedQueue.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/UnixEThread.cc
    incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc
    incubator/trafficserver/traffic/trunk/iocore/hostdb/I_HostDB.h
    incubator/trafficserver/traffic/trunk/iocore/hostdb/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc
    incubator/trafficserver/traffic/trunk/iocore/hostdb/P_HostDB.h
    incubator/trafficserver/traffic/trunk/iocore/hostdb/P_HostDBProcessor.h
    incubator/trafficserver/traffic/trunk/iocore/hostdb/P_MultiCache.h
    incubator/trafficserver/traffic/trunk/iocore/net/Connection.cc
    incubator/trafficserver/traffic/trunk/iocore/net/DetailedLog.cc
    incubator/trafficserver/traffic/trunk/iocore/net/I_Net.h
    incubator/trafficserver/traffic/trunk/iocore/net/I_NetConfig.h
    incubator/trafficserver/traffic/trunk/iocore/net/I_NetVConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/I_UDPConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/I_UDPPacket.h
    incubator/trafficserver/traffic/trunk/iocore/net/Makefile.am
    incubator/trafficserver/traffic/trunk/iocore/net/NetConfig.cc
    incubator/trafficserver/traffic/trunk/iocore/net/P_Connection.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_LibBulkIO.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_Net.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_NetAccept.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_NetVConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_SSLConfig.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_SSLNetAccept.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_SSLNetProcessor.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_SSLNetVConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UDPConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UDPNet.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UDPPacket.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNet.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetProcessor.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixPollDescriptor.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixUDPConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/SSLCertLookup.cc
    incubator/trafficserver/traffic/trunk/iocore/net/SSLConfig.cc
    incubator/trafficserver/traffic/trunk/iocore/net/SSLNet.cc
    incubator/trafficserver/traffic/trunk/iocore/net/SSLNetVConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/net/SSLUnixNet.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNet.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNetAccept.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNetPages.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNetProcessor.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc
    incubator/trafficserver/traffic/trunk/iocore/net/UnixUDPNet.cc
    incubator/trafficserver/traffic/trunk/iocore/utils/MTInteractor.cc
    incubator/trafficserver/traffic/trunk/iocore/utils/OpQueue.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/Arena.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/Compatability.h
    incubator/trafficserver/traffic/trunk/libinktomi++/Diags.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/Diags.h
    incubator/trafficserver/traffic/trunk/libinktomi++/DynArray.h
    incubator/trafficserver/traffic/trunk/libinktomi++/HostLookup.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/INK_MD5.h
    incubator/trafficserver/traffic/trunk/libinktomi++/InkTime.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/List.h
    incubator/trafficserver/traffic/trunk/libinktomi++/Makefile.am
    incubator/trafficserver/traffic/trunk/libinktomi++/Regex.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/Regex.h
    incubator/trafficserver/traffic/trunk/libinktomi++/Regression.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/Regression.h
    incubator/trafficserver/traffic/trunk/libinktomi++/SimpleDBM.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_bool.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_defs.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_defs.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_error.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_file.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_hrtime.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_inet.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_killall.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_killall.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_llqueue.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_memory.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_mutex.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_platform.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_port.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_pread_linux.c
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_queue.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_queue.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_queue_utils.c
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_regex-3.6.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_res_init.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_res_mkquery.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_resolver.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_rwlock.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_snprintf.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_sock.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_stack_trace.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_string.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_thread.h
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_time.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/inktomi++.h
    incubator/trafficserver/traffic/trunk/libinktomi++/llqueue.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/llqueue.h
    incubator/trafficserver/traffic/trunk/libinktomi++/lockfile.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ptrdef.h
    incubator/trafficserver/traffic/trunk/libinktomi++/test_freelist.cc
    incubator/trafficserver/traffic/trunk/librecords/RecCompatibility.cc
    incubator/trafficserver/traffic/trunk/librecords/RecCore.cc
    incubator/trafficserver/traffic/trunk/librecords/RecLocal.cc
    incubator/trafficserver/traffic/trunk/librecords/RecMessage.cc
    incubator/trafficserver/traffic/trunk/librecords/RecMutex.cc
    incubator/trafficserver/traffic/trunk/librecords/RecProcess.cc
    incubator/trafficserver/traffic/trunk/librecords/RecTree.cc
    incubator/trafficserver/traffic/trunk/librecords/RecUtils.cc
    incubator/trafficserver/traffic/trunk/m4/tcl.m4
    incubator/trafficserver/traffic/trunk/proxy/AbstractBuffer.cc
    incubator/trafficserver/traffic/trunk/proxy/CacheControl.cc
    incubator/trafficserver/traffic/trunk/proxy/CacheInspectorAllow.cc
    incubator/trafficserver/traffic/trunk/proxy/ControlBase.cc
    incubator/trafficserver/traffic/trunk/proxy/ControlMatcher.cc
    incubator/trafficserver/traffic/trunk/proxy/CoreUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/CoreUtils.h
    incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/EventName.cc
    incubator/trafficserver/traffic/trunk/proxy/ICP.cc
    incubator/trafficserver/traffic/trunk/proxy/ICPConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/IPAllow.cc
    incubator/trafficserver/traffic/trunk/proxy/Initialize.cc
    incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/InkAPIInternal.h
    incubator/trafficserver/traffic/trunk/proxy/InkAPITest.cc
    incubator/trafficserver/traffic/trunk/proxy/InkXml.cc
    incubator/trafficserver/traffic/trunk/proxy/Main.cc
    incubator/trafficserver/traffic/trunk/proxy/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/MuxVC.cc
    incubator/trafficserver/traffic/trunk/proxy/MuxVC.h
    incubator/trafficserver/traffic/trunk/proxy/ParentSelection.cc
    incubator/trafficserver/traffic/trunk/proxy/ParentSelection.h
    incubator/trafficserver/traffic/trunk/proxy/Plugin.cc
    incubator/trafficserver/traffic/trunk/proxy/PluginDB.cc
    incubator/trafficserver/traffic/trunk/proxy/PluginVC.cc
    incubator/trafficserver/traffic/trunk/proxy/PluginVC.h
    incubator/trafficserver/traffic/trunk/proxy/ReverseProxy.cc
    incubator/trafficserver/traffic/trunk/proxy/SimpleHttp.cc
    incubator/trafficserver/traffic/trunk/proxy/SocksProxy.cc
    incubator/trafficserver/traffic/trunk/proxy/StatPages.cc
    incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc
    incubator/trafficserver/traffic/trunk/proxy/TestHook.cc
    incubator/trafficserver/traffic/trunk/proxy/Transform.cc
    incubator/trafficserver/traffic/trunk/proxy/TransformInternal.h
    incubator/trafficserver/traffic/trunk/proxy/Update.cc
    incubator/trafficserver/traffic/trunk/proxy/Update.h
    incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPIPrivateIOCore.h
    incubator/trafficserver/traffic/trunk/proxy/config/storage.config
    incubator/trafficserver/traffic/trunk/proxy/congest/Congestion.cc
    incubator/trafficserver/traffic/trunk/proxy/congest/CongestionTest.cc
    incubator/trafficserver/traffic/trunk/proxy/congest/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/cust_log_fmt_cnvrt.cc
    incubator/trafficserver/traffic/trunk/proxy/dns_cache/DNS_cache.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HTTP.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HdrTSOnly.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HdrTest.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HdrToken.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/HdrUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/MIME.cc
    incubator/trafficserver/traffic/trunk/proxy/hdrs/SDKAllocator.h
    incubator/trafficserver/traffic/trunk/proxy/http2/Hash_Table.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpCacheSM.h
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpClientSession.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpClientSession.h
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpConfig.h
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpDebugNames.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpServerSession.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpServerSession.h
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactCache.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlMappingPathIndex.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.h
    incubator/trafficserver/traffic/trunk/proxy/logcat.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/Log.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogAccess.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessICP.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogBuffer.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogBuffer.h
    incubator/trafficserver/traffic/trunk/proxy/logging/LogCollationClientSM.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogCollationHostSM.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogField.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogFieldAliasMap.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogFile.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogFilter.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogFormat.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogHost.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/logstats.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/AddConfigFilesHere.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Alarms.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/AutoConf.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/MultiFile.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessRecords.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/StatAggregation.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/WebPluginList.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/CfgContextImpl.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/CfgContextManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/CfgContextUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/CoreAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/CoreAPI.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/EventCallback.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/EventCallback.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/EventControlMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/INKMgmtAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/MgmtPlugin.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/NetworkUtilsLocal.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/TSControlMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/include/INKMgmtAPI.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/APITestCliRemote.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/CoreAPIRemote.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/EventRegistration.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/EventRegistration.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/NetworkUtilsRemote.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/NetworkUtilsRemote.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLIconfigure.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLIeventHandler.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLIhelp.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLIlineBuffer.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLIlineBuffer.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CLImonitor.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/CliMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/FSM.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliDisplay.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/ConfigCmd.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/ConfigCmd.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/ConfigUpgradeReadCmd.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/ConfigUpgradeWriteCmd.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cli_scriptpaths.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cluster/ClusterCom.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cluster/VMap.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cluster/VMap.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/html2/tune/navigation_tree.xmlcpp
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/preparse/IPRange.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/preparse/RemapReadConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/preparse/StoreReadConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/stats/StatProcessor.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/stats/StatType.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/stats/StatXML.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/ConfigAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/ConfigAPI.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/McastSnoop.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/NetConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/ShmemClean.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/SysAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/SysAPI.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/VIPConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/EnvBlock.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/IpLookup.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/MgmtConverter.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/MgmtPing.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/MgmtSchema.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/MgmtServerRPC.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/MgmtUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/SimpleQueue.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/SimpleQueue.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/utils/WebMgmtUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebCompatibility.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebCompatibility.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebConfigRender.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebGlobals.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpAuth.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpContext.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpLog.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpMessage.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpRender.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpSession.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttpTree.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebOverview.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebReconfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebUtils.cc
    incubator/trafficserver/traffic/trunk/proxy/signals.cc
    incubator/trafficserver/traffic/trunk/proxy/stats/CoupledStats.cc
    incubator/trafficserver/traffic/trunk/proxy/stats/CoupledStats.h
    incubator/trafficserver/traffic/trunk/proxy/stats/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/stats/Stats.cc

Propchange: incubator/trafficserver/traffic/trunk/
------------------------------------------------------------------------------
    svn:mergeinfo = /incubator/trafficserver/traffic/branches/dev:891823-915885

Modified: incubator/trafficserver/traffic/trunk/.gitignore
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/.gitignore?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/.gitignore (original)
+++ incubator/trafficserver/traffic/trunk/.gitignore Wed Feb 24 18:48:42 2010
@@ -13,6 +13,8 @@
 /build-aux
 /configure
 /tags
+/stamp-h1
+/config.h
 
 Makefile
 config.log

Modified: incubator/trafficserver/traffic/trunk/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/Makefile.am?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/Makefile.am Wed Feb 24 18:48:42 2010
@@ -8,7 +8,6 @@
 #  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

Modified: incubator/trafficserver/traffic/trunk/configure.ac
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/configure.ac?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/configure.ac (original)
+++ incubator/trafficserver/traffic/trunk/configure.ac Wed Feb 24 18:48:42 2010
@@ -23,6 +23,7 @@
 # 4. CHECK FOR LIBRARIES
 # 5. CHECK FOR HEADERS
 # 6. OUTPUT FILES
+# 7. autoheader TEMPLATES
 
 # -----------------------------------------------------------------------------
 # 1. INITIALIZATION
@@ -33,6 +34,7 @@
 AM_INIT_AUTOMAKE([-Wall -Werror foreign no-installinfo no-installman 1.9.2])
 AC_CONFIG_SRCDIR([proxy/Main.cc])
 AC_CONFIG_MACRO_DIR([m4])
+AM_CONFIG_HEADER([config.h])
 
 #
 # Host detection
@@ -52,16 +54,22 @@
   freebsd*)
     AC_DEFINE_UNQUOTED([HOST_OS],[freebsd])
     AC_DEFINE_UNQUOTED([freebsd],[1])
-    LDFLAGS="${LDFLAGS} -L/usr/local/lib"
     ;;
-  *)         AC_DEFINE_UNQUOTED([HOST_OS],[unknown]) ;;
+  solaris*)
+    AC_DEFINE_UNQUOTED([HOST_OS],[solaris])
+    AC_DEFINE_UNQUOTED([solaris],[1])
+    ;;
+  *)         
+    AC_DEFINE_UNQUOTED([HOST_OS],[unknown]) 
+    ;;
 esac
 
 #
 # Build environment
 #
 
-build_person="`whoami`"
+build_person="`id -nu`"
+build_group="`id -ng`"
 build_machine="`uname -n`"
 AC_DEFINE_UNQUOTED(BUILD_PERSON, "$build_person")
 AC_DEFINE_UNQUOTED(BUILD_MACHINE, "$build_machine")
@@ -135,6 +143,19 @@
 )
 
 #
+# libev
+#
+
+AC_MSG_CHECKING([whether to use libev even if not required])
+AC_ARG_ENABLE([libev],
+  [AS_HELP_STRING([--enable-libev],[use libev even if not required])],
+  [],
+  [enable_libev=no]
+)
+AC_MSG_RESULT([$enable_libev])
+
+
+#
 # Micro
 #
 
@@ -183,7 +204,10 @@
    AC_SUBST([ink_with_modules_local],[""])
    AC_SUBST([ink_with_modules_process],[""])
   ],
-  [AC_SUBST([IOCORE_MODULARIZED_DEFS],["-DFIXME_NONMODULAR -DSPLIT_DNS -DNON_MODULAR -DHTTP_CACHE"])
+  [AC_DEFINE([FIXME_NONMODULAR])
+   AC_DEFINE([SPLIT_DNS])
+   AC_DEFINE([NON_MODULAR])
+   AC_DEFINE([HTTP_CACHE])
    AC_SUBST([ink_with_modules_def],["-DREC_BUILD_MGMT2"])
    AC_SUBST([ink_with_modules_local],["-DLOCAL_MANAGER"])
    AC_SUBST([ink_with_modules_process],["-DPROCESS_MANAGER"])
@@ -216,11 +240,9 @@
 )
 AC_MSG_RESULT([$enable_webui])
 AS_IF([test "x$enable_webui" = "xno"],
-  [AC_DEFINE([NO_WEBUI])
-  ]
+  [AC_DEFINE([NO_WEBUI],1,[disable Web UI])]
 )
 
-
 #
 # API
 #
@@ -262,6 +284,7 @@
 AS_IF([test "x$with_architecture" = "xyes"], [echo "--with-architecture needs an argument"; AS_EXIT()]
 )
 
+
 #
 # DB support. By default, we require sqlite3, but we also optionally support BDB. You can
 # disable / flip these behaviors with these flags.
@@ -285,6 +308,19 @@
 )
 AC_MSG_RESULT([$with_libdb])
 
+# Berkeley DB (bdb)
+AC_ARG_WITH([bdb],
+   [AC_HELP_STRING([--with-bdb=DIR],[Berkeley DB installation directory])],
+   [with_bdb=$withval],
+   [with_bdb=no]   
+)
+
+if test "x$with_bdb" != "xno" ; then
+   PATH_BDB_INC="$with_bdb/include"
+   PATH_BDB_LIB="$with_bdb/lib"
+fi
+
+
 # Make sure there is at least one supported backend DB for SimpleDBM
 if test "${with_sqlite3}" = "no" -a "${with_libdb}" = "no"; then
    AC_MSG_ERROR([Need at least one DB backend, --with-sqlite3 and --with-libdb are supported])
@@ -322,42 +358,31 @@
 # 4) (in first kludge mode block...) obtain any further CFLAG-type additions.
 # 5) Test compilers with all flags set.
 
-# These are shortcuts used in combination for the compiler options below
-common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
-debug_opt="-ggdb3 $common_opt"
-release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
-cxx_opt="-Wno-invalid-offsetof"
-
-cc_oflag_opt=$release_opt
-cc_oflag_dbg=$debug_opt
-cxx_oflag_opt="$release_opt $cxx_opt"
-cxx_oflag_dbg="$debug_opt $cxx_opt"
-
-CC=gcc
-CXX=g++
-
-SHARED_CFLAGS=-fPIC
-SHARED_LDFLAGS=-shared
-SHARED_CXXFLAGS=-fPIC
-SHARED_CXXLINKFLAGS=-shared
-
 # AC_PROG can sometimes mangle CFLAGS etc.
 # in particular, on Linux they insert -g -O2, here we preserve any user CFLAGS
 
+#CC=gcc
+#CXX=g++
+
 REAL_CFLAGS="${CFLAGS}"
 REAL_CXXFLAGS="${CXXFLAGS}"
 REAL_CCASFLAGS="${CCASFLAGS}"
 
+AC_CHECK_PROG([CCACHE],[ccache],[ccache],[])
+AC_PROG_CC
+AC_PROG_CXX
+if test "x${CCACHE}" = "xccache" ;then
+ CC="$CCACHE $CC"
+ CXX="$CCACHE $CXX"
+fi
+AC_PROG_CPP
+AC_PROG_CXXCPP
 AM_PROG_AS
 AC_PROG_AWK
 AC_PROG_LN_S
 AC_PROG_INSTALL
 AC_PROG_LIBTOOL
 
-CFLAGS="${REAL_CFLAGS}"
-CXXFLAGS="${REAL_CXXFLAGS}"
-CCASFLAGS="${REAL_CCASFLAGS}"
-
 AC_PATH_PROG([DOXYGEN], [doxygen]) # needed for Doxygen
 AC_PATH_PROG([PERL],[perl],[not found])
 AS_IF([test "x$PERL" = "xnot found"],
@@ -366,7 +391,69 @@
 AC_ARG_VAR([DOXYGEN], [full path of Doxygen executable])
 AC_ARG_VAR([PERL], [full path of Perl executable])
 
-AC_CHECK_PROG([CCACHE],[ccache],[ccache],[])
+CFLAGS="${REAL_CFLAGS}"
+CXXFLAGS="${REAL_CXXFLAGS}"
+CCASFLAGS="${REAL_CCASFLAGS}"
+
+base_cc=`basename $CC`
+# These are shortcuts used in combination for the compiler options below
+case $host_os in
+  linux*)
+    common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
+    debug_opt="-ggdb3 $common_opt"
+    release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
+    cxx_opt="-Wno-invalid-offsetof"
+    ;;
+  darwin*)
+    common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
+    debug_opt="-ggdb3 $common_opt"
+    release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
+    cxx_opt="-Wno-invalid-offsetof"
+    CPPFLAGS="$CPPFLAGS -I/opt/local/include"
+    LDFLAGS="${LDFLAGS} -L/opt/local/lib"
+    ;;
+  freebsd*)
+    common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
+    debug_opt="-ggdb3 $common_opt"
+    release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
+    cxx_opt="-Wno-invalid-offsetof"
+    LDFLAGS="${LDFLAGS} -L/usr/local/lib"
+    ;;
+  solaris*)
+    if test "x${base_cc}" = "xcc" ;then
+      common_opt="-mt -m64 -D__WORDSIZE=64" # FIXME: This should be detected
+      debug_opt="-g $common_opt"
+      release_opt="-g $common_opt -xO3"
+      cxx_opt="-library=stlport4 -erroff"    
+      AC_DEFINE([_POSIX_PTHREAD_SEMANTICS],1,
+       [posix thread semantics]
+      )
+    else # gcc
+      common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
+      debug_opt="-ggdb3 $common_opt"
+      release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
+      cxx_opt="-Wno-invalid-offsetof"
+    fi
+    LDFLAGS="${LDFLAGS} -L/lib -L/usr/local/lib"
+    ;;
+  *)         
+    common_opt="-pipe -Wall -Werror -Wno-char-subscripts -Wno-write-strings"
+    debug_opt="-ggdb3 $common_opt"
+    release_opt="-g $common_opt -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing"
+    cxx_opt="-Wno-invalid-offsetof"
+    ;;
+esac
+
+cc_oflag_opt=$release_opt
+cc_oflag_dbg=$debug_opt
+cxx_oflag_opt="$release_opt $cxx_opt"
+cxx_oflag_dbg="$debug_opt $cxx_opt"
+
+SHARED_CFLAGS=-fPIC
+SHARED_LDFLAGS=-shared
+SHARED_CXXFLAGS=-fPIC
+SHARED_CXXLINKFLAGS=-shared
+
 
 #
 # Here are all the extra linux-specific C(XX)FLAGS additions and
@@ -383,18 +470,21 @@
 AC_CHECK_SIZEOF(int *) # test for 64-bit pointers, this permits CFLAGS=-m32 for 32-bit compiles on 64-bit systems
 
 # add a default march if there is not one set
-if test "${ac_cv_sizeof_int_p}" = "4"; then
-    case $CFLAGS in
-  *\-march=*) : ;;
-  *) CFLAGS="$CFLAGS -march=i586" ;;
-esac
-
-    case $CXXFLAGS in
-  *\-march=*) : ;;
-  *) CXXFLAGS="$CXXFLAGS -march=i586" ;;
-esac
+if test "x${GCC}" = "xyes"; then
+ if test "${ac_cv_sizeof_int_p}" = "4"; then
+  case $CFLAGS in
+    *\-march=*) : ;;
+    *) CFLAGS="$CFLAGS -march=i586" ;;
+  esac
+
+  case $CXXFLAGS in
+    *\-march=*) : ;;
+    *) CXXFLAGS="$CXXFLAGS -march=i586" ;;
+  esac
+ fi
 fi
 
+# GCC atomics
 AC_CACHE_CHECK([for gcc atomic builtins],[support_cv_atomic],
 [AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[
 int i, x =0;
@@ -415,7 +505,18 @@
   [Reentrant version of several functions get declared.]
 )
 
-EXTRA_CXX_LDFLAGS="-rdynamic"
+case $host_os in
+  linux*)
+    EXTRA_CXX_LDFLAGS="-rdynamic"
+    ;;
+  darwin*)
+    ;;
+  solaris*)
+    ;;	
+  *)         
+    EXTRA_CXX_LDFLAGS="-rdynamic"
+   ;;
+esac
 
     #
     # _Here_ is where we go ahead and add the _optimizations_ to already
@@ -436,13 +537,6 @@
     # Note:  This macro may set certain parameters when run.
     #
 
-AC_PROG_CC
-AC_PROG_CXX
-CC="$CCACHE $CC"
-CXX="$CCACHE $CXX"
-
-AC_PROG_CPP
-AC_PROG_CXXCPP
 
 # -----------------------------------------------------------------------------
 # 4. CHECK FOR LIBRARIES
@@ -462,13 +556,15 @@
 AC_CHECK_LIB([rt],[clock_gettime],[AC_SUBST([LIBRT],["-lrt"])])
 AC_CHECK_LIB([posix4],[clock_gettime],[AC_SUBST([LIBRT],["-lposix4"])])
 AC_CHECK_LIB([iconv],[iconv_open],[AC_SUBST([LIBICONV],["-liconv"])])
+AC_CHECK_LIB([iconv],[libiconv_open],[AC_SUBST([LIBICONV],["-liconv"])])
+AC_CHECK_LIB([ev],[ev_sleep],[AC_SUBST([LIBEV],["-lev"])])
 
 AC_CHECK_LIB([ssl],[SSL_CTX_new],
   [AC_SUBST([LIBSSL],["-lssl -lcrypto"])
    AC_DEFINE([HAVE_LIBSSL],[1],[Define if you have libssl])
   ],
   [AC_MSG_FAILURE([check for libssl failed. Have you installed openssl-devel?])],
-  [-lcrypto -lgcc]
+  [-lcrypto]
 )
 
 #
@@ -482,8 +578,26 @@
 SC_LOAD_TCLCONFIG
 
 # expect tclConfig.sh to populate TCL_LIB_FLAG and TCL_INCLUDE_SPEC
+case $host_os in
+  darwin*)
+    TCL_LIB_FLAG="-ltcl" # OSX fails to populate this variable
+    ;;
+  *)         
+   ;;
+esac
 AC_SUBST([LIBTCL],[$TCL_LIB_FLAG])
-CPPFLAGS="$CPPFLAGS $TCL_INCLUDE_SPEC"
+
+case $host_os in
+  freebsd*)
+    CPPFLAGS="$CPPFLAGS -I/usr/local/include $TCL_INCLUDE_SPEC"
+    ;;
+  solaris*)
+    CPPFLAGS="$CPPFLAGS -I/usr/local/include $TCL_INCLUDE_SPEC"
+    ;;
+  *)         
+   CPPFLAGS="$CPPFLAGS $TCL_INCLUDE_SPEC"
+   ;;
+esac
 
 AC_CHECK_LIB([expat],[XML_SetUserData],
   [AC_SUBST([LIBEXPAT],["-lexpat"])],
@@ -499,41 +613,82 @@
   )
 fi
 
+
 if test "x${with_libdb}" = "xyes"; then
+  # Berkeley DB check: 
+  # TODO: Better checking for versions/directories similar to TCL
   ts_have_db=0
+  save_LDFLAGS="$LDFLAGS"
+  save_CPPFLAGS="$CPPFLAGS"
+  if test "x$with_bdb" != "xno" ; then
+    case $host_os in
+      solaris*)
+        LDFLAGS="$LDFLAGS -L$PATH_BDB_LIB -R$PATH_BDB_LIB" 
+        CPPFLAGS="$CPPFLAGS -I$PATH_BDB_INC"
+        ;;
+      *)         
+        LDFLAGS="$LDFLAGS -L$PATH_BDB_LIB" 
+        CPPFLAGS="$CPPFLAGS -I$PATH_BDB_INC"
+        ;;
+    esac
+  fi
+
+  AC_CHECK_LIB([db],[__db_open],
+    [LIBDB="-ldb"
+     ts_have_db=1
+    ],
+     [AC_MSG_WARN([check for libdb failed. Have you installed Berkeley DB e.g. BerkeleyDB.4.7?])
+     LDFLAGS="$save_LDFLAGS"
+     CPPFLAGS="$save_CPPFLAGS"
+    ]
+  )
+
   AC_CHECK_LIB([db],[__db185_open],
     [LIBDB="-ldb"
+     ts_have_db=1
     ],
     [AC_MSG_WARN([check for libdb failed. Have you installed db4-devel?])]
   )
 
   AC_CHECK_LIB([c],[dbopen],
       [LIBDB=""
+      ts_have_db=1
       ])
   AC_SUBST([LIBDB])
+
+  if test "$ts_have_db" = "0"; then
+    AC_MSG_FAILURE([No DB interface found, try specifying --with-bdb=<Berkeley DB DIR>])
+  fi
 fi
 
-#if test "$ts_have_db" = "0"; then
-#    AC_MSG_FAILURE([No DB interface found])
-#fi
+AC_CHECK_FUNCS([clock_gettime kqueue epoll_ctl posix_memalign lrand48_r srand48_r eventfd port_create])
+
 
 AC_CHECK_LIB([pcre], [pcre_exec], 
   [AC_SUBST([LIBPCRE],["-lpcre"])],
   [AC_MSG_FAILURE([check for pcre failed. Have you installed pcre-devel?])],
 )
 
-AC_CHECK_FUNCS([clock_gettime kqueue epoll_ctl posix_memalign lrand48_r srand48_r])
-
-if test "$ac_cv_func_epoll_ctl" = "yes"; then
+if test "x$enable_libev" = "xyes"; then
+   AC_DEFINE([USE_LIBEV])
+   have_good_poller=1
+elif test "$ac_cv_func_epoll_ctl" = "yes"; then
    AC_DEFINE([USE_EPOLL])
    have_good_poller=1
+   AC_MSG_NOTICE([Using epoll event interface])
 elif test "$ac_cv_func_kqueue" = "yes"; then
    AC_DEFINE([USE_KQUEUE])
    have_good_poller=1
+   AC_MSG_NOTICE([Using kqueue event interface])
+elif test "$ac_cv_func_port_create" = "yes"; then
+   AC_DEFINE([USE_PORT])
+   have_good_poller=1
+   AC_MSG_NOTICE([Using port event interface])
 else
-    AC_MSG_FAILURE([No suitable polling interface found])
+   AC_MSG_FAILURE([No suitable polling interface found])
 fi
 
+
 # For SunPro 5.2 - we need the demangle symbol for
 #  ink_stack_trace.cc in libinktomi++.  Because this
 #  library is part of the SunPro distribution, we need
@@ -579,13 +734,16 @@
                   sys/sysinfo.h \
                   sys/sysctl.h \
                   sys/systeminfo.h \
-                  netinet/ip.h \
+                  netinet/in.h \
+                  netinet/in_systm.h \
                   sys/ioctl.h \
                   sys/byteorder.h \
                   sys/sockio.h \
                   sys/sysctl.h \
                   sys/sysinfo.h \
                   sys/systeminfo.h \
+		  arpa/inet.h \
+		  arpa/nameser.h \
                   arpa/nameser_compat.h \
                   execinfo.h \
                   netdb.h \
@@ -602,8 +760,38 @@
                   stropts.h \
                   sys/mount.h \
                   sys/param.h \
+		  sys/sysmacros.h \
+                  math.h \
+		  net/ppp_defs.h \
                   ], [], [])
 
+AC_CHECK_HEADERS([pcre/pcre.h], 
+                 [], [],[])
+
+AC_CHECK_HEADERS([netinet/ip.h], [], [],
+                 [[#ifdef HAVE_SYS_TYPES_H
+                    #include <sys/types.h>
+                   #endif
+                   #ifdef HAVE_NETINET_IN_H
+                    #include <netinet/in.h>
+                   #endif
+                 ]])
+
+AC_CHECK_HEADERS([netinet/ip_icmp.h], [], [],
+                 [[#ifdef HAVE_SYS_TYPES_H
+                    #include <sys/types.h>
+                   #endif
+                   #ifdef HAVE_NETINET_IN_H
+                    #include <netinet/in.h>
+                   #endif
+                   #ifdef HAVE_NETINET_IP_H
+                    #include <netinet/ip.h>
+                   #endif
+                   #ifdef HAVE_NETINET_IN_SYSTM_H
+                    #include <netinet/in_systm.h>
+                   #endif
+                 ]])
+
 if test "x${with_libdb}" = "xyes"; then
 AC_CHECK_HEADERS([db_185.h \
                   db.h \
@@ -622,14 +810,16 @@
 # use modular IOCORE 
 # 
 iocore_include_dirs="-I\$(top_srcdir)/librecords \
- -I\$(top_srcdir)/iocore/utils \
- -I\$(top_srcdir)/iocore/cache \
- -I\$(top_srcdir)/iocore/net \
+ -I\$(top_srcdir)/libinktomi++ \
  -I\$(top_srcdir)/iocore/eventsystem \
+ -I\$(top_srcdir)/iocore/net \
  -I\$(top_srcdir)/iocore/aio \
- -I\$(top_srcdir)/iocore/dns \
  -I\$(top_srcdir)/iocore/hostdb \
- -I\$(top_srcdir)/iocore/cluster" 
+ -I\$(top_srcdir)/iocore/cache \
+ -I\$(top_srcdir)/iocore/cluster \
+ -I\$(top_srcdir)/iocore/utils \
+ -I\$(top_srcdir)/iocore/dns \
+ -I\$(top_srcdir)/libev"
 
 AC_DEFINE([HTTP_CACHE])
 
@@ -640,6 +830,24 @@
 
 MGMT_DEFS="$MGMT_DEFS -DMGMT_USE_SYSLOG"
 
+AC_MSG_NOTICE([Build using CC=$CC])
+AC_MSG_NOTICE([Build using CXX=$CXX])
+AC_MSG_NOTICE([Build using CPP=$CPP])
+AC_MSG_NOTICE([Build using CCAS=$CCAS])
+AC_MSG_NOTICE([Build using CFLAGS=$CFLAGS])
+AC_MSG_NOTICE([Build using SHARED_CFLAGS=$SHARED_CFLAGS])
+AC_MSG_NOTICE([Build using CXXFLAGS=$CXXFLAGS])
+AC_MSG_NOTICE([Build using SHARED_CXXFLAGS=$SHARED_CXXFLAGS])
+AC_MSG_NOTICE([Build using SHARED_CXXLINKFLAGS=$SHARED_LINKCXXFLAGS])
+AC_MSG_NOTICE([Build using CPPFLAGS=$CPPFLAGS])
+AC_MSG_NOTICE([Build using CCASFLAGS=$CCASFLAGS])
+AC_MSG_NOTICE([Build using LDFLAGS=$LDFLAGS])
+AC_MSG_NOTICE([Build using SHARED_LDFLAGS=$SHARED_LDFLAGS])
+AC_MSG_NOTICE([Build using EXTRA_CC_LDFLAGS=$EXTRA_CC_LDFLAGS])
+AC_MSG_NOTICE([Build using EXTRA_CXX_LDFLAGS=$EXTRA_CXX_LDFLAGS])
+AC_MSG_NOTICE([Build using MGMT_DEFS=$MGMT_DEFS])
+AC_MSG_NOTICE([Build using API_DEFS=$API_DEFS])
+
 AC_SUBST([API_DEFS])
 AC_SUBST([CC])
 AC_SUBST([CFLAGS])
@@ -710,5 +918,51 @@
 AC_CONFIG_FILES([proxy/mgmt2/web2/Makefile])
 AC_CONFIG_FILES([proxy/stats/Makefile])
 
+# -----------------------------------------------------------------------------
+# 7. autoheader TEMPLATES
+
+AH_TEMPLATE([BUILD_MACHINE],[BUILD_MACHINE])
+AH_TEMPLATE([BUILD_PERSON],[BUILD_PERSON])
+AH_TEMPLATE([DEBUG],[DEBUG])
+AH_TEMPLATE([HAVE_DEMANGLE],[HAVE_DEMANGLE])
+AH_TEMPLATE([HOST_OS],[HOST_OS])
+AH_TEMPLATE([HTTP_CACHE],[HTTP_CACHE])
+AH_TEMPLATE([INKDISKAIO],[INKDISKAIO])
+AH_TEMPLATE([INK_NO_ACL],[INK_NO_ACL])
+AH_TEMPLATE([INK_NO_API],[INK_NO_API])
+AH_TEMPLATE([INK_NO_CLUSTER],[INK_NO_CLUSTER])
+AH_TEMPLATE([INK_NO_DIAGS],[INK_NO_DIAGS])
+AH_TEMPLATE([INK_NO_FTP],[INK_NO_FTP])
+AH_TEMPLATE([INK_NO_HOSTDB],[INK_NO_HOSTDB])
+AH_TEMPLATE([INK_NO_ICP],[INK_NO_ICP])
+AH_TEMPLATE([INK_NO_LOG],[INK_NO_LOG])
+AH_TEMPLATE([INK_NO_REMAP],[INK_NO_REMAP])
+AH_TEMPLATE([INK_NO_REVERSE],[INK_NO_REVERSE])
+AH_TEMPLATE([INK_NO_SOCKS],[INK_NO_SOCKS])
+AH_TEMPLATE([INK_NO_STAT_PAGES],[INK_NO_STAT_PAGES])
+AH_TEMPLATE([INK_NO_TESTS],[INK_NO_TESTS])
+AH_TEMPLATE([INK_NO_TRANSFORM],[INK_NO_TRANSFORM])
+AH_TEMPLATE([INK_SINGLE_THREADED],[INK_SINGLE_THREADED])
+AH_TEMPLATE([INK_USE_MUTEX_FOR_ATOMICLISTS],[INK_USE_MUTEX_FOR_ATOMICLISTS])
+AH_TEMPLATE([INK_USE_MUTEX_FOR_FREELISTS],[INK_USE_MUTEX_FOR_FREELISTS])
+AH_TEMPLATE([MODULARIZED],[MODULARIZED])
+AH_TEMPLATE([NEED_UNION_SEMUN],[NEED_UNION_SEMUN])
+AH_TEMPLATE([PURIFY],[PURIFY])
+AH_TEMPLATE([TS_MICRO],[TS_MICRO])
+AH_TEMPLATE([USE_DIAGS],[USE_DIAGS])
+AH_TEMPLATE([USE_EPOLL],[USE_EPOLL])
+AH_TEMPLATE([USE_KQUEUE],[USE_KQUEUE])
+AH_TEMPLATE([USE_LIBEV],[USE_LIBEV])
+AH_TEMPLATE([USE_MD5_FOR_MMH],[USE_MD5_FOR_MMH])
+AH_TEMPLATE([USE_PORT],[USE_PORT])
+AH_TEMPLATE([_NO_FREELIST],[_NO_FREELIST])
+AH_TEMPLATE([darwin],[darwin])
+AH_TEMPLATE([freebsd],[freebsd])
+AH_TEMPLATE([linux],[linux])
+AH_TEMPLATE([solaris],[solaris])
+AH_TEMPLATE([FIXME_NONMODULAR],[FIXME_NONMODULAR])
+AH_TEMPLATE([SPLIT_DNS],[SPLIT_DNS])
+AH_TEMPLATE([NON_MODULAR],[NON_MODULAR])
+
 AC_OUTPUT
 

Modified: incubator/trafficserver/traffic/trunk/install/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/install/Makefile.am?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/install/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/install/Makefile.am Wed Feb 24 18:48:42 2010
@@ -35,5 +35,5 @@
 update_records_LDADD =	\
 			$(top_builddir)/proxy/mgmt2/librecords.a \
 			$(top_builddir)/libinktomi++/libinktomi++.a \
-			@LIBTHREAD@ @LIBRT@ @LIBTCL@ @LIBDL@ @LIBSSL@
+			@LIBICONV@ @LIBTHREAD@ @LIBRT@ @LIBTCL@ @LIBDL@ @LIBSSL@
 

Modified: incubator/trafficserver/traffic/trunk/install/update_records.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/install/update_records.cc?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/install/update_records.cc (original)
+++ incubator/trafficserver/traffic/trunk/install/update_records.cc Wed Feb 24 18:48:42 2010
@@ -41,6 +41,7 @@
 
  */
 
+#include "ink_config.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>

Modified: incubator/trafficserver/traffic/trunk/iocore/aio/AIO.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/aio/AIO.cc?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/aio/AIO.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/aio/AIO.cc Wed Feb 24 18:48:42 2010
@@ -21,32 +21,27 @@
   limitations under the License.
  */
 
-/****************************************************************************
+/*
+ * Async Disk IO operations.
+ */
 
-  Async Disk IO operations.
+#include "P_AIO.h"
 
-  
-  
- ****************************************************************************/
+#define MAX_DISKS_POSSIBLE 100
 
-#include "P_AIO.h"
 // globals
-#define MAX_DISKS_POSSIBLE 100
-#define SLEEP_TIME 100
 
+int ts_config_with_inkdiskio = 0;
 /* structure to hold information about each file descriptor */
 AIO_Reqs *aio_reqs[MAX_DISKS_POSSIBLE];
-
+/* number of unique file descriptors in the aio_reqs array */
+volatile int num_filedes = 0;
 RecRawStatBlock *aio_rsb = NULL;
 // acquire this mutex before inserting a new entry in the aio_reqs array.
 // Don't need to acquire this for searching the array
 static ink_mutex insert_mutex;
-/* number of unique file descriptors in the aio_reqs array */
-volatile int num_filedes = 0;
 Continuation *aio_err_callbck = 0;
-
 RecInt cache_config_threads_per_disk = 12;
-static RecInt cache_config_aio_sleep_time = SLEEP_TIME;
 
 // AIO Stats
 inku64 aio_num_read = 0;
@@ -54,13 +49,14 @@
 inku64 aio_num_write = 0;
 inku64 aio_bytes_written = 0;
 
+static void aio_move(AIO_Reqs *req);
 
-////////////////////////////////////////////////////////////////////////
-////////        Stats            Stuff                            //////
-////////////////////////////////////////////////////////////////////////
+/*
+ * Stats
+ */
 
 static int
-aio_stats_cb(const char *name, RecDataT data_type, RecData * data, RecRawStatBlock * rsb, int id)
+aio_stats_cb(const char *name, RecDataT data_type, RecData *data, RecRawStatBlock *rsb, int id)
 {
   (void) data_type;
   (void) rsb;
@@ -75,7 +71,6 @@
   RecGetGlobalRawStatSum(aio_rsb, id, &sum);
   RecGetGlobalRawStatCount(aio_rsb, id, &count);
 
-
   ink64 time_diff = ink_hrtime_to_msec(now - count);
   if (time_diff == 0) {
     data->rec_float = 0.0;
@@ -85,18 +80,15 @@
   case AIO_STAT_READ_PER_SEC:
     new_val = aio_num_read;
     break;
-
   case AIO_STAT_WRITE_PER_SEC:
     new_val = aio_num_write;
     break;
-
   case AIO_STAT_KB_READ_PER_SEC:
     new_val = aio_bytes_read >> 10;
     break;
   case AIO_STAT_KB_WRITE_PER_SEC:
     new_val = aio_bytes_written >> 10;
     break;
-
   default:
     ink_assert(0);
   }
@@ -117,13 +109,10 @@
 int
 AIOTestData::ink_aio_stats(int event, void *d)
 {
-
   ink_hrtime now = ink_get_hrtime();
   double time_msec = (double) (now - start) / (double) HRTIME_MSECOND;
-  for (int i = 0; i < num_filedes; i++) {
-
+  for (int i = 0; i < num_filedes; i++)
     printf("%0.2f\t%i\t%i\t%i\n", time_msec, aio_reqs[i]->filedes, aio_reqs[i]->pending, aio_reqs[i]->queued);
-  }
   printf("Num Requests: %i Num Queued: %i num Moved: %i\n\n", data->num_req, data->num_queue, data->num_temp);
   eventProcessor.schedule_in(this, HRTIME_MSECONDS(50), ET_CALL);
   return EVENT_DONE;
@@ -131,9 +120,9 @@
 
 #endif // AIO_STATS
 
-////////////////////////////////////////////////////////////////////////
-////////        Common           Stuff                            //////
-////////////////////////////////////////////////////////////////////////
+/*
+ * Common
+ */
 AIOCallback *
 new_AIOCallback(void)
 {
@@ -141,7 +130,7 @@
 };
 
 void
-ink_aio_set_callback(Continuation * callback)
+ink_aio_set_callback(Continuation *callback)
 {
   aio_err_callbck = callback;
 }
@@ -166,12 +155,8 @@
   ink_mutex_init(&insert_mutex, NULL);
   IOCORE_RegisterConfigInteger(RECT_CONFIG, "proxy.config.cache.threads_per_disk", 4, RECU_NULL, RECC_NULL, NULL);
   IOCORE_ReadConfigInteger(cache_config_threads_per_disk, "proxy.config.cache.threads_per_disk");
-
-  IOCORE_RegisterConfigInteger(RECT_CONFIG, "proxy.config.cache.aio_sleep_time", 100, RECU_DYNAMIC, RECC_NULL, NULL);
-  IOCORE_ReadConfigInteger(cache_config_aio_sleep_time, "proxy.config.cache.aio_sleep_time");
 }
 
-
 int
 ink_aio_start()
 {
@@ -183,10 +168,6 @@
 }
 
 
-////////////////////////////////////////////////////////////////////////
-////////        Unix             Stuff                            //////
-////////////////////////////////////////////////////////////////////////
-
 static void *aio_thread_main(void *arg);
 
 struct AIOThreadInfo:public Continuation
@@ -195,7 +176,7 @@
   AIO_Reqs *req;
   int sleep_wait;
 
-  int start(int event, Event * e)
+  int start(int event, Event *e)
   {
     (void) event;
     (void) e;
@@ -203,7 +184,7 @@
     return EVENT_DONE;
   }
 
-  AIOThreadInfo(AIO_Reqs * thr_req, int sleep):Continuation(new_ProxyMutex()), req(thr_req), sleep_wait(sleep)
+  AIOThreadInfo(AIO_Reqs *thr_req, int sleep):Continuation(new_ProxyMutex()), req(thr_req), sleep_wait(sleep)
   {
     SET_HANDLER(&AIOThreadInfo::start);
   }
@@ -260,7 +241,7 @@
 /* insert a request into either aio_todo or http_todo queue. aio_todo
    list is kept sorted */
 static void
-aio_insert(AIOCallback * op, AIO_Reqs * req)
+aio_insert(AIOCallback *op, AIO_Reqs *req)
 {
 #ifdef AIO_STATS
   num_requests++;
@@ -286,22 +267,17 @@
 
     /* Either the queue was empty or this request has the highest priority */
     req->aio_todo.push(op);
-
   }
-  return;
-
 }
 
 /* move the request from the atomic list to the queue */
 static void
-aio_move(AIO_Reqs * req)
+aio_move(AIO_Reqs *req)
 {
   AIOCallback *next = NULL, *prev = NULL, *cb = (AIOCallback *) ink_atomiclist_popall(&req->aio_temp_list);
   /* flip the list */
-
   if (!cb)
     return;
-
   while (cb->link.next) {
     next = (AIOCallback *) cb->link.next;
     cb->link.next = prev;
@@ -310,7 +286,6 @@
   }
   /* fix the last pointer */
   cb->link.next = prev;
-
   for (; cb; cb = next) {
     next = (AIOCallback *) cb->link.next;
     cb->link.next = NULL;
@@ -321,7 +296,7 @@
 
 /* queue the new request */
 static void
-aio_queue_req(AIOCallbackInternal * op)
+aio_queue_req(AIOCallbackInternal *op)
 {
   int thread_ndx = 0;
   AIO_Reqs *req = op->aio_req;
@@ -334,19 +309,16 @@
     /* search for the matching file descriptor */
     for (; thread_ndx < num_filedes; thread_ndx++) {
       if (aio_reqs[thread_ndx]->filedes == op->aiocb.aio_fildes) {
-
         /* found the matching file descriptor */
         req = aio_reqs[thread_ndx];
         break;
       }
     }
-
     if (!req) {
       ink_mutex_acquire(&insert_mutex);
       if (thread_ndx == num_filedes) {
         /* insert a new entry */
         req = aio_init_fildes(op->aiocb.aio_fildes);
-
       } else {
         /* a new entry was inserted between the time we checked the 
            aio_reqs and acquired the mutex. check the aio_reqs array to 
@@ -358,13 +330,10 @@
             break;
           }
         }
-        if (!req) {
+        if (!req)
           req = aio_init_fildes(op->aiocb.aio_fildes);
-        }
-
       }
       ink_mutex_release(&insert_mutex);
-
     }
     op->aio_req = req;
   }
@@ -379,30 +348,23 @@
 #ifdef AIO_STATS
     ink_atomic_increment(&data->num_queue, 1);
 #endif
-    if (!INK_ATOMICLIST_EMPTY(req->aio_temp_list)) {
+    if (!INK_ATOMICLIST_EMPTY(req->aio_temp_list))
       aio_move(req);
-    }
     /* now put the new request */
     aio_insert(op, req);
-
     ink_cond_signal(&req->aio_cond);
     ink_mutex_release(&req->aio_mutex);
   }
 }
 
 static inline int
-cache_op(AIOCallbackInternal * op)
+cache_op(AIOCallbackInternal *op)
 {
   bool read = (op->aiocb.aio_lio_opcode == LIO_READ) ? 1 : 0;
   for (; op; op = (AIOCallbackInternal *) op->then) {
     ink_aiocb_t *a = &op->aiocb;
     int err, res = 0;
 
-#ifdef DEBUG
-    if (op->sleep_time) {
-      ink_sleep(op->sleep_time);
-    }
-#endif
     while (a->aio_nbytes - res > 0) {
       do {
         if (read)
@@ -411,10 +373,8 @@
           err = ink_pwrite(a->aio_fildes, ((char *) a->aio_buf) + res, a->aio_nbytes - res, a->aio_offset + res);
       } while ((err < 0) && (errno == EINTR || errno == ENOBUFS || errno == ENOMEM));
       if (err <= 0) {
-#ifdef DIAGS_MODULARIZED
         Warning("cache disk operation failed %s %d %d\n",
                 (a->aio_lio_opcode == LIO_READ) ? "READ" : "WRITE", err, errno);
-#endif
         op->aio_result = -errno;
         return (err);
       }
@@ -427,7 +387,7 @@
 }
 
 int
-ink_aio_read(AIOCallback * op)
+ink_aio_read(AIOCallback *op)
 {
   op->aiocb.aio_lio_opcode = LIO_READ;
   switch (AIO_MODE) {
@@ -446,16 +406,15 @@
     cache_op((AIOCallbackInternal *) op);
     op->action.continuation->handleEvent(AIO_EVENT_DONE, op);
     break;
-  case AIO_MODE_THREAD:{
-      aio_queue_req((AIOCallbackInternal *) op);
-      break;
-    }
+  case AIO_MODE_THREAD:
+    aio_queue_req((AIOCallbackInternal *) op);
+    break;
   }
   return 1;
 }
 
 int
-ink_aio_write(AIOCallback * op)
+ink_aio_write(AIOCallback *op)
 {
   op->aiocb.aio_lio_opcode = LIO_WRITE;
   switch (AIO_MODE) {
@@ -474,10 +433,9 @@
     cache_op((AIOCallbackInternal *) op);
     op->action.continuation->handleEvent(AIO_EVENT_DONE, op);
     break;
-  case AIO_MODE_THREAD:{
-      aio_queue_req((AIOCallbackInternal *) op);
-      break;
-    }
+  case AIO_MODE_THREAD:
+    aio_queue_req((AIOCallbackInternal *) op);
+    break;
   }
   return 1;
 }
@@ -487,29 +445,22 @@
 {
   AIOThreadInfo *thr_info = (AIOThreadInfo *) arg;
   AIO_Reqs *my_aio_req = (AIO_Reqs *) thr_info->req;
-  int timed_wait = thr_info->sleep_wait;
   AIO_Reqs *current_req = NULL;
   AIOCallback *op = NULL;
   ink_mutex_acquire(&my_aio_req->aio_mutex);
   for (;;) {
     do {
       current_req = my_aio_req;
-
       /* check if any pending requests on the atomic list */
-
-      if (!INK_ATOMICLIST_EMPTY(my_aio_req->aio_temp_list)) {
+      if (!INK_ATOMICLIST_EMPTY(my_aio_req->aio_temp_list))
         aio_move(my_aio_req);
-      }
-
       if (!(op = my_aio_req->aio_todo.pop()) && !(op = my_aio_req->http_aio_todo.pop()))
         break;
-
 #ifdef AIO_STATS
       num_requests--;
       current_req->queued--;
       ink_atomic_increment((int *) &current_req->pending, 1);
 #endif
-
       // update the stats;
       if (op->aiocb.aio_lio_opcode == LIO_WRITE) {
         aio_num_write++;
@@ -533,44 +484,18 @@
 #endif
       op->link.prev = NULL;
       op->link.next = NULL;
-      // make op continuation share op->action's mutex
       op->mutex = op->action.mutex;
-      /* why do we callback on AIO thread only if its a write??
-         See INKqa07855. The problem is that with a lot of users,
-         the Net threads take a lot of time (as high as a second)
-         to come back to ink_aio_complete. This means that the 
-         partition can only issue 1 i/o per second. To 
-         get around this problem, we have the aio threads callback
-         the partitions directly. The partition issues another i/o
-         on the same thread (assuming there is enough stuff to be 
-         written). The partition is careful not to callback the VC's 
-         and not schedule any events on the thread.
-         It does not matter for reads because its generally the 
-         CacheVC's that issue reads and they have to do a fair
-         bit of computation (go through the docheader, call http
-         state machine back, etc) before they can issue another
-         read.
-       */
-      if (op->aiocb.aio_lio_opcode == LIO_WRITE) {
-        MUTEX_TRY_LOCK(lock, op->mutex, thr_info->mutex->thread_holding);
-        if (!lock) {
-          eventProcessor.schedule_imm(op);
-        } else {
-          if (!op->action.cancelled)
-            op->action.continuation->handleEvent(AIO_EVENT_DONE, op);
-        }
-      } else {
+      if (op->thread == AIO_CALLBACK_THREAD_AIO) {
+        MUTEX_LOCK(lock, op->mutex, thr_info->mutex->thread_holding);
+        if (!op->action.cancelled)
+          op->action.continuation->handleEvent(AIO_EVENT_DONE, op);
+      } else if (op->thread == AIO_CALLBACK_THREAD_ANY)
         eventProcessor.schedule_imm(op);
-
-      }
+      else
+        op->thread->schedule_imm(op);
       ink_mutex_acquire(&my_aio_req->aio_mutex);
-
     } while (1);
-    if (timed_wait) {
-      timespec ts = ink_based_hrtime_to_timespec(ink_get_hrtime() + HRTIME_MSECONDS(cache_config_aio_sleep_time));
-      ink_cond_timedwait(&my_aio_req->aio_cond, &my_aio_req->aio_mutex, &ts);
-    } else
-      ink_cond_wait(&my_aio_req->aio_cond, &my_aio_req->aio_mutex);
+    ink_cond_wait(&my_aio_req->aio_cond, &my_aio_req->aio_mutex);
   }
   return 0;
 }

Modified: incubator/trafficserver/traffic/trunk/iocore/aio/I_AIO.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/aio/I_AIO.h?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/aio/I_AIO.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/aio/I_AIO.h Wed Feb 24 18:48:42 2010
@@ -31,10 +31,6 @@
 #if !defined (_I_AIO_h_)
 #define _I_AIO_h_
 
-#ifndef INK_INLINE
-#define INK_INLINE
-#endif
-
 #include "inktomi++.h"
 #include "I_EventSystem.h"
 #include "I_RecProcess.h"
@@ -50,11 +46,14 @@
 #define AIO_MODE_AIO             0
 #define AIO_MODE_SYNC            1
 #define AIO_MODE_THREAD          2
-#define AIO_MODE_INK             3
 #define AIO_MODE                 AIO_MODE_THREAD
 
+// AIOCallback::thread special values
+#define AIO_CALLBACK_THREAD_ANY ((EThread*)0) // any regular event thread
+#define AIO_CALLBACK_THREAD_AIO ((EThread*)-1)
+
 #define AIO_LOWEST_PRIORITY      0
-#define AIO_DEFAULT_PRIORITY     AIO_LOWEST_PRIORTY
+#define AIO_DEFAULT_PRIORITY     AIO_LOWEST_PRIORITY
 
 struct AIOCallback:Continuation
 {
@@ -67,8 +66,9 @@
   int aio_result;
 
   int ok();
-  // AIOCallback();
-  virtual void AIOCallback_is_an_abstract_class() = 0;
+  AIOCallback() : thread(AIO_CALLBACK_THREAD_ANY), then(0) {
+    aiocb.aio_reqprio = AIO_DEFAULT_PRIORITY;
+  }
 };
 
 void ink_aio_init(ModuleVersion version);

Modified: incubator/trafficserver/traffic/trunk/iocore/aio/P_AIO.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/aio/P_AIO.h?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/aio/P_AIO.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/aio/P_AIO.h Wed Feb 24 18:48:42 2010
@@ -31,15 +31,11 @@
 #ifndef _P_AIO_h_
 #define _P_AIO_h_
 
-#ifndef INLINE_CC
-#undef INK_INLINE
-#define INK_INLINE inline
-#endif
-
 #include "P_EventSystem.h"
 #include "I_AIO.h"
 
-// #define AIO_STATS
+// for debugging
+// #define AIO_STATS 1
 
 #undef  AIO_MODULE_VERSION
 #define AIO_MODULE_VERSION        makeModuleVersion(AIO_MODULE_MAJOR_VERSION,\
@@ -53,9 +49,6 @@
   AIO_Reqs *aio_req;
   ink_hrtime sleep_time;
   int io_complete(int event, void *data);
-  void AIOCallback_is_an_abstract_class()
-  {
-  }
   AIOCallbackInternal()
   {
     const size_t to_zero = sizeof(AIOCallbackInternal)
@@ -67,13 +60,13 @@
   }
 };
 
-INK_INLINE int
+inline int
 AIOCallback::ok()
 {
   return (ink_off_t) aiocb.aio_nbytes == (ink_off_t) aio_result;
 };
 
-INK_INLINE int
+inline int
 AIOCallbackInternal::io_complete(int event, void *data)
 {
   (void) event;
@@ -107,13 +100,14 @@
   int num_temp;
   int num_queue;
   ink_hrtime start;
-    AIOTestData():Continuation(new_ProxyMutex()), num_req(0), num_temp(0), num_queue(0)
+
+  int ink_aio_stats(int event, void *data);
+
+  AIOTestData():Continuation(new_ProxyMutex()), num_req(0), num_temp(0), num_queue(0)
   {
     start = ink_get_hrtime();
     SET_HANDLER(&AIOTestData::ink_aio_stats);
   }
-
-  int ink_aio_stats(int event, void *data);
 };
 #endif
 

Modified: incubator/trafficserver/traffic/trunk/iocore/block-cache/BlockCacheSegmentVConnection.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/block-cache/BlockCacheSegmentVConnection.cc?rev=915922&r1=915921&r2=915922&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/block-cache/BlockCacheSegmentVConnection.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/block-cache/BlockCacheSegmentVConnection.cc Wed Feb 24 18:48:42 2010
@@ -57,9 +57,9 @@
     }
   };
 
-  virtual VIO *do_io_write(Continuation * c = NULL, int nbytes = 0, IOBufferReader * buf = NULL, bool owner = false);
+  virtual VIO *do_io_write(Continuation * c = NULL, ink64 nbytes = 0, IOBufferReader * buf = NULL, bool owner = false);
 
-  virtual VIO *do_io_read(Continuation * c, int nbytes, MIOBuffer * buf);
+  virtual VIO *do_io_read(Continuation * c, ink64 nbytes, MIOBuffer * buf);
 
   virtual void do_io_close(int err = -1) {
   };
@@ -89,7 +89,7 @@
 }
 
 VIO *
-BCSV_impl::do_io_write(Continuation * c, int nbytes, IOBufferReader * buf, bool owner)
+BCSV_impl::do_io_write(Continuation * c, ink64 nbytes, IOBufferReader * buf, bool owner)
 {
 
   // call into BC_OpenSegment for io strategy
@@ -109,7 +109,7 @@
 }
 
 VIO *
-BCSV_impl::do_io_read(Continuation * c, int nbytes, MIOBuffer * buf)
+BCSV_impl::do_io_read(Continuation * c, ink64 nbytes, MIOBuffer * buf)
 {
   // call into BC_OpenSegment for io strategy