[trafficserver] branch 8.0.x updated: HTTP/2: ignore unknown settings
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 8.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/8.0.x by this push: new 173a280 HTTP/2: ignore unknown settings 173a280 is described below commit 173a280fe3b6ae54b34086d5ea65896ec2b4653d Author: Masaori Koshiba AuthorDate: Fri Jun 14 14:44:20 2019 +0900 HTTP/2: ignore unknown settings (cherry picked from commit 74d65887625fe9a291a27520598dc93326d800b0) Conflicts: proxy/http2/Http2ConnectionState.h --- proxy/http2/HTTP2.cc | 3 ++- proxy/http2/Http2ConnectionState.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/proxy/http2/HTTP2.cc b/proxy/http2/HTTP2.cc index d1e9884..a74415b 100644 --- a/proxy/http2/HTTP2.cc +++ b/proxy/http2/HTTP2.cc @@ -154,7 +154,8 @@ http2_settings_parameter_is_valid(const Http2SettingsParameter ) }; if (param.id == 0 || param.id >= HTTP2_SETTINGS_MAX) { -return false; +// Do nothing - 6.5.2 Unsupported parameters MUST be ignored +return true; } if (param.value > settings_max[param.id]) { diff --git a/proxy/http2/Http2ConnectionState.h b/proxy/http2/Http2ConnectionState.h index b8a8b6e..e6f4ff9 100644 --- a/proxy/http2/Http2ConnectionState.h +++ b/proxy/http2/Http2ConnectionState.h @@ -86,7 +86,7 @@ public: if (0 < id && id < HTTP2_SETTINGS_MAX) { return this->settings[indexof(id)] = value; } else { - ink_assert(!"Bad Settings Identifier"); + // Do nothing - 6.5.2 Unsupported parameters MUST be ignored } return 0;
[trafficserver] branch 9.0.x updated: Fixes cppcheck issues for cookie_remap plugin
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new c6e9cc9 Fixes cppcheck issues for cookie_remap plugin c6e9cc9 is described below commit c6e9cc918eeafd7a450a3dda11ff80cce643bbf1 Author: Randall Meyer AuthorDate: Thu Nov 14 10:21:46 2019 +0800 Fixes cppcheck issues for cookie_remap plugin (cherry picked from commit e2c4d72b090d75c0f2ea5be6b6910d96cc9cb94e) --- plugins/experimental/cookie_remap/cookie_remap.cc | 3 --- plugins/experimental/cookie_remap/cookiejar.cc| 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/plugins/experimental/cookie_remap/cookie_remap.cc b/plugins/experimental/cookie_remap/cookie_remap.cc index 9fb6991..421c52d 100644 --- a/plugins/experimental/cookie_remap/cookie_remap.cc +++ b/plugins/experimental/cookie_remap/cookie_remap.cc @@ -178,7 +178,6 @@ void urlencode(std::string ) { size_t pos = 0; - std::string replacement; for (; pos < str.length(); pos++) { if (!isalnum(str[pos])) { char dec[2]; @@ -765,8 +764,6 @@ using OpMap = std::vector; static bool build_op(op , OpMap const ) { - StringPair m; - subop *sub = new subop(); // loop through the array of key->value pairs diff --git a/plugins/experimental/cookie_remap/cookiejar.cc b/plugins/experimental/cookie_remap/cookiejar.cc index 0b3a05a..1f7d5d3 100644 --- a/plugins/experimental/cookie_remap/cookiejar.cc +++ b/plugins/experimental/cookie_remap/cookiejar.cc @@ -82,14 +82,13 @@ CookieJar::parse(const string , const char *sepstr, bool val_check, bool mai cp = arg_copy; char empty[] = ""; for (key = strsep(, sepstr); key != nullptr; key = strsep(, sepstr)) { -int val_len; char *val = strchr(key, '='); char *addme = nullptr; if (val) { /* split key and value */ - *val++ = '\0'; - val_len = strlen(val); + *val++ = '\0'; + int val_len = strlen(val); if (val_len > 0) { /* if we have DQUOTES around our value then drop them */
[trafficserver] branch 9.0.x updated (8f373b4 -> 73a6ece)
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a change to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git. from 8f373b4 Fix build warnings, since some configs do not have docs new 23d6b2f tslua: Exposes set/get method for server request objects new 8978e64 Re-order READ_REQUEST_ HDR_HOOK and PRE_REMAP_HOOK new cece5e5 Updates yaml-cpp to 0.6.3 new 73a6ece Fixed gcc7 issue with yaml-cpp 0.6.3 The 4 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: doc/admin-guide/plugins/header_rewrite.en.rst |2 +- doc/admin-guide/plugins/lua.en.rst | 42 + lib/yamlcpp/.gitignore |1 + lib/yamlcpp/CMakeLists.txt | 134 +-- lib/yamlcpp/README.md |4 +- lib/yamlcpp/include/yaml-cpp/binary.h | 12 +- lib/yamlcpp/include/yaml-cpp/contrib/anchordict.h |3 +- lib/yamlcpp/include/yaml-cpp/emitter.h | 33 +- lib/yamlcpp/include/yaml-cpp/eventhandler.h|7 +- lib/yamlcpp/include/yaml-cpp/exceptions.h | 44 +- lib/yamlcpp/include/yaml-cpp/node/convert.h| 11 +- lib/yamlcpp/include/yaml-cpp/node/detail/impl.h| 81 +- .../include/yaml-cpp/node/detail/iterator.h| 16 +- lib/yamlcpp/include/yaml-cpp/node/detail/memory.h |5 +- lib/yamlcpp/include/yaml-cpp/node/detail/node.h| 12 +- .../include/yaml-cpp/node/detail/node_data.h |2 +- .../include/yaml-cpp/node/detail/node_iterator.h |4 +- lib/yamlcpp/include/yaml-cpp/node/impl.h | 115 +- lib/yamlcpp/include/yaml-cpp/node/node.h |4 + lib/yamlcpp/include/yaml-cpp/noncopyable.h | 25 - lib/yamlcpp/include/yaml-cpp/ostream_wrapper.h | 10 +- lib/yamlcpp/include/yaml-cpp/parser.h | 10 +- lib/yamlcpp/include/yaml-cpp/traits.h | 32 + lib/yamlcpp/src/binary.cpp | 11 +- lib/yamlcpp/src/collectionstack.h |6 +- lib/yamlcpp/src/contrib/graphbuilder.cpp |2 +- lib/yamlcpp/src/contrib/graphbuilderadapter.cpp|6 +- lib/yamlcpp/src/contrib/graphbuilderadapter.h | 16 +- lib/yamlcpp/src/contrib/yaml-cpp.natvis| 32 + lib/yamlcpp/src/contrib/yaml-cpp.natvis.md |9 + lib/yamlcpp/src/directives.cpp |9 +- lib/yamlcpp/src/emitfromevents.cpp |7 +- lib/yamlcpp/src/emitter.cpp| 10 +- lib/yamlcpp/src/emitterstate.cpp | 44 +- lib/yamlcpp/src/emitterstate.h |9 +- lib/yamlcpp/src/emitterutils.cpp | 28 +- lib/yamlcpp/src/exceptions.cpp |2 +- lib/yamlcpp/src/exp.h | 60 +- lib/yamlcpp/src/node_data.cpp | 32 +- lib/yamlcpp/src/nodebuilder.cpp| 11 +- lib/yamlcpp/src/nodebuilder.h |6 +- lib/yamlcpp/src/nodeevents.cpp |4 +- lib/yamlcpp/src/nodeevents.h |8 +- lib/yamlcpp/src/ostream_wrapper.cpp| 11 +- lib/yamlcpp/src/parser.cpp |6 +- lib/yamlcpp/src/ptr_vector.h | 12 +- lib/yamlcpp/src/regex_yaml.cpp | 20 +- lib/yamlcpp/src/regex_yaml.h | 13 +- lib/yamlcpp/src/scanner.cpp| 13 +- lib/yamlcpp/src/scanner.h |2 +- lib/yamlcpp/src/scanscalar.cpp |2 +- lib/yamlcpp/src/scantoken.cpp |4 +- lib/yamlcpp/src/setting.h | 24 +- lib/yamlcpp/src/simplekey.cpp |2 +- lib/yamlcpp/src/singledocparser.cpp| 26 +- lib/yamlcpp/src/singledocparser.h | 14 +- lib/yamlcpp/src/stream.cpp | 32 +- lib/yamlcpp/src/stream.h |9 +- lib/yamlcpp/src/streamcharsource.h |8 +- lib/yamlcpp/src/tag.cpp|5 +- lib/yamlcpp/src/token.h| 13 +- lib/yamlcpp/test/CMakeLists.txt| 73 +- lib/yamlcpp/test/create-emitter-tests.py | 28 +- lib/yamlcpp/test/integration/emitter_test.cpp | 67 +- .../test/integration/error_messages_test.cpp | 61 + lib/yamlcpp/test/integration/gen_emitter_test.cpp | 1177 +++- lib/yamlcpp/test/integration/handler_spec_test.cpp | 14 +- lib/yamlcpp/test/integration/load_node_test.cpp| 22 +-
[trafficserver] branch master updated (8857fa3 -> e2c4d72)
This is an automated email from the ASF dual-hosted git repository. rrm pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git. from 8857fa3 Fixed gcc7 issue with yaml-cpp 0.6.3 add e2c4d72 Fixes cppcheck issues for cookie_remap plugin No new revisions were added by this update. Summary of changes: plugins/experimental/cookie_remap/cookie_remap.cc | 3 --- plugins/experimental/cookie_remap/cookiejar.cc| 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-)
[trafficserver] 02/04: Re-order READ_REQUEST_ HDR_HOOK and PRE_REMAP_HOOK
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git commit 8978e64d26b0fcc92192444c6adb502a95c3a58c Author: Miles Libbey AuthorDate: Tue Nov 12 11:38:19 2019 -0800 Re-order READ_REQUEST_ HDR_HOOK and PRE_REMAP_HOOK #5795 notes that READ_REQUEST_HDR_HOOK and READ_REQUEST_PRE_REMAP_HOOK in the diagram are reversed from actual. The state diagram in https://docs.trafficserver.apache.org/en/8.0.x/developer-guide/plugins/hooks-and-transactions/index.en.html#http-transaction-state-diagram show that READ_REQUEST is before PRE_REMAP. (cherry picked from commit fe0d476ec04678ae5bda6ae2a24cd5985a9dd882) --- doc/admin-guide/plugins/header_rewrite.en.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/admin-guide/plugins/header_rewrite.en.rst b/doc/admin-guide/plugins/header_rewrite.en.rst index b74e471..84ce216 100644 --- a/doc/admin-guide/plugins/header_rewrite.en.rst +++ b/doc/admin-guide/plugins/header_rewrite.en.rst @@ -880,7 +880,7 @@ one forces the beginning of a new ruleset. node[shape=record]; Client[height=4, label="{ Client|{|} }"]; - ATS[height=4, fontsize=10,label="{ {{Global:\nREAD_REQUEST_PRE_REMAP_HOOK|Global:\nREAD_REQUEST_HDR_HOOK\nRemap rule:\nREMAP_PSEUDO_HOOK}|SEND_RESPONSE_HDR_HOOK}|ATS |{SEND_REQUEST_HDR_HOOK|READ_RESPONSE_HDR_HOOK} }",xlabel="ATS"]; + ATS[height=4, fontsize=10,label="{ {{Global:\nREAD_REQUEST_HDR_HOOK\nREAD_REQUEST_PRE_REMAP_HOOK|Remap rule:\nREMAP_PSEUDO_HOOK}|SEND_RESPONSE_HDR_HOOK}|ATS |{SEND_REQUEST_HDR_HOOK|READ_RESPONSE_HDR_HOOK} }",xlabel="ATS"]; Origin[height=4, label="{ {|}|Origin }"]; Client:p1 -> ATS:clientside0 [ label = "Request" ];
[trafficserver] branch 9.0.x updated: Fixed build issues with hwloc 2.x API changes
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/9.0.x by this push: new eed5cd8 Fixed build issues with hwloc 2.x API changes eed5cd8 is described below commit eed5cd8d21564325402769fce5f8e4d9d777bf89 Author: Bryan Call AuthorDate: Fri Nov 8 11:37:23 2019 -0800 Fixed build issues with hwloc 2.x API changes (cherry picked from commit e655af7faeaaadd182ce17fd5bd617cafc95aff7) --- iocore/aio/AIO.cc| 5 + iocore/eventsystem/UnixEventProcessor.cc | 9 + 2 files changed, 14 insertions(+) diff --git a/iocore/aio/AIO.cc b/iocore/aio/AIO.cc index 07eb8ae..5543919 100644 --- a/iocore/aio/AIO.cc +++ b/iocore/aio/AIO.cc @@ -192,9 +192,14 @@ struct AIOThreadInfo : public Continuation { (void)event; (void)e; #if TS_USE_HWLOC +#if HWLOC_API_VERSION >= 0x2 +hwloc_set_membind(ink_get_topology(), hwloc_topology_get_topology_nodeset(ink_get_topology()), HWLOC_MEMBIND_INTERLEAVE, + HWLOC_MEMBIND_THREAD | HWLOC_MEMBIND_BYNODESET); +#else hwloc_set_membind_nodeset(ink_get_topology(), hwloc_topology_get_topology_nodeset(ink_get_topology()), HWLOC_MEMBIND_INTERLEAVE, HWLOC_MEMBIND_THREAD); #endif +#endif aio_thread_main(this); delete this; return EVENT_DONE; diff --git a/iocore/eventsystem/UnixEventProcessor.cc b/iocore/eventsystem/UnixEventProcessor.cc index 2661b67..c2f7fad 100644 --- a/iocore/eventsystem/UnixEventProcessor.cc +++ b/iocore/eventsystem/UnixEventProcessor.cc @@ -230,7 +230,11 @@ ThreadAffinityInitializer::alloc_numa_stack(EThread *t, size_t stacksize) if (mem_policy != HWLOC_MEMBIND_DEFAULT) { // Let's temporarily set the memory binding to our destination NUMA node +#if HWLOC_API_VERSION >= 0x2 +hwloc_set_membind(ink_get_topology(), nodeset, mem_policy, HWLOC_MEMBIND_THREAD | HWLOC_MEMBIND_BYNODESET); +#else hwloc_set_membind_nodeset(ink_get_topology(), nodeset, mem_policy, HWLOC_MEMBIND_THREAD); +#endif } // Alloc our stack @@ -238,8 +242,13 @@ ThreadAffinityInitializer::alloc_numa_stack(EThread *t, size_t stacksize) if (mem_policy != HWLOC_MEMBIND_DEFAULT) { // Now let's set it back to default for this thread. +#if HWLOC_API_VERSION >= 0x2 +hwloc_set_membind(ink_get_topology(), hwloc_topology_get_topology_nodeset(ink_get_topology()), HWLOC_MEMBIND_DEFAULT, + HWLOC_MEMBIND_THREAD | HWLOC_MEMBIND_BYNODESET); +#else hwloc_set_membind_nodeset(ink_get_topology(), hwloc_topology_get_topology_nodeset(ink_get_topology()), HWLOC_MEMBIND_DEFAULT, HWLOC_MEMBIND_THREAD); +#endif } hwloc_bitmap_free(nodeset);
[trafficserver] 01/04: tslua: Exposes set/get method for server request objects
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git commit 23d6b2f2e4ae13f6562f1c28c0290de54b1ab5a3 Author: Randall Meyer AuthorDate: Thu Nov 7 16:06:39 2019 -0800 tslua: Exposes set/get method for server request objects (cherry picked from commit 97692a552c8ad72a1cc8a890cdf11e53d3a6a1bc) --- doc/admin-guide/plugins/lua.en.rst | 42 plugins/lua/ts_lua_server_request.c | 55 - 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/doc/admin-guide/plugins/lua.en.rst b/doc/admin-guide/plugins/lua.en.rst index dd0d197..5362435 100644 --- a/doc/admin-guide/plugins/lua.en.rst +++ b/doc/admin-guide/plugins/lua.en.rst @@ -1903,6 +1903,48 @@ ts.server_request.set_url_scheme :ref:`TOP ` +ts.server_request.get_method + +**syntax:** *ts.server_request.get_method()* + +**context:** function @ TS_LUA_HOOK_SEND_REQUEST_HDR hook point or later + +**description:** This function can be used to retrieve the current server request's method name. String like "GET" or "POST" is returned. + +Here is an example: + +:: + +function send_request() +local method = ts.server_request.get_method() +ts.debug(method) +end + +function do_remap() +ts.hook(TS_LUA_HOOK_SEND_REQUEST_HDR, send_request) +return 0 +end + +Then ``HEAD /`` will yield the output: + +``HEAD`` + +:ref:`TOP ` + +ts.server_request.set_method + +**syntax:** *ts.server_request.set_method()* + +**context:** function @ TS_LUA_HOOK_SEND_REQUEST_HDR hook point or later + +**description:** This function can be used to override the current server request's method with METHOD_NAME. + +:: + +ts.server_request.set_method('HEAD') + +:ref:`TOP ` + ts.server_response.get_status - **syntax:** *status = ts.server_response.get_status()* diff --git a/plugins/lua/ts_lua_server_request.c b/plugins/lua/ts_lua_server_request.c index c927217..2aa7e45 100644 --- a/plugins/lua/ts_lua_server_request.c +++ b/plugins/lua/ts_lua_server_request.c @@ -51,6 +51,7 @@ static void ts_lua_inject_server_request_uri_api(lua_State *L); static void ts_lua_inject_server_request_uri_args_api(lua_State *L); static void ts_lua_inject_server_request_uri_params_api(lua_State *L); static void ts_lua_inject_server_request_url_api(lua_State *L); +static void ts_lua_inject_server_request_method_api(lua_State *L); static int ts_lua_server_request_header_get(lua_State *L); static int ts_lua_server_request_header_set(lua_State *L); @@ -63,6 +64,8 @@ static int ts_lua_server_request_set_uri_args(lua_State *L); static int ts_lua_server_request_get_uri_args(lua_State *L); static int ts_lua_server_request_set_uri_params(lua_State *L); static int ts_lua_server_request_get_uri_params(lua_State *L); +static int ts_lua_server_request_get_method(lua_State *L); +static int ts_lua_server_request_set_method(lua_State *L); static int ts_lua_server_request_get_url_host(lua_State *L); static int ts_lua_server_request_set_url_host(lua_State *L); static int ts_lua_server_request_get_url_scheme(lua_State *L); @@ -87,7 +90,7 @@ ts_lua_inject_server_request_api(lua_State *L) ts_lua_inject_server_request_headers_api(L); ts_lua_inject_server_request_get_header_size_api(L); ts_lua_inject_server_request_get_body_size_api(L); - + ts_lua_inject_server_request_method_api(L); ts_lua_inject_server_request_uri_api(L); ts_lua_inject_server_request_uri_args_api(L); ts_lua_inject_server_request_uri_params_api(L); @@ -924,3 +927,53 @@ ts_lua_server_request_server_addr_set_outgoing_addr(lua_State *L) return 0; } + +static void +ts_lua_inject_server_request_method_api(lua_State *L) +{ + lua_pushcfunction(L, ts_lua_server_request_get_method); + lua_setfield(L, -2, "get_method"); + + lua_pushcfunction(L, ts_lua_server_request_set_method); + lua_setfield(L, -2, "set_method"); +} + +static int +ts_lua_server_request_get_method(lua_State *L) +{ + const char *method; + int method_len; + + ts_lua_http_ctx *http_ctx; + + GET_HTTP_CONTEXT(http_ctx, L); + + method = TSHttpHdrMethodGet(http_ctx->server_request_bufp, http_ctx->server_request_hdrp, _len); + + if (method && method_len) { +lua_pushlstring(L, method, method_len); + } else { +lua_pushnil(L); + } + + return 1; +} + +static int +ts_lua_server_request_set_method(lua_State *L) +{ + const char *method; + size_t method_len; + + ts_lua_http_ctx *http_ctx; + + GET_HTTP_CONTEXT(http_ctx, L); + + method = luaL_checklstring(L, 1, _len); + + if (method) { +TSHttpHdrMethodSet(http_ctx->server_request_bufp, http_ctx->server_request_hdrp, method, method_len); + } + + return 0; +}
[trafficserver] 04/04: Fixed gcc7 issue with yaml-cpp 0.6.3
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git commit 73a6ecefd105b6113a0f9e968b01de0d1e541049 Author: Bryan Call AuthorDate: Wed Nov 13 15:43:46 2019 -0800 Fixed gcc7 issue with yaml-cpp 0.6.3 (cherry picked from commit 8857fa37f2cb1d985eff34535bd5eac4e0f91a01) --- plugins/experimental/cookie_remap/cookie_remap.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/experimental/cookie_remap/cookie_remap.cc b/plugins/experimental/cookie_remap/cookie_remap.cc index b5eff3e..9fb6991 100644 --- a/plugins/experimental/cookie_remap/cookie_remap.cc +++ b/plugins/experimental/cookie_remap/cookie_remap.cc @@ -873,10 +873,10 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char *errbuf, int errbuf_s } for (YAML::const_iterator it2 = it->second.begin(); it2 != it->second.end(); ++it2) { -const YAML::Node = it2->first; -const YAML::Node = it2->second; +const YAML::Node first = it2->first; +const YAML::Node second = it2->second; -if (second.Type() != YAML::NodeType::Scalar) { +if (second.IsScalar() == false) { const string reason = "All op nodes must be of type scalar"; TSError("Invalid YAML Configuration format for cookie_remap: %s, reason: %s", filename.c_str(), reason.c_str()); return TS_ERROR;
[trafficserver] branch master updated (14aadf4 -> 8857fa3)
This is an automated email from the ASF dual-hosted git repository. bcall pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git. from 14aadf4 Updates yaml-cpp to 0.6.3 add 8857fa3 Fixed gcc7 issue with yaml-cpp 0.6.3 No new revisions were added by this update. Summary of changes: plugins/experimental/cookie_remap/cookie_remap.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)