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/10/19 21:21:25 UTC
[trafficserver] branch quic-latest updated (d48631f -> 22a9c65)
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a change to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git.
from d48631f Fix stream level flow control
add da63d53 Update .gitignore
add 65b9b30 Remove volatile.
add e971f7c Doc: Tweak makefiles to not build man pages for install if doc building is disabled.
add a5366d7 Cleanup: remove ts::ConstBuffer from ink_inet. This turns out to have a lot of tentacles all over.
add b110731 fix
add 26717d9 Fixes build on macOS, using approprite PRIu64 for printf
add 3ebc6db Fix bad prototype of stub function for proxy/http/ForwardedConfig.cc unit test, and small omissions in documentation.
add 2c0e048 Remove custom memory barriers from header_rewrite and replace with std::atomic
add 0ba2353 TextView: First pass on converting StringView to TextView and basing it on ts::string_view.
add d3c6cc7 Fixed issue with clean/distclean
add 49f810f Turn off exception warning for gcc 7
add ca11933 Removes the snapshot API and features
add 14c6d94 Fix prepare_plugin
add 343ba15 we have set the NO_FD in close already
add a5fd988 remove unnecessary assertion for "alternate"
add f6bdbc3 This removes the FILE_WRITE mechanism from the core
add c776c66 Optimize: If failed on migrateToCurrentThread, put the server session back to global server session pool
add 18a22dd log when ssl_multicert.config is successfully reloaded
add 429607e optimze: move http 408 response logic into transaction
add 49f1f17 Checking the retval of safe_getsockname() and safe_getpeername()
add 8551244 fix the missing lock in TSVConnFdCreate api
add a37fb3a Tests for chunked POST over HTTP1.1 and HTTP2 and GET chunked over HTTP1.1
add 326cd98 Allow binding value to non-nil variable in LuaVM for configuration files evaluations. This allows us to fix issue #2511.
add db30b0a Optimize: rename close_UnixNetVConnection to NetHandler::free_netvc.
add 2eb9dd4 UDPBind with EventIO of UnixUDPConnection.
add 4ebdb40 CID 1196423: Error handling issues (CHECKED_RETURN)
add fa702d2 Added skip condition on http2 test for lack of curl http2
add 79e3bf8 added plugin exists condition
add 3eb676e use os.path.join
add 39992bb event loop changes
add 88431a4 Add MIOBufferWriter class which writes to an MIOBuffer instance.
add ff8b8a1 add http 0.9 in find_proto_string
new 32106e9 Merge branch 'master' into quic-latest
new 22a9c65 Change to use string_view, which is needed after merging current master
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitignore | 2 +
Makefile.am | 2 +
README | 2 +-
cmd/traffic_layout/engine.cc | 5 +-
cmd/traffic_layout/file_system.cc | 4 +-
cmd/traffic_layout/traffic_layout.cc | 1 -
cmd/traffic_manager/test_metrics.cc | 37 +
cmd/traffic_manager/traffic_manager.cc | 9 +-
configure.ac | 2 +-
doc/Makefile.am | 2 +
doc/admin-guide/files/records.config.en.rst | 6 -
doc/admin-guide/plugins/ts_lua.en.rst | 1 +
.../api/types/TSOverridableConfigKey.en.rst | 1 +
example/remap/remap.cc | 13 +-
example/ssl_preaccept/ssl_preaccept.cc | 22 +-
iocore/aio/AIO.cc | 2 +-
iocore/aio/I_AIO.h | 8 +-
iocore/aio/P_AIO.h | 10 +-
iocore/aio/test_AIO.cc | 2 +-
iocore/cache/Cache.cc | 34 +-
iocore/cache/CacheHosting.cc | 2 +-
iocore/cache/CachePagesInternal.cc | 2 +-
iocore/cache/CacheRead.cc | 1 -
iocore/cache/I_Cache.h | 6 +-
iocore/cache/P_CacheDir.h | 4 +-
iocore/cache/P_CacheHosting.h | 4 +-
iocore/cache/P_CacheInternal.h | 10 +-
iocore/cache/P_CacheTest.h | 2 +-
iocore/cache/P_CacheVol.h | 2 +-
iocore/eventsystem/I_Action.h | 2 +-
iocore/eventsystem/I_EThread.h | 55 +-
iocore/eventsystem/I_EventProcessor.h | 4 +-
iocore/eventsystem/I_Lock.h | 3 +-
iocore/eventsystem/I_MIOBufferWriter.h | 174 ++
iocore/eventsystem/I_ProtectedQueue.h | 2 +
iocore/eventsystem/Makefile.am | 9 +-
iocore/eventsystem/P_UnixEThread.h | 6 +
iocore/eventsystem/ProtectedQueue.cc | 93 +-
iocore/eventsystem/UnixEThread.cc | 213 +--
.../eventsystem/unit-tests/test_MIOBufferWriter.cc | 217 +++
iocore/hostdb/P_HostDBProcessor.h | 1 +
iocore/net/Connection.cc | 1 -
iocore/net/I_NetVConnection.h | 12 +-
iocore/net/NetVConnection.cc | 4 +-
iocore/net/P_QUICNetVConnection.h | 4 +-
iocore/net/P_SSLNetVConnection.h | 19 +-
iocore/net/P_UnixNet.h | 82 +-
iocore/net/P_UnixNetState.h | 2 +-
iocore/net/P_UnixNetVConnection.h | 12 +-
iocore/net/QUICNetVConnection.cc | 19 +-
iocore/net/SSLConfig.cc | 6 +
iocore/net/SSLNetVConnection.cc | 47 +-
iocore/net/SSLUtils.cc | 13 +-
iocore/net/UnixNet.cc | 106 +-
iocore/net/UnixNetAccept.cc | 11 +-
iocore/net/UnixNetProcessor.cc | 2 +-
iocore/net/UnixNetVConnection.cc | 171 +-
iocore/net/UnixUDPNet.cc | 3 +-
iocore/net/quic/QUICApplication.cc | 2 -
iocore/net/quic/QUICCrypto.cc | 22 +-
lib/bindings/bindings.cc | 39 +-
lib/cppapi/Logger.cc | 2 +-
lib/perl/lib/Apache/TS/AdminClient.pm | 44 +-
lib/records/I_RecCore.h | 3 -
lib/records/RecCore.cc | 9 -
lib/records/RecHttp.cc | 34 +-
lib/records/RecRawStats.cc | 2 +-
lib/ts/BaseLogFile.h | 8 +-
lib/ts/Diags.h | 2 +-
lib/ts/Makefile.am | 13 +-
lib/ts/Ptr.h | 2 +-
lib/ts/{MemView.cc => TextView.cc} | 41 +-
lib/ts/{MemView.h => TextView.h} | 1885 ++++++++++----------
lib/ts/ink_aiocb.h | 2 +-
lib/ts/ink_atomic.h | 24 +-
lib/ts/ink_inet.cc | 199 +--
lib/ts/ink_inet.h | 59 +-
lib/ts/ink_queue.cc | 10 +-
lib/ts/ink_queue.h | 4 +-
lib/ts/ink_queue_utils.cc | 4 +-
lib/ts/ink_res_init.cc | 2 +-
lib/ts/ink_resource.cc | 2 +-
lib/ts/ink_resource.h | 2 +-
lib/ts/string_view.h | 18 +
lib/ts/test_MemView.cc | 96 -
lib/ts/test_atomic.cc | 4 +-
lib/ts/unit-tests/test_TextView.cc | 147 ++
lib/ts/unit-tests/test_ink_inet.cc | 82 +
lib/ts/unit-tests/test_layout.cc | 3 +
lib/ts/unit-tests/test_string_view.cc | 5 +
mgmt/FileManager.cc | 529 ------
mgmt/FileManager.h | 51 +-
mgmt/LocalManager.cc | 7 +-
mgmt/LocalManager.h | 24 +-
mgmt/Makefile.am | 2 -
mgmt/MultiFile.cc | 241 ---
mgmt/MultiFile.h | 82 -
mgmt/ProcessManager.h | 2 +-
mgmt/ProxyConfig.cc | 4 +-
mgmt/RecordsConfig.cc | 2 -
mgmt/WebMgmtUtils.cc | 92 -
mgmt/WebMgmtUtils.h | 4 -
mgmt/api/APITestCliRemote.cc | 345 ----
mgmt/api/CfgContextManager.cc | 71 -
mgmt/api/CfgContextManager.h | 1 -
mgmt/api/CoreAPI.cc | 145 --
mgmt/api/CoreAPI.h | 9 -
mgmt/api/CoreAPIRemote.cc | 74 -
mgmt/api/EventControlMain.cc | 5 -
mgmt/api/INKMgmtAPI.cc | 37 -
mgmt/api/NetworkMessage.cc | 15 -
mgmt/api/NetworkMessage.h | 5 -
mgmt/api/TSControlMain.cc | 135 --
mgmt/api/include/mgmtapi.h | 45 -
plugins/background_fetch/configs.h | 2 +-
plugins/experimental/memcache/tsmemcache.cc | 6 +-
plugins/experimental/memcache/tsmemcache.h | 6 +-
.../ssl_cert_loader/ssl-cert-loader.cc | 18 +-
plugins/gzip/configuration.h | 2 +-
plugins/header_rewrite/conditions.cc | 3 +-
plugins/header_rewrite/header_rewrite.cc | 2 +-
plugins/header_rewrite/lulu.h | 33 -
plugins/healthchecks/healthchecks.c | 5 +-
plugins/regex_revalidate/regex_revalidate.c | 4 +-
plugins/s3_auth/s3_auth.cc | 2 +-
proxy/InkAPI.cc | 29 +-
proxy/Main.cc | 4 +-
proxy/ParentSelection.h | 2 +-
proxy/PluginVC.cc | 2 +-
proxy/PluginVC.h | 4 +-
proxy/ProxyClientSession.h | 9 +-
proxy/ProxyClientTransaction.h | 6 +-
proxy/StatPages.cc | 2 +-
proxy/TransformInternal.h | 8 +-
proxy/api/ts/InkAPIPrivateIOCore.h | 4 +-
proxy/congest/Congestion.h | 4 +-
proxy/hdrs/HTTP.cc | 11 +-
proxy/hdrs/URL.cc | 15 +-
proxy/hdrs/URL.h | 4 +-
proxy/hq/HQClientSession.cc | 2 +-
proxy/hq/HQClientSession.h | 2 +-
proxy/http/ForwardedConfig.cc | 24 +-
proxy/http/Http1ClientSession.h | 6 +-
proxy/http/HttpConfig.cc | 2 +-
proxy/http/HttpSM.cc | 110 +-
proxy/http/HttpSM.h | 8 +-
proxy/http/HttpServerSession.h | 4 +-
proxy/http/HttpSessionManager.cc | 24 +-
proxy/http/HttpTransact.cc | 20 +
proxy/http/HttpTransact.h | 2 +
proxy/http/HttpTransactHeaders.cc | 39 +-
proxy/http/HttpTransactHeaders.h | 2 +-
proxy/http/Makefile.am | 6 +-
proxy/http/unit-tests/sym-links/MemView.cc | 1 -
proxy/http/unit-tests/test_ForwardedConfig.cc | 4 +-
.../http/unit-tests/test_ForwardedConfig_mocks.cc | 4 +-
proxy/http2/HTTP2.cc | 2 +-
proxy/http2/HTTP2.h | 2 +-
proxy/http2/Http2ClientSession.h | 10 +-
proxy/logging/LogBuffer.cc | 6 +-
proxy/logging/LogBuffer.h | 10 +-
proxy/logging/LogField.h | 1 +
proxy/logging/LogHost.cc | 6 +-
proxy/logging/LogObject.cc | 4 +-
proxy/logging/LogObject.h | 2 +-
tests/gold_tests/autest-site/conditions.test.ext | 8 +
.../autest-site/trafficserver_plugins.test.ext | 10 +-
.../chunked_encoding.test.py} | 95 +-
.../gold/chunked_GET_200.gold} | 7 +-
.../chunked_encoding/gold/chunked_POST_200.gold | 13 +
.../chunked_encoding/gold/h2_chunked_POST_200.gold | 11 +
.../{tls_hooks => chunked_encoding}/ssl/server.key | 0
.../{h2 => chunked_encoding}/ssl/server.pem | 0
tests/gold_tests/h2/http2.test.py | 3 +-
tests/gold_tests/headers/http408.gold | 3 +-
175 files changed, 2728 insertions(+), 4101 deletions(-)
create mode 100644 iocore/eventsystem/I_MIOBufferWriter.h
create mode 100644 iocore/eventsystem/unit-tests/test_MIOBufferWriter.cc
rename lib/ts/{MemView.cc => TextView.cc} (81%)
rename lib/ts/{MemView.h => TextView.h} (50%)
delete mode 100644 lib/ts/test_MemView.cc
create mode 100644 lib/ts/unit-tests/test_TextView.cc
create mode 100644 lib/ts/unit-tests/test_ink_inet.cc
delete mode 100644 mgmt/MultiFile.cc
delete mode 100644 mgmt/MultiFile.h
delete mode 120000 proxy/http/unit-tests/sym-links/MemView.cc
copy tests/gold_tests/{remap/remap_https.test.py => chunked_encoding/chunked_encoding.test.py} (52%)
copy tests/gold_tests/{null_transform/gold/null_transform-200.gold => chunked_encoding/gold/chunked_GET_200.gold} (69%)
create mode 100644 tests/gold_tests/chunked_encoding/gold/chunked_POST_200.gold
create mode 100644 tests/gold_tests/chunked_encoding/gold/h2_chunked_POST_200.gold
copy tests/gold_tests/{tls_hooks => chunked_encoding}/ssl/server.key (100%)
copy tests/gold_tests/{h2 => chunked_encoding}/ssl/server.pem (100%)
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].
[trafficserver] 02/02: Change to use string_view,
which is needed after merging current master
Posted by zw...@apache.org.
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 22a9c65cf6f0556d9229b70dd325b21fe9961fdd
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Thu Oct 19 15:15:58 2017 -0600
Change to use string_view, which is needed after merging current master
---
iocore/net/P_QUICNetVConnection.h | 4 ++--
iocore/net/QUICNetVConnection.cc | 19 ++++++++-----------
iocore/net/quic/QUICApplication.cc | 2 --
iocore/net/quic/QUICCrypto.cc | 22 +++++++++++-----------
proxy/hq/HQClientSession.cc | 2 +-
proxy/hq/HQClientSession.h | 2 +-
6 files changed, 23 insertions(+), 28 deletions(-)
diff --git a/iocore/net/P_QUICNetVConnection.h b/iocore/net/P_QUICNetVConnection.h
index 92c84ee..315ec24 100644
--- a/iocore/net/P_QUICNetVConnection.h
+++ b/iocore/net/P_QUICNetVConnection.h
@@ -165,8 +165,8 @@ public:
virtual void net_read_io(NetHandler *nh, EThread *lthread) override;
virtual int64_t load_buffer_and_write(int64_t towrite, MIOBufferAccessor &buf, int64_t &total_written, int &needs) override;
- int populate_protocol(ts::StringView *results, int n) const override;
- const char *protocol_contains(ts::StringView tag) const override;
+ int populate_protocol(ts::string_view *results, int n) const override;
+ const char *protocol_contains(ts::string_view tag) const override;
// QUICNetVConnection
void registerNextProtocolSet(SSLNextProtocolSet *s);
diff --git a/iocore/net/QUICNetVConnection.cc b/iocore/net/QUICNetVConnection.cc
index 45c8aed..7a4c457 100644
--- a/iocore/net/QUICNetVConnection.cc
+++ b/iocore/net/QUICNetVConnection.cc
@@ -444,7 +444,7 @@ QUICNetVConnection::state_handshake(int event, Event *data)
unsigned int app_name_len = 0;
this->_handshake_handler->negotiated_application_name(&app_name, &app_name_len);
if (app_name == nullptr) {
- app_name = reinterpret_cast<const uint8_t *>(IP_PROTO_TAG_HTTP_QUIC.ptr());
+ app_name = reinterpret_cast<const uint8_t *>(IP_PROTO_TAG_HTTP_QUIC.data());
app_name_len = IP_PROTO_TAG_HTTP_QUIC.size();
}
@@ -581,14 +581,11 @@ QUICNetVConnection::load_buffer_and_write(int64_t towrite, MIOBufferAccessor &bu
}
int
-QUICNetVConnection::populate_protocol(ts::StringView *results, int n) const
+QUICNetVConnection::populate_protocol(ts::string_view *results, int n) const
{
int retval = 0;
if (n > retval) {
- results[retval] = IP_PROTO_TAG_QUIC;
- if (results[retval]) {
- ++retval;
- }
+ results[retval++] = IP_PROTO_TAG_QUIC;
if (n > retval) {
retval += super::populate_protocol(results + retval, n - retval);
}
@@ -597,12 +594,12 @@ QUICNetVConnection::populate_protocol(ts::StringView *results, int n) const
}
const char *
-QUICNetVConnection::protocol_contains(ts::StringView prefix) const
+QUICNetVConnection::protocol_contains(ts::string_view prefix) const
{
- const char *retval = nullptr;
- ts::StringView tag = IP_PROTO_TAG_QUIC;
- if (prefix.size() <= tag.size() && strncmp(tag.ptr(), prefix.ptr(), prefix.size()) == 0) {
- retval = tag.ptr();
+ const char *retval = nullptr;
+ ts::string_view tag = IP_PROTO_TAG_QUIC;
+ if (prefix.size() <= tag.size() && strncmp(tag.data(), prefix.data(), prefix.size()) == 0) {
+ retval = tag.data();
} else {
retval = super::protocol_contains(prefix);
}
diff --git a/iocore/net/quic/QUICApplication.cc b/iocore/net/quic/QUICApplication.cc
index 61c1429..5d5a0ed 100644
--- a/iocore/net/quic/QUICApplication.cc
+++ b/iocore/net/quic/QUICApplication.cc
@@ -22,8 +22,6 @@
*/
#include "QUICApplication.h"
-
-#include "ts/MemView.h"
#include "QUICStream.h"
static constexpr char tag[] = "quic_app";
diff --git a/iocore/net/quic/QUICCrypto.cc b/iocore/net/quic/QUICCrypto.cc
index 1cfc2d6..20414c6 100644
--- a/iocore/net/quic/QUICCrypto.cc
+++ b/iocore/net/quic/QUICCrypto.cc
@@ -28,20 +28,20 @@
#include <openssl/bio.h>
#include "ts/Diags.h"
-#include "ts/MemView.h"
+#include "ts/string_view.h"
#include "QUICTypes.h"
constexpr static char tag[] = "quic_crypto";
// constexpr static ts::StringView _exporter_label_0_rtt("EXPORTER-QUIC 0-RTT Secret", ts::StringView::literal);
-constexpr static ts::StringView exporter_label_client_1_rtt("EXPORTER-QUIC client 1-RTT Secret", ts::StringView::literal);
-constexpr static ts::StringView exporter_label_server_1_rtt("EXPORTER-QUIC server 1-RTT Secret", ts::StringView::literal);
+constexpr static ts::string_view exporter_label_client_1_rtt("EXPORTER-QUIC client 1-RTT Secret"_sv);
+constexpr static ts::string_view exporter_label_server_1_rtt("EXPORTER-QUIC server 1-RTT Secret"_sv);
// [quic-tls draft-05] "tls13 " + Label
// constexpr static ts::StringView expand_label_client_1_rtt("tls13 QUIC client 1-RTT secret", ts::StringView::literal);
// constexpr static ts::StringView expand_label_server_1_rtt("tls13 QUIC server 1-RTT secret", ts::StringView::literal);
-constexpr static ts::StringView expand_label_key("tls13 key", ts::StringView::literal);
-constexpr static ts::StringView expand_label_iv("tls13 iv", ts::StringView::literal);
+constexpr static ts::string_view expand_label_key("tls13 key"_sv);
+constexpr static ts::string_view expand_label_iv("tls13 iv"_sv);
//
// QUICPacketProtection
@@ -310,19 +310,19 @@ QUICCrypto::_export_client_keymaterial(size_t secret_len, size_t key_len, size_t
KeyMaterial *km = new KeyMaterial(secret_len, key_len, iv_len);
int r = 0;
- r = _export_secret(km->secret, secret_len, exporter_label_client_1_rtt.ptr(), exporter_label_client_1_rtt.size());
+ r = _export_secret(km->secret, secret_len, exporter_label_client_1_rtt.data(), exporter_label_client_1_rtt.size());
if (r != 1) {
Debug(tag, "Failed to export secret");
return r;
}
- r = _hkdf_expand_label(km->key, key_len, km->secret, secret_len, expand_label_key.ptr(), expand_label_key.size(), this->_digest);
+ r = _hkdf_expand_label(km->key, key_len, km->secret, secret_len, expand_label_key.data(), expand_label_key.size(), this->_digest);
if (r != 1) {
Debug(tag, "Failed to expand label for key");
return r;
}
- r = _hkdf_expand_label(km->iv, iv_len, km->secret, secret_len, expand_label_iv.ptr(), expand_label_iv.size(), this->_digest);
+ r = _hkdf_expand_label(km->iv, iv_len, km->secret, secret_len, expand_label_iv.data(), expand_label_iv.size(), this->_digest);
if (r != 1) {
Debug(tag, "Failed to expand label for iv");
return r;
@@ -342,18 +342,18 @@ QUICCrypto::_export_server_keymaterial(size_t secret_len, size_t key_len, size_t
KeyMaterial *km = new KeyMaterial(secret_len, key_len, iv_len);
int r = 0;
- r = _export_secret(km->secret, secret_len, exporter_label_server_1_rtt.ptr(), exporter_label_server_1_rtt.size());
+ r = _export_secret(km->secret, secret_len, exporter_label_server_1_rtt.data(), exporter_label_server_1_rtt.size());
if (r != 1) {
return r;
}
- r = _hkdf_expand_label(km->key, key_len, km->secret, secret_len, expand_label_key.ptr(), expand_label_key.size(), this->_digest);
+ r = _hkdf_expand_label(km->key, key_len, km->secret, secret_len, expand_label_key.data(), expand_label_key.size(), this->_digest);
if (r != 1) {
Debug(tag, "Failed to expand label for key");
return r;
}
- r = _hkdf_expand_label(km->iv, iv_len, km->secret, secret_len, expand_label_iv.ptr(), expand_label_iv.size(), this->_digest);
+ r = _hkdf_expand_label(km->iv, iv_len, km->secret, secret_len, expand_label_iv.data(), expand_label_iv.size(), this->_digest);
if (r != 1) {
Debug(tag, "Failed to expand label for iv");
return r;
diff --git a/proxy/hq/HQClientSession.cc b/proxy/hq/HQClientSession.cc
index ce4d6cc..91b0035 100644
--- a/proxy/hq/HQClientSession.cc
+++ b/proxy/hq/HQClientSession.cc
@@ -125,7 +125,7 @@ HQClientSession::release(ProxyClientTransaction *trans)
}
int
-HQClientSession::populate_protocol(ts::StringView *result, int size) const
+HQClientSession::populate_protocol(ts::string_view *result, int size) const
{
int retval = 0;
if (size > retval) {
diff --git a/proxy/hq/HQClientSession.h b/proxy/hq/HQClientSession.h
index 0eaecc8..964be0a 100644
--- a/proxy/hq/HQClientSession.h
+++ b/proxy/hq/HQClientSession.h
@@ -50,7 +50,7 @@ public:
int get_transact_count() const override;
const char *get_protocol_string() const override;
void release(ProxyClientTransaction *trans) override;
- int populate_protocol(ts::StringView *result, int size) const override;
+ int populate_protocol(ts::string_view *result, int size) const override;
// HQClientSession specific methods
void add_transaction(HQClientTransaction *);
--
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.
[trafficserver] 01/02: Merge branch 'master' into quic-latest
Posted by zw...@apache.org.
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 32106e9394162fcddb3665229144d038417c31f0
Merge: d48631f ff8b8a1
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Thu Oct 19 10:58:57 2017 -0600
Merge branch 'master' into quic-latest
* master: (32 commits)
add http 0.9 in find_proto_string
Add MIOBufferWriter class which writes to an MIOBuffer instance.
event loop changes
use os.path.join
added plugin exists condition
Added skip condition on http2 test for lack of curl http2
CID 1196423: Error handling issues (CHECKED_RETURN)
UDPBind with EventIO of UnixUDPConnection.
Optimize: rename close_UnixNetVConnection to NetHandler::free_netvc.
Allow binding value to non-nil variable in LuaVM for configuration files evaluations. This allows us to fix issue #2511.
Tests for chunked POST over HTTP1.1 and HTTP2 and GET chunked over HTTP1.1
fix the missing lock in TSVConnFdCreate api
Checking the retval of safe_getsockname() and safe_getpeername()
optimze: move http 408 response logic into transaction
log when ssl_multicert.config is successfully reloaded
Optimize: If failed on migrateToCurrentThread, put the server session back to global server session pool
This removes the FILE_WRITE mechanism from the core
remove unnecessary assertion for "alternate"
we have set the NO_FD in close already
Fix prepare_plugin
...
Conflicts:
lib/records/RecHttp.cc
lib/ts/ink_inet.cc
lib/ts/ink_inet.h
.gitignore | 2 +
Makefile.am | 2 +
README | 2 +-
cmd/traffic_layout/engine.cc | 5 +-
cmd/traffic_layout/file_system.cc | 4 +-
cmd/traffic_layout/traffic_layout.cc | 1 -
cmd/traffic_manager/test_metrics.cc | 37 +
cmd/traffic_manager/traffic_manager.cc | 9 +-
configure.ac | 2 +-
doc/Makefile.am | 2 +
doc/admin-guide/files/records.config.en.rst | 6 -
doc/admin-guide/plugins/ts_lua.en.rst | 1 +
.../api/types/TSOverridableConfigKey.en.rst | 1 +
example/remap/remap.cc | 13 +-
example/ssl_preaccept/ssl_preaccept.cc | 22 +-
iocore/aio/AIO.cc | 2 +-
iocore/aio/I_AIO.h | 8 +-
iocore/aio/P_AIO.h | 10 +-
iocore/aio/test_AIO.cc | 2 +-
iocore/cache/Cache.cc | 34 +-
iocore/cache/CacheHosting.cc | 2 +-
iocore/cache/CachePagesInternal.cc | 2 +-
iocore/cache/CacheRead.cc | 1 -
iocore/cache/I_Cache.h | 6 +-
iocore/cache/P_CacheDir.h | 4 +-
iocore/cache/P_CacheHosting.h | 4 +-
iocore/cache/P_CacheInternal.h | 10 +-
iocore/cache/P_CacheTest.h | 2 +-
iocore/cache/P_CacheVol.h | 2 +-
iocore/eventsystem/I_Action.h | 2 +-
iocore/eventsystem/I_EThread.h | 55 +-
iocore/eventsystem/I_EventProcessor.h | 4 +-
iocore/eventsystem/I_Lock.h | 3 +-
iocore/eventsystem/I_MIOBufferWriter.h | 174 ++
iocore/eventsystem/I_ProtectedQueue.h | 2 +
iocore/eventsystem/Makefile.am | 9 +-
iocore/eventsystem/P_UnixEThread.h | 6 +
iocore/eventsystem/ProtectedQueue.cc | 93 +-
iocore/eventsystem/UnixEThread.cc | 213 +--
.../eventsystem/unit-tests/test_MIOBufferWriter.cc | 217 +++
iocore/hostdb/P_HostDBProcessor.h | 1 +
iocore/net/Connection.cc | 1 -
iocore/net/I_NetVConnection.h | 12 +-
iocore/net/NetVConnection.cc | 4 +-
iocore/net/P_SSLNetVConnection.h | 19 +-
iocore/net/P_UnixNet.h | 82 +-
iocore/net/P_UnixNetState.h | 2 +-
iocore/net/P_UnixNetVConnection.h | 12 +-
iocore/net/SSLConfig.cc | 6 +
iocore/net/SSLNetVConnection.cc | 47 +-
iocore/net/SSLUtils.cc | 13 +-
iocore/net/UnixNet.cc | 106 +-
iocore/net/UnixNetAccept.cc | 11 +-
iocore/net/UnixNetProcessor.cc | 2 +-
iocore/net/UnixNetVConnection.cc | 171 +-
iocore/net/UnixUDPNet.cc | 3 +-
lib/bindings/bindings.cc | 39 +-
lib/cppapi/Logger.cc | 2 +-
lib/perl/lib/Apache/TS/AdminClient.pm | 44 +-
lib/records/I_RecCore.h | 3 -
lib/records/RecCore.cc | 9 -
lib/records/RecHttp.cc | 34 +-
lib/records/RecRawStats.cc | 2 +-
lib/ts/BaseLogFile.h | 8 +-
lib/ts/Diags.h | 2 +-
lib/ts/Makefile.am | 13 +-
lib/ts/Ptr.h | 2 +-
lib/ts/{MemView.cc => TextView.cc} | 41 +-
lib/ts/{MemView.h => TextView.h} | 1885 ++++++++++----------
lib/ts/ink_aiocb.h | 2 +-
lib/ts/ink_atomic.h | 24 +-
lib/ts/ink_inet.cc | 199 +--
lib/ts/ink_inet.h | 59 +-
lib/ts/ink_queue.cc | 10 +-
lib/ts/ink_queue.h | 4 +-
lib/ts/ink_queue_utils.cc | 4 +-
lib/ts/ink_res_init.cc | 2 +-
lib/ts/ink_resource.cc | 2 +-
lib/ts/ink_resource.h | 2 +-
lib/ts/string_view.h | 18 +
lib/ts/test_MemView.cc | 96 -
lib/ts/test_atomic.cc | 4 +-
lib/ts/unit-tests/test_TextView.cc | 147 ++
lib/ts/unit-tests/test_ink_inet.cc | 82 +
lib/ts/unit-tests/test_layout.cc | 3 +
lib/ts/unit-tests/test_string_view.cc | 5 +
mgmt/FileManager.cc | 529 ------
mgmt/FileManager.h | 51 +-
mgmt/LocalManager.cc | 7 +-
mgmt/LocalManager.h | 24 +-
mgmt/Makefile.am | 2 -
mgmt/MultiFile.cc | 241 ---
mgmt/MultiFile.h | 82 -
mgmt/ProcessManager.h | 2 +-
mgmt/ProxyConfig.cc | 4 +-
mgmt/RecordsConfig.cc | 2 -
mgmt/WebMgmtUtils.cc | 92 -
mgmt/WebMgmtUtils.h | 4 -
mgmt/api/APITestCliRemote.cc | 345 ----
mgmt/api/CfgContextManager.cc | 71 -
mgmt/api/CfgContextManager.h | 1 -
mgmt/api/CoreAPI.cc | 145 --
mgmt/api/CoreAPI.h | 9 -
mgmt/api/CoreAPIRemote.cc | 74 -
mgmt/api/EventControlMain.cc | 5 -
mgmt/api/INKMgmtAPI.cc | 37 -
mgmt/api/NetworkMessage.cc | 15 -
mgmt/api/NetworkMessage.h | 5 -
mgmt/api/TSControlMain.cc | 135 --
mgmt/api/include/mgmtapi.h | 45 -
plugins/background_fetch/configs.h | 2 +-
plugins/experimental/memcache/tsmemcache.cc | 6 +-
plugins/experimental/memcache/tsmemcache.h | 6 +-
.../ssl_cert_loader/ssl-cert-loader.cc | 18 +-
plugins/gzip/configuration.h | 2 +-
plugins/header_rewrite/conditions.cc | 3 +-
plugins/header_rewrite/header_rewrite.cc | 2 +-
plugins/header_rewrite/lulu.h | 33 -
plugins/healthchecks/healthchecks.c | 5 +-
plugins/regex_revalidate/regex_revalidate.c | 4 +-
plugins/s3_auth/s3_auth.cc | 2 +-
proxy/InkAPI.cc | 29 +-
proxy/Main.cc | 4 +-
proxy/ParentSelection.h | 2 +-
proxy/PluginVC.cc | 2 +-
proxy/PluginVC.h | 4 +-
proxy/ProxyClientSession.h | 9 +-
proxy/ProxyClientTransaction.h | 6 +-
proxy/StatPages.cc | 2 +-
proxy/TransformInternal.h | 8 +-
proxy/api/ts/InkAPIPrivateIOCore.h | 4 +-
proxy/congest/Congestion.h | 4 +-
proxy/hdrs/HTTP.cc | 11 +-
proxy/hdrs/URL.cc | 15 +-
proxy/hdrs/URL.h | 4 +-
proxy/http/ForwardedConfig.cc | 24 +-
proxy/http/Http1ClientSession.h | 6 +-
proxy/http/HttpConfig.cc | 2 +-
proxy/http/HttpSM.cc | 110 +-
proxy/http/HttpSM.h | 8 +-
proxy/http/HttpServerSession.h | 4 +-
proxy/http/HttpSessionManager.cc | 24 +-
proxy/http/HttpTransact.cc | 20 +
proxy/http/HttpTransact.h | 2 +
proxy/http/HttpTransactHeaders.cc | 39 +-
proxy/http/HttpTransactHeaders.h | 2 +-
proxy/http/Makefile.am | 6 +-
proxy/http/unit-tests/sym-links/MemView.cc | 1 -
proxy/http/unit-tests/test_ForwardedConfig.cc | 4 +-
.../http/unit-tests/test_ForwardedConfig_mocks.cc | 4 +-
proxy/http2/HTTP2.cc | 2 +-
proxy/http2/HTTP2.h | 2 +-
proxy/http2/Http2ClientSession.h | 10 +-
proxy/logging/LogBuffer.cc | 6 +-
proxy/logging/LogBuffer.h | 10 +-
proxy/logging/LogField.h | 1 +
proxy/logging/LogHost.cc | 6 +-
proxy/logging/LogObject.cc | 4 +-
proxy/logging/LogObject.h | 2 +-
tests/gold_tests/autest-site/conditions.test.ext | 8 +
.../autest-site/trafficserver_plugins.test.ext | 10 +-
.../chunked_encoding/chunked_encoding.test.py | 130 ++
.../chunked_encoding/gold/chunked_GET_200.gold | 13 +
.../chunked_encoding/gold/chunked_POST_200.gold | 13 +
.../chunked_encoding/gold/h2_chunked_POST_200.gold | 11 +
tests/gold_tests/chunked_encoding/ssl/server.key | 15 +
tests/gold_tests/chunked_encoding/ssl/server.pem | 32 +
tests/gold_tests/h2/http2.test.py | 3 +-
tests/gold_tests/headers/http408.gold | 3 +-
169 files changed, 2844 insertions(+), 4022 deletions(-)
diff --cc iocore/net/P_UnixNetVConnection.h
index 55e3c41,c6ad45e..ccd9a2c
--- a/iocore/net/P_UnixNetVConnection.h
+++ b/iocore/net/P_UnixNetVConnection.h
@@@ -430,9 -433,7 +433,8 @@@ UnixNetVConnection::set_action(Continua
// declarations for local use (within the net module)
- void close_UnixNetVConnection(UnixNetVConnection *vc, EThread *t);
void write_to_net(NetHandler *nh, UnixNetVConnection *vc, EThread *thread);
void write_to_net_io(NetHandler *nh, UnixNetVConnection *vc, EThread *thread);
+void net_activity(UnixNetVConnection *vc, EThread *thread);
#endif
diff --cc lib/records/RecHttp.cc
index 9f4eadf,e480c51..19d9481
--- a/lib/records/RecHttp.cc
+++ b/lib/records/RecHttp.cc
@@@ -36,27 -36,25 +36,27 @@@ SessionProtocolNameRegistry globalSessi
These are also used for NPN setup.
*/
- const char *const TS_ALPN_PROTOCOL_HTTP_0_9 = IP_PROTO_TAG_HTTP_0_9.ptr();
- const char *const TS_ALPN_PROTOCOL_HTTP_1_0 = IP_PROTO_TAG_HTTP_1_0.ptr();
- const char *const TS_ALPN_PROTOCOL_HTTP_1_1 = IP_PROTO_TAG_HTTP_1_1.ptr();
- const char *const TS_ALPN_PROTOCOL_HTTP_2_0 = IP_PROTO_TAG_HTTP_2_0.ptr();
- const char *const TS_ALPN_PROTOCOL_HTTP_QUIC = IP_PROTO_TAG_HTTP_QUIC.ptr();
-const char *const TS_ALPN_PROTOCOL_HTTP_0_9 = IP_PROTO_TAG_HTTP_0_9.data();
-const char *const TS_ALPN_PROTOCOL_HTTP_1_0 = IP_PROTO_TAG_HTTP_1_0.data();
-const char *const TS_ALPN_PROTOCOL_HTTP_1_1 = IP_PROTO_TAG_HTTP_1_1.data();
-const char *const TS_ALPN_PROTOCOL_HTTP_2_0 = IP_PROTO_TAG_HTTP_2_0.data();
++const char *const TS_ALPN_PROTOCOL_HTTP_0_9 = IP_PROTO_TAG_HTTP_0_9.data();
++const char *const TS_ALPN_PROTOCOL_HTTP_1_0 = IP_PROTO_TAG_HTTP_1_0.data();
++const char *const TS_ALPN_PROTOCOL_HTTP_1_1 = IP_PROTO_TAG_HTTP_1_1.data();
++const char *const TS_ALPN_PROTOCOL_HTTP_2_0 = IP_PROTO_TAG_HTTP_2_0.data();
++const char *const TS_ALPN_PROTOCOL_HTTP_QUIC = IP_PROTO_TAG_HTTP_QUIC.data();
const char *const TS_ALPN_PROTOCOL_GROUP_HTTP = "http";
const char *const TS_ALPN_PROTOCOL_GROUP_HTTP2 = "http2";
-const char *const TS_PROTO_TAG_HTTP_1_0 = TS_ALPN_PROTOCOL_HTTP_1_0;
-const char *const TS_PROTO_TAG_HTTP_1_1 = TS_ALPN_PROTOCOL_HTTP_1_1;
-const char *const TS_PROTO_TAG_HTTP_2_0 = TS_ALPN_PROTOCOL_HTTP_2_0;
-const char *const TS_PROTO_TAG_TLS_1_3 = IP_PROTO_TAG_TLS_1_3.data();
-const char *const TS_PROTO_TAG_TLS_1_2 = IP_PROTO_TAG_TLS_1_2.data();
-const char *const TS_PROTO_TAG_TLS_1_1 = IP_PROTO_TAG_TLS_1_1.data();
-const char *const TS_PROTO_TAG_TLS_1_0 = IP_PROTO_TAG_TLS_1_0.data();
-const char *const TS_PROTO_TAG_TCP = IP_PROTO_TAG_TCP.data();
-const char *const TS_PROTO_TAG_UDP = IP_PROTO_TAG_UDP.data();
-const char *const TS_PROTO_TAG_IPV4 = IP_PROTO_TAG_IPV4.data();
-const char *const TS_PROTO_TAG_IPV6 = IP_PROTO_TAG_IPV6.data();
+const char *const TS_PROTO_TAG_HTTP_1_0 = TS_ALPN_PROTOCOL_HTTP_1_0;
+const char *const TS_PROTO_TAG_HTTP_1_1 = TS_ALPN_PROTOCOL_HTTP_1_1;
+const char *const TS_PROTO_TAG_HTTP_2_0 = TS_ALPN_PROTOCOL_HTTP_2_0;
+const char *const TS_PROTO_TAG_HTTP_QUIC = TS_ALPN_PROTOCOL_HTTP_QUIC;
- const char *const TS_PROTO_TAG_TLS_1_3 = IP_PROTO_TAG_TLS_1_3.ptr();
- const char *const TS_PROTO_TAG_TLS_1_2 = IP_PROTO_TAG_TLS_1_2.ptr();
- const char *const TS_PROTO_TAG_TLS_1_1 = IP_PROTO_TAG_TLS_1_1.ptr();
- const char *const TS_PROTO_TAG_TLS_1_0 = IP_PROTO_TAG_TLS_1_0.ptr();
- const char *const TS_PROTO_TAG_TCP = IP_PROTO_TAG_TCP.ptr();
- const char *const TS_PROTO_TAG_UDP = IP_PROTO_TAG_UDP.ptr();
- const char *const TS_PROTO_TAG_IPV4 = IP_PROTO_TAG_IPV4.ptr();
- const char *const TS_PROTO_TAG_IPV6 = IP_PROTO_TAG_IPV6.ptr();
++const char *const TS_PROTO_TAG_TLS_1_3 = IP_PROTO_TAG_TLS_1_3.data();
++const char *const TS_PROTO_TAG_TLS_1_2 = IP_PROTO_TAG_TLS_1_2.data();
++const char *const TS_PROTO_TAG_TLS_1_1 = IP_PROTO_TAG_TLS_1_1.data();
++const char *const TS_PROTO_TAG_TLS_1_0 = IP_PROTO_TAG_TLS_1_0.data();
++const char *const TS_PROTO_TAG_TCP = IP_PROTO_TAG_TCP.data();
++const char *const TS_PROTO_TAG_UDP = IP_PROTO_TAG_UDP.data();
++const char *const TS_PROTO_TAG_IPV4 = IP_PROTO_TAG_IPV4.data();
++const char *const TS_PROTO_TAG_IPV6 = IP_PROTO_TAG_IPV6.data();
InkHashTable *TSProtoTags;
diff --cc lib/ts/ink_inet.cc
index 188519a,0fa4251..bd4de72
--- a/lib/ts/ink_inet.cc
+++ b/lib/ts/ink_inet.cc
@@@ -32,20 -32,18 +32,20 @@@
IpAddr const IpAddr::INVALID;
- const ts::StringView IP_PROTO_TAG_IPV4("ipv4", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_IPV6("ipv6", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_UDP("udp", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_TCP("tcp", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_QUIC("quic", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_TLS_1_0("tls/1.0", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_TLS_1_1("tls/1.1", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_TLS_1_2("tls/1.2", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_TLS_1_3("tls/1.3", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_HTTP_0_9("http/0.9", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_HTTP_1_0("http/1.0", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_HTTP_1_1("http/1.1", ts::StringView::literal);
- const ts::StringView IP_PROTO_TAG_HTTP_2_0("h2", ts::StringView::literal); // HTTP/2 over TLS
- const ts::StringView IP_PROTO_TAG_HTTP_QUIC("hq-05", ts::StringView::literal); // HTTP over QUIC
+ const ts::string_view IP_PROTO_TAG_IPV4("ipv4"_sv);
+ const ts::string_view IP_PROTO_TAG_IPV6("ipv6"_sv);
+ const ts::string_view IP_PROTO_TAG_UDP("udp"_sv);
+ const ts::string_view IP_PROTO_TAG_TCP("tcp"_sv);
++const ts::string_view IP_PROTO_TAG_QUIC("quic"_sv);
+ const ts::string_view IP_PROTO_TAG_TLS_1_0("tls/1.0"_sv);
+ const ts::string_view IP_PROTO_TAG_TLS_1_1("tls/1.1"_sv);
+ const ts::string_view IP_PROTO_TAG_TLS_1_2("tls/1.2"_sv);
+ const ts::string_view IP_PROTO_TAG_TLS_1_3("tls/1.3"_sv);
+ const ts::string_view IP_PROTO_TAG_HTTP_0_9("http/0.9"_sv);
+ const ts::string_view IP_PROTO_TAG_HTTP_1_0("http/1.0"_sv);
+ const ts::string_view IP_PROTO_TAG_HTTP_1_1("http/1.1"_sv);
-const ts::string_view IP_PROTO_TAG_HTTP_2_0("h2"_sv); // HTTP/2 over TLS
++const ts::string_view IP_PROTO_TAG_HTTP_2_0("h2"_sv); // HTTP/2 over TLS
++const ts::string_view IP_PROTO_TAG_HTTP_QUIC("hq-05"_sv); // HTTP over QUIC
uint32_t
ink_inet_addr(const char *s)
diff --cc lib/ts/ink_inet.h
index 585eaca,99c99c6..a2021db
--- a/lib/ts/ink_inet.h
+++ b/lib/ts/ink_inet.h
@@@ -46,20 -45,18 +45,20 @@@ IN6_IS_ADDR_UNSPECIFIED(in6_addr const
#endif
// IP protocol stack tags.
- extern const ts::StringView IP_PROTO_TAG_IPV4;
- extern const ts::StringView IP_PROTO_TAG_IPV6;
- extern const ts::StringView IP_PROTO_TAG_UDP;
- extern const ts::StringView IP_PROTO_TAG_TCP;
- extern const ts::StringView IP_PROTO_TAG_QUIC;
- extern const ts::StringView IP_PROTO_TAG_TLS_1_0;
- extern const ts::StringView IP_PROTO_TAG_TLS_1_1;
- extern const ts::StringView IP_PROTO_TAG_TLS_1_2;
- extern const ts::StringView IP_PROTO_TAG_TLS_1_3;
- extern const ts::StringView IP_PROTO_TAG_HTTP_0_9;
- extern const ts::StringView IP_PROTO_TAG_HTTP_1_0;
- extern const ts::StringView IP_PROTO_TAG_HTTP_1_1;
- extern const ts::StringView IP_PROTO_TAG_HTTP_2_0;
- extern const ts::StringView IP_PROTO_TAG_HTTP_QUIC;
+ extern const ts::string_view IP_PROTO_TAG_IPV4;
+ extern const ts::string_view IP_PROTO_TAG_IPV6;
+ extern const ts::string_view IP_PROTO_TAG_UDP;
+ extern const ts::string_view IP_PROTO_TAG_TCP;
++extern const ts::string_view IP_PROTO_TAG_QUIC;
+ extern const ts::string_view IP_PROTO_TAG_TLS_1_0;
+ extern const ts::string_view IP_PROTO_TAG_TLS_1_1;
+ extern const ts::string_view IP_PROTO_TAG_TLS_1_2;
+ extern const ts::string_view IP_PROTO_TAG_TLS_1_3;
+ extern const ts::string_view IP_PROTO_TAG_HTTP_0_9;
+ extern const ts::string_view IP_PROTO_TAG_HTTP_1_0;
+ extern const ts::string_view IP_PROTO_TAG_HTTP_1_1;
+ extern const ts::string_view IP_PROTO_TAG_HTTP_2_0;
++extern const ts::string_view IP_PROTO_TAG_HTTP_QUIC;
struct IpAddr; // forward declare.
--
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.