[trafficserver] branch 8.1.x updated: Updated ChangeLog
This is an automated email from the ASF dual-hosted git repository. zwoop pushed a commit to branch 8.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/8.1.x by this push: new 72fc02a Updated ChangeLog 72fc02a is described below commit 72fc02a2e5babba38d68d8284c0409477ce7aaac Author: Leif Hedstrom AuthorDate: Tue Apr 28 22:00:03 2020 -0600 Updated ChangeLog --- CHANGELOG-8.1.0 | 4 1 file changed, 4 insertions(+) diff --git a/CHANGELOG-8.1.0 b/CHANGELOG-8.1.0 index 7c3b8ea..3b01425 100644 --- a/CHANGELOG-8.1.0 +++ b/CHANGELOG-8.1.0 @@ -99,6 +99,7 @@ Changes with Apache Traffic Server 8.1.0 #5903 - Reduce unnecesary IOBufferBlock allocation #5920 - Cleanup: VIO #5921 - Cleanup AuTest for HTTP/2 + #5929 - Fix lost fragments when update object #5934 - Track scheduled events to (read|write)_vio.cont from Http2Stream #5945 - cachekey: allow multiple values for `--key-type` #5953 - Log H2 priority information @@ -145,6 +146,7 @@ Changes with Apache Traffic Server 8.1.0 #6450 - Adjust consume logic in data frame read #6464 - cache_range_requests plugin: detect and handle TSCacheUrlSet failures… #6470 - Remove update to unused variable + #6507 - CacheRead: catch and invalidate an asset with invalid negative cache_seek bytes value. #6518 - Fixes a bug where HostStatus::getHostStatus() creates too many stats. #6525 - Don't be overly aggressive on stream failures and closing #6534 - Ignore MgmtMessageHdr if ProcessManager is not running @@ -173,6 +175,8 @@ Changes with Apache Traffic Server 8.1.0 #6654 - Supports sharing cache_promote LRUs across multiple remap rules #6660 - Fix 8.1.x build with old openssl #6665 - Fix memory leak of HPACK + # - Fix link issue of test_libhttp2 on FreeBSD 12 with --enable-debug #6676 - Fixes the 'traffic_ctl host status' for trafficserver 8.1.x #6685 - 8.1.x backport cache_range_requests autests: remove last-modified #6688 - Fixes minor memory leak in configure_net + #6692 - Fix deprecated-copy warning in cache tool
[trafficserver] branch master updated: Updated docs for guaranteed_{min, max}_lifetime
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 1d529e7 Updated docs for guaranteed_{min,max}_lifetime 1d529e7 is described below commit 1d529e7e144ad41c9adcbd0df6371055923aab7b Author: Emanuele Rocca AuthorDate: Thu Apr 16 17:06:22 2020 +0200 Updated docs for guaranteed_{min,max}_lifetime The settings are taken into account whether or not heuristics are used. Update the documentation to reflect that. See https://phabricator.wikimedia.org/T249627#6062187 --- doc/admin-guide/files/records.config.en.rst | 32 + 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst index 5da2297..4467665 100644 --- a/doc/admin-guide/files/records.config.en.rst +++ b/doc/admin-guide/files/records.config.en.rst @@ -2052,6 +2052,20 @@ Cache Control The maximum age allowed for a stale response before it cannot be cached. +.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_min_lifetime INT 0 + :reloadable: + :overridable: + + Establishes a guaranteed minimum lifetime boundary for object freshness. + Setting this to ``0`` (default) disables the feature. + +.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_max_lifetime INT 31536000 + :reloadable: + :overridable: + + Establishes a guaranteed maximum lifetime boundary for object freshness. + Setting this to ``0`` disables the feature. + .. ts:cv:: CONFIG proxy.config.http.cache.range.lookup INT 1 :overridable: @@ -2273,24 +2287,6 @@ Heuristic Expiration The aging factor for freshness computations. |TS| stores an object for this percentage of the time that elapsed since it last changed. -.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_min_lifetime INT 0 - :reloadable: - :overridable: - - Establishes a guaranteed minimum lifetime boundary for freshness heuristics. - When heuristics are used, and the :ts:cv:`proxy.config.http.cache.heuristic_lm_factor` - aging factor is applied, the final minimum age calculated will never be - lower than the value in this variable. - -.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_max_lifetime INT 31536000 - :reloadable: - :overridable: - - Establishes a guaranteed maximum lifetime boundary for freshness heuristics. - When heuristics are used, and the :ts:cv:`proxy.config.http.cache.heuristic_lm_factor` - aging factor is applied, the final maximum age calculated will never be - higher than the value in this variable. - Dynamic Content & Content Negotiation =
[trafficserver] branch master updated: Updated docs for guaranteed_{min, max}_lifetime
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 1d529e7 Updated docs for guaranteed_{min,max}_lifetime 1d529e7 is described below commit 1d529e7e144ad41c9adcbd0df6371055923aab7b Author: Emanuele Rocca AuthorDate: Thu Apr 16 17:06:22 2020 +0200 Updated docs for guaranteed_{min,max}_lifetime The settings are taken into account whether or not heuristics are used. Update the documentation to reflect that. See https://phabricator.wikimedia.org/T249627#6062187 --- doc/admin-guide/files/records.config.en.rst | 32 + 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst index 5da2297..4467665 100644 --- a/doc/admin-guide/files/records.config.en.rst +++ b/doc/admin-guide/files/records.config.en.rst @@ -2052,6 +2052,20 @@ Cache Control The maximum age allowed for a stale response before it cannot be cached. +.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_min_lifetime INT 0 + :reloadable: + :overridable: + + Establishes a guaranteed minimum lifetime boundary for object freshness. + Setting this to ``0`` (default) disables the feature. + +.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_max_lifetime INT 31536000 + :reloadable: + :overridable: + + Establishes a guaranteed maximum lifetime boundary for object freshness. + Setting this to ``0`` disables the feature. + .. ts:cv:: CONFIG proxy.config.http.cache.range.lookup INT 1 :overridable: @@ -2273,24 +2287,6 @@ Heuristic Expiration The aging factor for freshness computations. |TS| stores an object for this percentage of the time that elapsed since it last changed. -.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_min_lifetime INT 0 - :reloadable: - :overridable: - - Establishes a guaranteed minimum lifetime boundary for freshness heuristics. - When heuristics are used, and the :ts:cv:`proxy.config.http.cache.heuristic_lm_factor` - aging factor is applied, the final minimum age calculated will never be - lower than the value in this variable. - -.. ts:cv:: CONFIG proxy.config.http.cache.guaranteed_max_lifetime INT 31536000 - :reloadable: - :overridable: - - Establishes a guaranteed maximum lifetime boundary for freshness heuristics. - When heuristics are used, and the :ts:cv:`proxy.config.http.cache.heuristic_lm_factor` - aging factor is applied, the final maximum age calculated will never be - higher than the value in this variable. - Dynamic Content & Content Negotiation =
[trafficserver] branch master updated: Remove tls_versions from host sni policy check
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 7567ff7 Remove tls_versions from host sni policy check 7567ff7 is described below commit 7567ff7d5930a33342302572aa190b9f196e9a44 Author: Susan Hinrichs AuthorDate: Mon Apr 20 18:06:41 2020 + Remove tls_versions from host sni policy check --- doc/admin-guide/files/records.config.en.rst | 2 ++ iocore/net/P_SNIActionPerformer.h | 5 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/doc/admin-guide/files/records.config.en.rst b/doc/admin-guide/files/records.config.en.rst index 21b9bb1..5da2297 100644 --- a/doc/admin-guide/files/records.config.en.rst +++ b/doc/admin-guide/files/records.config.en.rst @@ -1851,6 +1851,8 @@ Security You can override this global setting on a per domain basis in the :file:`sni.yaml` file using the :ref:`host_sni_policy attribute` action. + Currently, only the verify_client policy is checked for host name and SNI matching. + Cache Control = diff --git a/iocore/net/P_SNIActionPerformer.h b/iocore/net/P_SNIActionPerformer.h index 8dc95fe..2f9bd01 100644 --- a/iocore/net/P_SNIActionPerformer.h +++ b/iocore/net/P_SNIActionPerformer.h @@ -262,11 +262,6 @@ public: } return SSL_TLSEXT_ERR_OK; } - bool - TestClientSNIAction(const char *servername, const IpEndpoint , int ) const override - { -return !unset; - } }; class SNI_IpAllow : public ActionItem
[trafficserver] branch master updated: remove TSContSchedule, then rename TSContScheduleOnPool to TSContSchedule
This is an automated email from the ASF dual-hosted git repository. bcall pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new cefe482 remove TSContSchedule, then rename TSContScheduleOnPool to TSContSchedule cefe482 is described below commit cefe4826c919847385aa9d8459b9d5cfc20377f9 Author: Fei Deng AuthorDate: Tue Mar 31 14:12:38 2020 -0500 remove TSContSchedule, then rename TSContScheduleOnPool to TSContSchedule --- doc/.tx/config | 6 +- .../api/functions/TSContScheduleEvery.en.rst | 58 --- ...ule.en.rst => TSContScheduleEveryOnPool.en.rst} | 28 +++ .../api/functions/TSContScheduleOnPool.en.rst | 25 +-- .../api/functions/TSContScheduleOnThread.en.rst| 17 - .../api/functions/TSContThreadAffinitySet.en.rst | 4 +- .../continuations/activating-continuations.en.rst | 2 +- .../plugins/continuations/index.en.rst | 2 +- .../continuations/writing-handler-functions.en.rst | 5 +- ...ntSchedule.en.po => TSContScheduleOnPool.en.po} | 10 +-- .../continuations/activating-continuations.en.po | 4 +- .../plugins/continuations/index.en.po | 4 +- .../continuations/writing-handler-functions.en.po | 8 +- include/ts/ts.h| 2 - src/traffic_server/InkAPI.cc | 63 tests/gold_tests/cont_schedule/gold/schedule.gold | 4 - tests/gold_tests/cont_schedule/schedule.test.py| 49 tests/tools/plugins/cont_schedule.cc | 87 ++ 18 files changed, 75 insertions(+), 303 deletions(-) diff --git a/doc/.tx/config b/doc/.tx/config index 250615d..5ddb722 100644 --- a/doc/.tx/config +++ b/doc/.tx/config @@ -697,9 +697,9 @@ file_filter = locale//LC_MESSAGES/developer-guide/api/functions/TSContMute source_file = _build/locale/pot/developer-guide/api/functions/TSContMutexGet.en.pot source_lang = en -[apache-traffic-server-6x.developer-guide--api--functions--TSContSchedule_en] -file_filter = locale//LC_MESSAGES/developer-guide/api/functions/TSContSchedule.en.po -source_file = _build/locale/pot/developer-guide/api/functions/TSContSchedule.en.pot +[apache-traffic-server-6x.developer-guide--api--functions--TSContScheduleOnPool_en] +file_filter = locale//LC_MESSAGES/developer-guide/api/functions/TSContScheduleOnPool.en.po +source_file = _build/locale/pot/developer-guide/api/functions/TSContScheduleOnPool.en.pot source_lang = en [apache-traffic-server-6x.developer-guide--api--functions--TSDebug_en] diff --git a/doc/developer-guide/api/functions/TSContScheduleEvery.en.rst b/doc/developer-guide/api/functions/TSContScheduleEvery.en.rst deleted file mode 100644 index bc61392..000 --- a/doc/developer-guide/api/functions/TSContScheduleEvery.en.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed - with this work for additional information regarding copyright - ownership. The ASF licenses this file 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 - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. See the License for the specific language governing - permissions and limitations under the License. - -.. include:: ../../../common.defs - -.. default-domain:: c - -TSContScheduleEvery -*** - -Synopsis - - -.. code-block:: cpp - -#include - -.. function:: TSAction TSContScheduleEvery(TSCont contp, TSHRTime every) - -Description -=== - -Schedules :arg:`contp` to periodically run every :arg:`delay` milliseconds in the future. -This is approximate. The delay will be at least :arg:`delay` but possibly more. -Resolutions finer than roughly 5 milliseconds will not be effective. :arg:`contp` is -required to have a mutex, which is provided to :func:`TSContCreate`. - -The return value can be used to cancel the scheduled event via :func:`TSActionCancel`. This is -effective until the continuation :arg:`contp` is being dispatched. However, if it is scheduled on -another thread this can be problematic to be correctly timed. The return value can be checked with -:func:`TSActionDone` to see if the continuation ran before the return, which is possible if -:arg:`timeout` is `0`. Returns ``nullptr`` if thread affinity was cleared. - -TSContSchedule() or TSContScheduleEvery() will default to set the thread affinity to the calling thread -when no affinity is
[trafficserver] branch 9.0.x updated: Updated Changelog
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 6a9bf65 Updated Changelog 6a9bf65 is described below commit 6a9bf65f1b11483e12fa328d70ed9a86fae256b4 Author: Leif Hedstrom AuthorDate: Tue Apr 28 13:55:50 2020 -0600 Updated Changelog --- CHANGELOG-9.0.0 | 4 1 file changed, 4 insertions(+) diff --git a/CHANGELOG-9.0.0 b/CHANGELOG-9.0.0 index 08bfb8a..373d4b0 100644 --- a/CHANGELOG-9.0.0 +++ b/CHANGELOG-9.0.0 @@ -882,3 +882,7 @@ Changes with Apache Traffic Server 9.0.0 #6664 - cache_range_requests: remove unnecessary Last-Modified header from tests #6677 - Format to match perferred if/else formatting for sh scripts #6678 - Removes commented out code from example + #6694 - Normalizes function names to match hook names in intercept plugins + #6697 - Increase the default max_record_entries to match the original value + #6700 - traffic_dump: add nullptr check for sni string + #6704 - Removes ATS version from gold files
[trafficserver] branch master updated: slice plugin: add --include-regex, --exclude-regex parameters (#6701)
This is an automated email from the ASF dual-hosted git repository. eze pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 8fdf694 slice plugin: add --include-regex, --exclude-regex parameters (#6701) 8fdf694 is described below commit 8fdf694436e60131a5d8a9e2728e8c5aa0fe167a Author: Brian Olsen AuthorDate: Tue Apr 28 13:30:54 2020 -0600 slice plugin: add --include-regex, --exclude-regex parameters (#6701) --- doc/admin-guide/plugins/slice.en.rst | 21 +++ plugins/experimental/slice/Config.cc | 121 --- plugins/experimental/slice/Config.h| 28 +++- plugins/experimental/slice/HttpHeader.cc | 12 +- plugins/experimental/slice/Makefile.inc| 6 + plugins/experimental/slice/slice.cc| 22 ++- .../pluginTest/slice/slice_regex.test.py | 169 + 7 files changed, 346 insertions(+), 33 deletions(-) diff --git a/doc/admin-guide/plugins/slice.en.rst b/doc/admin-guide/plugins/slice.en.rst index b131178..a0a367d 100644 --- a/doc/admin-guide/plugins/slice.en.rst +++ b/doc/admin-guide/plugins/slice.en.rst @@ -88,6 +88,17 @@ The slice plugin supports the following options:: Disable writing block stitch errors to the error log. -d for short +--exclude-regex= (optional) +If provided, only slice what matches. +If not provided will always slice +Cannot be used with --include-regex +-e for short + +--include-regex= (optional) +If provided, only slice what matches. +If not provided will always slice +Cannot be used with --exclude-regex +-i for short Examples:: @@ -122,6 +133,16 @@ After modifying :file:`remap.config`, restart or reload traffic server (sudo traffic_ctl config reload) or (sudo traffic_ctl server restart) to activate the new configuration values. +Don't slice txt files:: + + slice.so --exclude-regex=\\.txt + slice.so -e \\.txt + +Slice only mp4 files:: + + slice.so --include-regex=\\.mp4 + slice.so -i \\.mp4 + Debug Options - diff --git a/plugins/experimental/slice/Config.cc b/plugins/experimental/slice/Config.cc index fb04ebb..17b7329 100644 --- a/plugins/experimental/slice/Config.cc +++ b/plugins/experimental/slice/Config.cc @@ -26,6 +26,20 @@ #include "ts/experimental.h" +Config::~Config() +{ + if (nullptr != m_regex_extra) { +#ifndef PCRE_STUDY_JIT_COMPILE +pcre_free(m_regex_extra); +#else +pcre_free_study(m_regex_extra); +#endif + } + if (nullptr != m_regex) { +pcre_free(m_regex); + } +} + int64_t Config::bytesFrom(char const *const valstr) { @@ -94,18 +108,20 @@ Config::fromArgs(int const argc, char const *const argv[]) // standard parsing constexpr struct option longopts[] = { {const_cast("blockbytes"), required_argument, nullptr, 'b'}, -{const_cast("blockbytes-test"), required_argument, nullptr, 't'}, -{const_cast("remap-host"), required_argument, nullptr, 'r'}, -{const_cast("pace-errorlog"), required_argument, nullptr, 'p'}, {const_cast("disable-errorlog"), no_argument, nullptr, 'd'}, +{const_cast("exclude-regex"), required_argument, nullptr, 'e'}, +{const_cast("include-regex"), required_argument, nullptr, 'i'}, {const_cast("throttle"), no_argument, nullptr, 'o'}, +{const_cast("pace-errorlog"), required_argument, nullptr, 'p'}, +{const_cast("remap-host"), required_argument, nullptr, 'r'}, +{const_cast("blockbytes-test"), required_argument, nullptr, 't'}, {nullptr, 0, nullptr, 0}, }; // getopt assumes args start at '1' so this hack is needed char *const *argvp = (const_cast(argv) - 1); for (;;) { -int const opt = getopt_long(argc + 1, argvp, "b:t:r:p:do", longopts, nullptr); +int const opt = getopt_long(argc + 1, argvp, "b:de:i:op:r:t:", longopts, nullptr); if (-1 == opt) { break; } @@ -122,6 +138,61 @@ Config::fromArgs(int const argc, char const *const argv[]) ERROR_LOG("Invalid blockbytes: %s", optarg); } } break; +case 'd': { + m_paceerrsecs = -1; +} break; +case 'e': { + if (None != m_regex_type) { +ERROR_LOG("Regex already specified!"); +break; + } + + const char *errptr; + int erroffset; + m_regexstr = optarg; + m_regex= pcre_compile(m_regexstr.c_str(), 0, , , NULL); + if (nullptr == m_regex) { +ERROR_LOG("Invalid regex: '%s'", m_regexstr.c_str()); + } else { +m_regex_type = Exclude; +m_regex_extra = pcre_study(m_regex, 0, ); +DEBUG_LOG("Using regex for url exclude: '%s'", m_regexstr.c_str()); + } +} break; +case 'i': { + if (None != m_regex_type) { +ERROR_LOG("Regex already specified!"); +break; + } + + const char
[trafficserver] branch master updated: Add Access log fields for ProxyProtocol Context
This is an automated email from the ASF dual-hosted git repository. sudheerv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git The following commit(s) were added to refs/heads/master by this push: new 583e5ed Add Access log fields for ProxyProtocol Context 583e5ed is described below commit 583e5ed5f3db1e33075b8e5b880d6f6bf1e730f3 Author: Sudheer Vinukonda AuthorDate: Tue Apr 28 08:56:20 2020 -0700 Add Access log fields for ProxyProtocol Context --- doc/admin-guide/logging/formatting.en.rst | 7 proxy/logging/Log.cc | 15 + proxy/logging/LogAccess.cc| 55 +++ proxy/logging/LogAccess.h | 3 ++ 4 files changed, 80 insertions(+) diff --git a/doc/admin-guide/logging/formatting.en.rst b/doc/admin-guide/logging/formatting.en.rst index c81f435..242afe2 100644 --- a/doc/admin-guide/logging/formatting.en.rst +++ b/doc/admin-guide/logging/formatting.en.rst @@ -505,6 +505,13 @@ shi Origin Server IP address resolved via DNS by |TS| for the origin server. shn Origin Server Host name of the origin server. nhi Origin Server Destination IP address of next hop nhp Origin Server Destination port of next hop +ppv Proxy Protocol Proxy Protocol Version used (if any) between the Loadbalancer + Versionand |TS| +pps Proxy Protocol Source IP received via Proxy Protocol context from the LB to + Source IP the |TS| +ppd Proxy Protocol Destination IP received via Proxy Protocol context from the LB + Dest IPto the |TS| + = == == .. note:: diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc index 8be6bd7..4d46f6d 100644 --- a/proxy/logging/Log.cc +++ b/proxy/logging/Log.cc @@ -917,6 +917,21 @@ Log::init_fields() global_field_list.add(field, false); field_symbol_hash.emplace("ctpd", field); + field = new LogField("proxy_protocol_version", "ppv", LogField::dINT, ::marshal_proxy_protocol_version, + reinterpret_cast(::unmarshal_str)); + global_field_list.add(field, false); + field_symbol_hash.emplace("ppv", field); + + field = new LogField("proxy_protocol_src_ip", "pps", LogField::IP, ::marshal_proxy_protocol_src_ip, + ::unmarshal_ip_to_str); + global_field_list.add(field, false); + field_symbol_hash.emplace("ppsip", field); + + field = new LogField("proxy_protocol_dst_ip", "ppd", LogField::IP, ::marshal_proxy_protocol_dst_ip, + ::unmarshal_ip_to_str); + global_field_list.add(field, false); + field_symbol_hash.emplace("ppdip", field); + field = new LogField("version_build_number", "vbn", LogField::STRING, ::marshal_version_build_number, (LogField::UnmarshalFunc)::unmarshal_str); global_field_list.add(field, false); diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc index 08f5b0a..6d8d9e1 100644 --- a/proxy/logging/LogAccess.cc +++ b/proxy/logging/LogAccess.cc @@ -1315,6 +1315,61 @@ LogAccess::marshal_version_build_number(char *buf) -*/ int +LogAccess::marshal_proxy_protocol_version(char *buf) +{ + const char *version_str = nullptr; + int len = INK_MIN_ALIGN; + + if (m_http_sm) { +NetVConnection::ProxyProtocolVersion ver = m_http_sm->t_state.pp_info.proxy_protocol_version; +switch (ver) { +case NetVConnection::ProxyProtocolVersion::V1: + version_str = "V1"; + break; +case NetVConnection::ProxyProtocolVersion::V2: + version_str = "V2"; + break; +case NetVConnection::ProxyProtocolVersion::UNDEFINED: +default: + version_str = "-"; + break; +} +len = LogAccess::strlen(version_str); + } + + if (buf) { +marshal_str(buf, version_str, len); + } + return len; +} + +/*- + -*/ +int +LogAccess::marshal_proxy_protocol_src_ip(char *buf) +{ + sockaddr const *ip = nullptr; + if (m_http_sm && m_http_sm->t_state.pp_info.proxy_protocol_version != NetVConnection::ProxyProtocolVersion::UNDEFINED) { +ip = _http_sm->t_state.pp_info.src_addr.sa; + } + return marshal_ip(buf, ip); +} + +/*- + -*/ +int +LogAccess::marshal_proxy_protocol_dst_ip(char *buf) +{ + sockaddr const *ip = nullptr; + if (m_http_sm && m_http_sm->t_state.pp_info.proxy_protocol_version != NetVConnection::ProxyProtocolVersion::UNDEFINED) { +ip = _http_sm->t_state.pp_info.dst_addr.sa; + } + return marshal_ip(buf, ip); +} +