You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2017/11/02 17:54:24 UTC

[trafficserver] 01/01: Merge branch 'master' into quic-latest

This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit 5869822270e857da897a95a0efd99c4b623f71dc
Merge: 7e1cd27 af92bb6
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Thu Nov 2 11:53:52 2017 -0600

    Merge branch 'master' into quic-latest
    
    * master: (27 commits)
      This removes all configuration Element ctor/dtor code
      Removes the rest of the CfgContext files and objects
      Removes the Configuration Context Manager
      list packages for building in Ubuntu
      Correct comment about TS_HTTP_SSN_CLOSE_HOOK.
      More header_rewrite examples
      Treat SSL_ERROR_SSL as EPIPE within SSLNetVC::load_buffer_and_write()
      Doc: Minor fixes - some MimeHdr functions, traffic_layout, event loop metrics.
      Implement zero-copy within UDPNetProcessorInternal::udp_read_from_net
      updated abbreviations in README
      include cstring to make the compiler stop complaining about strlen
      added tests for different thread configurations, thread information is verified using gdb
      More NULL to nullptr conversion
      fix 2707, assign server_session to nullptr after do `chain_abort_all`
      Getting rid of ts::Vec implementation and replacing it with std::vector
      Rework the new udp connection
      coverity 1376260: Uninitialized scalar field
      Prevent releasing streams simultaneously
      Within UDPConnection::Release(), it should calls the ep.stop() only if the UDPConnection will be closed
      Optimize: define UDPQueue::atomicQueue by ASLL macro and rename to outQueue
      ...
    
     Conflicts:
    	iocore/net/P_UnixUDPConnection.h
    	lib/records/I_RecHttp.h
    	lib/records/RecHttp.cc

 README                                             |    4 +-
 cmd/traffic_layout/engine.cc                       |   26 +-
 cmd/traffic_layout/traffic_layout.cc               |    8 +-
 cmd/traffic_manager/metrics.cc                     |   12 +-
 configure.ac                                       |    3 +
 doc/admin-guide/installation/index.en.rst          |    8 +-
 .../monitoring/statistics/core/misc.en.rst         |   25 +-
 doc/admin-guide/plugins/header_rewrite.en.rst      |   31 +-
 doc/appendices/command-line/traffic_layout.en.rst  |   64 +-
 .../functions/TSMimeHdrFieldValueStringSet.en.rst  |   16 +
 .../api/functions/TSMimeHdrFieldValuesCount.en.rst |    2 +
 iocore/eventsystem/I_EThread.h                     |    2 +-
 iocore/eventsystem/I_SocketManager.h               |    1 +
 iocore/eventsystem/P_UnixSocketManager.h           |   11 +
 iocore/eventsystem/UnixEventProcessor.cc           |    7 +-
 iocore/hostdb/P_RefCountCache.h                    |    7 +-
 iocore/hostdb/P_RefCountCacheSerializer.h          |   10 +-
 iocore/net/I_UDPPacket.h                           |    6 +
 iocore/net/P_UDPNet.h                              |   29 +-
 iocore/net/P_UDPPacket.h                           |   16 +-
 iocore/net/P_UnixUDPConnection.h                   |   10 +-
 iocore/net/SSLNetVConnection.cc                    |    3 +-
 iocore/net/SSLUtils.cc                             |   29 +-
 iocore/net/UnixNetProcessor.cc                     |    5 +-
 iocore/net/UnixUDPConnection.cc                    |   55 +-
 iocore/net/UnixUDPNet.cc                           |  239 +-
 lib/perl/lib/Apache/TS/AdminClient.pm              |   43 +-
 lib/records/I_RecHttp.h                            |   30 +-
 lib/records/RecHttp.cc                             |   36 +-
 lib/ts/Layout.cc                                   |   65 +-
 lib/ts/PriorityQueue.h                             |   45 +-
 lib/ts/apidefs.h.in                                |    2 +-
 lib/ts/runroot.cc                                  |   27 +-
 lib/ts/test_PriorityQueue.cc                       |    4 +-
 mgmt/FileManager.cc                                |   31 +-
 mgmt/LocalManager.cc                               |    8 +-
 mgmt/api/APITestCliRemote.cc                       |  711 +----
 mgmt/api/CfgContextDefs.h                          |   73 -
 mgmt/api/CfgContextImpl.cc                         | 2135 ---------------
 mgmt/api/CfgContextImpl.h                          |  435 ---
 mgmt/api/CfgContextManager.cc                      |  560 ----
 mgmt/api/CfgContextManager.h                       |   74 -
 mgmt/api/CfgContextUtils.cc                        | 2756 --------------------
 mgmt/api/CfgContextUtils.h                         |  194 --
 mgmt/api/CoreAPI.cc                                |   61 +-
 mgmt/api/CoreAPI.h                                 |   11 +-
 mgmt/api/CoreAPIRemote.cc                          |   61 +-
 mgmt/api/EventControlMain.cc                       |    1 -
 mgmt/api/INKMgmtAPI.cc                             |  974 +------
 mgmt/api/Makefile.am                               |    7 -
 mgmt/api/NetworkMessage.cc                         |    6 -
 mgmt/api/NetworkMessage.h                          |    1 -
 mgmt/api/TSControlMain.cc                          |   40 -
 mgmt/api/include/mgmtapi.h                         |  541 +---
 plugins/experimental/cachekey/configs.cc           |    1 +
 proxy/ControlBase.cc                               |   19 +-
 proxy/ControlBase.h                                |    4 +-
 proxy/IPAllow.cc                                   |    6 +-
 proxy/IPAllow.h                                    |    6 +-
 proxy/InkAPI.cc                                    |    2 +-
 proxy/InkAPITest.cc                                |    6 +-
 proxy/InkAPITestTool.cc                            |    2 +-
 proxy/http/HttpProxyServerMain.cc                  |   14 +-
 proxy/http/HttpSM.cc                               |    4 +-
 proxy/http/HttpTransact.cc                         |    2 +-
 proxy/http/HttpTransact.h                          |   14 +-
 proxy/http/HttpTransactHeaders.h                   |    2 +-
 proxy/http2/HPACK.cc                               |   20 +-
 proxy/http2/HPACK.h                                |    5 +-
 proxy/http2/Http2ClientSession.cc                  |    6 +-
 proxy/http2/Http2ConnectionState.h                 |    1 +
 proxy/http2/Http2Stream.cc                         |    1 +
 proxy/logging/LogObject.cc                         |   60 +-
 proxy/logging/LogObject.h                          |    8 +-
 tests/gold_tests/autest-site/microDNS.test.ext     |    7 +-
 tests/gold_tests/autest-site/microserver.test.ext  |   15 +-
 tests/gold_tests/basic/runroot-layout.test.py      |    8 +-
 .../pluginTest/multiplexer/multiplexer.test.py     |    3 +-
 tests/gold_tests/thread_config/gold/http_200.gold  |    9 +
 .../thread_config/gold/thread_100_0.gold           |  101 +
 .../thread_config/gold/thread_100_1.gold           |  102 +
 .../thread_config/gold/thread_100_10.gold          |  111 +
 .../gold_tests/thread_config/gold/thread_1_0.gold  |    2 +
 .../gold_tests/thread_config/gold/thread_1_1.gold  |    3 +
 .../gold_tests/thread_config/gold/thread_1_10.gold |   12 +
 .../gold_tests/thread_config/gold/thread_2_0.gold  |    3 +
 .../gold_tests/thread_config/gold/thread_2_1.gold  |    4 +
 .../gold_tests/thread_config/gold/thread_2_10.gold |   13 +
 .../gold_tests/thread_config/gold/thread_32_0.gold |   33 +
 .../gold_tests/thread_config/gold/thread_32_1.gold |   34 +
 .../thread_config/gold/thread_32_10.gold           |   43 +
 .../gold_tests/thread_config/thread_100_0.test.py  |   61 +
 .../gold_tests/thread_config/thread_100_1.test.py  |   62 +
 .../gold_tests/thread_config/thread_100_10.test.py |   61 +
 tests/gold_tests/thread_config/thread_1_0.test.py  |   61 +
 tests/gold_tests/thread_config/thread_1_1.test.py  |   61 +
 tests/gold_tests/thread_config/thread_1_10.test.py |   61 +
 tests/gold_tests/thread_config/thread_2_0.test.py  |   61 +
 tests/gold_tests/thread_config/thread_2_1.test.py  |   61 +
 tests/gold_tests/thread_config/thread_2_10.test.py |   61 +
 tests/gold_tests/thread_config/thread_32_0.test.py |   61 +
 tests/gold_tests/thread_config/thread_32_1.test.py |   61 +
 .../gold_tests/thread_config/thread_32_10.test.py  |   61 +
 tests/tools/microServer/uWServer.py                |   11 +-
 104 files changed, 1901 insertions(+), 9090 deletions(-)

diff --cc iocore/net/P_UnixUDPConnection.h
index 6d5e455,4815f8a..599c632
--- a/iocore/net/P_UnixUDPConnection.h
+++ b/iocore/net/P_UnixUDPConnection.h
@@@ -42,14 -42,14 +42,14 @@@ public
    void errorAndDie(int e);
    int callbackHandler(int event, void *data);
  
-   LINK(UnixUDPConnection, polling_link);
-   LINK(UnixUDPConnection, callback_link);
    SLINK(UnixUDPConnection, newconn_alink);
+   LINK(UnixUDPConnection, callback_link);
  
-   InkAtomicList inQueue;
+   // Incoming UDP Packet Queue
+   ASLL(UDPPacketInternal, alink) inQueue;
 -  int onCallbackQueue;
 -  Action *callbackAction;
 -  EThread *ethread;
 +  int onCallbackQueue    = 0;
 +  Action *callbackAction = nullptr;
 +  EThread *ethread       = nullptr;
    EventIO ep;
  
    UnixUDPConnection(int the_fd);
@@@ -61,11 -61,9 +61,9 @@@ private
  };
  
  TS_INLINE
 -UnixUDPConnection::UnixUDPConnection(int the_fd) : onCallbackQueue(0), callbackAction(nullptr), ethread(nullptr), m_errno(0)
 +UnixUDPConnection::UnixUDPConnection(int the_fd)
  {
    fd = the_fd;
-   UDPPacketInternal p;
-   ink_atomiclist_init(&inQueue, "Incoming UDP Packet queue", (char *)&p.alink.next - (char *)&p);
    SET_HANDLER(&UnixUDPConnection::callbackHandler);
  }
  
diff --cc lib/records/I_RecHttp.h
index 99e38ea,a3655f0..7886e92
--- a/lib/records/I_RecHttp.h
+++ b/lib/records/I_RecHttp.h
@@@ -483,12 -465,7 +485,12 @@@ HttpProxyPort::hasSSL(
  {
    return self::hasSSL(m_global);
  }
 +inline bool
 +HttpProxyPort::hasQUIC()
 +{
 +  return self::hasQUIC(m_global);
 +}
- inline HttpProxyPort *
+ inline const HttpProxyPort *
  HttpProxyPort::findHttp(uint16_t family)
  {
    return self::findHttp(m_global, family);
diff --cc lib/records/RecHttp.cc
index 19d9481,b35cae2..c924d1a
--- a/lib/records/RecHttp.cc
+++ b/lib/records/RecHttp.cc
@@@ -173,28 -168,10 +173,22 @@@ HttpProxyPort::HttpProxyPort(
  bool
  HttpProxyPort::hasSSL(Group const &ports)
  {
-   bool zret = false;
-   for (int i = 0, n = ports.length(); i < n && !zret; ++i) {
-     if (ports[i].isSSL()) {
-       zret = true;
-     }
-   }
-   return zret;
+   return std::any_of(ports.begin(), ports.end(), [](HttpProxyPort const &port) { return port.isSSL(); });
  }
  
 +bool
 +HttpProxyPort::hasQUIC(Group const &ports)
 +{
 +  bool zret = false;
-   for (int i = 0, n = ports.length(); i < n && !zret; ++i) {
++  for (int i = 0, n = ports.size(); i < n && !zret; ++i) {
 +    if (ports[i].isQUIC()) {
 +      zret = true;
 +    }
 +  }
 +  return zret;
 +}
 +
- HttpProxyPort *
+ const HttpProxyPort *
  HttpProxyPort::findHttp(Group const &ports, uint16_t family)
  {
    bool check_family_p = ats_is_ip(family);
diff --cc proxy/http/HttpProxyServerMain.cc
index 36d8fe7,df1200d..202810b
--- a/proxy/http/HttpProxyServerMain.cc
+++ b/proxy/http/HttpProxyServerMain.cc
@@@ -39,11 -39,9 +39,13 @@@
  #include "ProtocolProbeSessionAccept.h"
  #include "http2/Http2SessionAccept.h"
  #include "HttpConnectionCount.h"
 +#if TS_USE_QUIC == 1
 +#include "P_QUICNextProtocolAccept.h"
 +#include "hq/HQSessionAccept.h"
 +#endif
  
+ #include <vector>
+ 
  HttpSessionAccept *plugin_http_accept             = nullptr;
  HttpSessionAccept *plugin_http_transparent_accept = nullptr;
  

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.