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 7b335ee0c8835ee170c172ba5cc0be1b9f2f853b Merge: 747c741 46acdc8 Author: Leif Hedstrom <[email protected]> AuthorDate: Thu Jul 12 19:38:34 2018 -0600 Merge remote-tracking branch 'origin/master' into quic-latest * origin/master: (69 commits) Refresh upstream connection throttling. Reduce lock contention, add maximum count, rate limit alerts. Runroot: add new option to specify layout during creating ASAN: stack-use-after-scope Add flag to enable the reload feature. Disable by default Add support for reloading the lua script in global plugin mode Fix bug on loading of lua script add a reason tag to traffic_control host subcommand. traffic_manager: Cleanup handling of proxy args. traffic_manager: fix --tsArgs to work. Plugin, makefile, readme. Fix RecConfigReadPluginDir and clean up RecCore Remove proxy.config.config_dir from records.config Handle response parsing case where EOF happens before any data arrives. Enforce sphinx>=1.7.5 when building docs IntrusiveDList: Refreshed for C++ eleventy, added const_iterator. Doc: Fix build error in Lua plugin documentation. Fix crashes from early post return fix. Avoid cert callback if no verification is requested. make sure the index stays positive Plugin, makefile, readme and schema ... .gitignore | 5 +- .vscode/c_cpp_properties.json | 1 + CMakeLists.txt | 1 + Makefile.am | 2 +- build/crypto.m4 | 15 + build/yaml-cpp.m4 | 22 +- ci/jenkins/bin/clang-analyzer.sh | 6 + {proxy/config => configs}/Makefile.am | 4 +- {proxy/config => configs}/body_factory/Makefile.am | 0 .../body_factory/default/.body_factory_info | 0 .../body_factory/default/Makefile.am | 0 .../config => configs}/body_factory/default/README | 0 .../body_factory/default/access#denied | 0 .../default/access#proxy_auth_required | 0 .../body_factory/default/access#redirect_url | 0 .../body_factory/default/access#ssl_forbidden | 0 .../body_factory/default/cache#not_in_cache | 0 .../body_factory/default/cache#read_error | 0 .../body_factory/default/connect#dns_failed | 0 .../body_factory/default/connect#failed_connect | 0 .../body_factory/default/connect#hangup | 0 .../body_factory/default/default | 0 .../body_factory/default/interception#no_host | 0 .../default/redirect#moved_permanently | 0 .../default/redirect#moved_temporarily | 0 .../body_factory/default/request#cycle_detected | 0 .../default/request#invalid_content_length | 0 .../body_factory/default/request#no_content_length | 0 .../body_factory/default/request#no_host | 0 .../default/request#scheme_unsupported | 0 .../body_factory/default/request#syntax_error | 0 .../body_factory/default/response#bad_response | 0 .../body_factory/default/response#bad_version | 0 .../body_factory/default/timeout#activity | 0 .../body_factory/default/timeout#inactivity | 0 .../body_factory/default/transcoding#unsupported | 0 .../body_factory/default/urlrouting#no_mapping | 0 {proxy/config => configs}/cache.config.default | 0 {proxy/config => configs}/hosting.config.default | 0 {proxy/config => configs}/ip_allow.config.default | 0 .../logging.yaml.default | 4 +- {proxy/config => configs}/parent.config.default | 0 {proxy/config => configs}/plugin.config.default | 0 .../config => configs}/records.config.default.in | 2 +- {proxy/config => configs}/remap.config.default | 0 {proxy/config => configs}/socks.config.default | 0 {proxy/config => configs}/splitdns.config.default | 0 .../ssl_multicert.config.default | 0 configs/ssl_server_name.yaml.default | 28 + .../config => configs}/storage.config.default.in | 0 {proxy/config => configs}/volume.config.default | 0 configure.ac | 33 +- contrib/python/compare_RecordsConfigcc.py | 1 - doc/.tx/config | 6 +- doc/admin-guide/files/index.en.rst | 8 +- .../{logging.config.en.rst => logging.yaml.en.rst} | 72 +- doc/admin-guide/files/records.config.en.rst | 118 ++- ...e.config.en.rst => ssl_server_name.yaml.en.rst} | 6 +- doc/admin-guide/layer-4-routing.en.rst | 4 +- doc/admin-guide/logging/destinations.en.rst | 8 +- doc/admin-guide/logging/examples.en.rst | 17 +- doc/admin-guide/logging/filters.en.rst | 4 +- doc/admin-guide/logging/formatting.en.rst | 9 +- doc/admin-guide/logging/rotation.en.rst | 2 +- doc/admin-guide/logging/understanding.en.rst | 4 +- .../statistics/core/http-connection.en.rst | 2 +- doc/admin-guide/plugins/cachekey.en.rst | 40 + doc/admin-guide/plugins/compress.en.rst | 2 +- doc/admin-guide/plugins/esi.en.rst | 2 +- doc/admin-guide/plugins/header_rewrite.en.rst | 2 +- doc/admin-guide/plugins/lua.en.rst | 23 +- doc/appendices/command-line/traffic_ctl.en.rst | 12 +- doc/appendices/command-line/traffic_layout.en.rst | 98 +-- doc/checkvers.py | 12 +- doc/checkvers.sh | 40 + doc/conf.py | 12 +- .../api/functions/TSHttpOverridableConfig.en.rst | 4 +- .../api/types/TSOverridableConfigKey.en.rst | 4 +- .../internal-libraries/buffer-writer.en.rst | 92 ++- .../internal-libraries/index.en.rst | 1 + .../internal-libraries/intrusive-list.en.rst | 153 ++++ doc/manpages.py | 2 +- example/cppapi/async_http_fetch/AsyncHttpFetch.cc | 4 +- .../AsyncHttpFetchStreaming.cc | 4 +- example/cppapi/async_timer/AsyncTimer.cc | 4 +- example/cppapi/boom/boom.cc | 4 +- example/cppapi/clientredirect/ClientRedirect.cc | 4 +- example/cppapi/clientrequest/ClientRequest.cc | 4 +- example/cppapi/customresponse/CustomResponse.cc | 4 +- .../DelayTransformationPlugin.cc | 4 +- example/cppapi/globalhook/GlobalHookPlugin.cc | 4 +- .../GzipTransformationPlugin.cc | 4 +- example/cppapi/helloworld/HelloWorldPlugin.cc | 4 +- example/cppapi/intercept/intercept.cc | 4 +- .../InternalTransactionHandling.cc | 4 +- example/cppapi/logger_example/LoggerExample.cc | 4 +- .../MultipleTransactionHookPlugins.cc | 4 +- .../NullTransformationPlugin.cc | 4 +- example/cppapi/post_buffer/PostBuffer.cc | 4 +- example/cppapi/serverresponse/ServerResponse.cc | 4 +- example/cppapi/stat_example/StatExample.cc | 4 +- .../cppapi/timeout_example/TimeoutExamplePlugin.cc | 4 +- .../transactionhook/TransactionHookPlugin.cc | 4 +- example/cppapi/websocket/WebSocket.cc | 4 +- example/protocol/Protocol.h | 5 +- example/protocol/TxnSM.h | 5 +- iocore/eventsystem/P_UnixEventProcessor.h | 7 +- iocore/net/Makefile.am | 13 +- iocore/net/OCSPStapling.cc | 20 +- iocore/net/P_InkBulkIO.h | 5 +- iocore/net/P_LibBulkIO.h | 5 +- iocore/net/P_OCSPStapling.h | 9 +- iocore/net/P_SNIActionPerformer.h | 62 +- iocore/net/P_SSLNetProcessor.h | 6 +- iocore/net/SNIActionPerformer.cc | 8 +- iocore/net/SSLConfig.cc | 2 +- iocore/net/SSLNetProcessor.cc | 9 +- iocore/net/SSLNetVConnection.cc | 19 +- iocore/net/SSLSNIConfig.cc | 10 +- iocore/net/SSLUtils.cc | 42 +- iocore/net/UnixNetAccept.cc | 6 +- iocore/net/YamlSNIConfig.cc | 15 +- iocore/net/YamlSNIConfig.h | 2 + lib/Makefile.am | 3 +- lib/cppapi/InterceptPlugin.cc | 12 +- lib/cppapi/Plugin.cc | 7 +- lib/cppapi/include/atscppapi/Plugin.h | 6 +- lib/perl/lib/Apache/TS/AdminClient.pm | 1 - lib/records/I_RecCore.h | 13 +- lib/records/RecConfigParse.cc | 17 + lib/records/RecCore.cc | 52 +- lib/ts/BufferWriter.h | 5 +- lib/ts/BufferWriterFormat.cc | 6 + lib/ts/IntrusiveDList.h | 801 ++++++++++++++------- lib/ts/IpMap.cc | 99 +-- lib/ts/IpMap.h | 2 +- lib/ts/Layout.cc | 30 +- lib/ts/Makefile.am | 7 +- lib/ts/TextView.h | 10 + lib/ts/apidefs.h.in | 16 +- lib/ts/bwf_std_format.h | 48 +- lib/ts/ink_config.h.in | 1 + lib/ts/runroot.cc | 65 +- lib/ts/runroot.h | 20 + lib/ts/unit-tests/test_IntrusiveDList.cc | 274 +++++++ lib/ts/unit-tests/test_IpMap.cc | 26 +- lib/yamlcpp/Makefile.am | 13 +- mgmt/Alarms.h | 5 +- mgmt/BaseManager.h | 5 +- mgmt/DerivativeMetrics.cc | 4 +- mgmt/LocalManager.cc | 60 +- mgmt/LocalManager.h | 11 +- mgmt/MgmtDefs.h | 38 +- mgmt/ProcessManager.h | 5 +- mgmt/RecordsConfig.cc | 21 +- mgmt/api/CoreAPI.cc | 13 +- mgmt/api/CoreAPI.h | 4 +- mgmt/api/CoreAPIRemote.cc | 12 +- mgmt/api/INKMgmtAPI.cc | 8 +- mgmt/api/NetworkMessage.cc | 4 +- mgmt/api/TSControlMain.cc | 13 +- mgmt/api/TSControlMain.h | 5 +- mgmt/api/include/mgmtapi.h | 4 +- mgmt/utils/MgmtUtils.h | 7 +- plugins/Makefile.am | 2 + plugins/cachekey/cachekey.cc | 131 +++- plugins/cachekey/cachekey.h | 20 +- plugins/cachekey/configs.cc | 13 +- plugins/cachekey/configs.h | 3 +- plugins/cachekey/plugin.cc | 153 ++-- plugins/compress/debug_macros.h | 5 +- plugins/esi/fetcher/FetchedDataProcessor.h | 6 +- plugins/esi/fetcher/HttpDataFetcher.h | 5 +- plugins/esi/fetcher/HttpDataFetcherImpl.h | 5 +- plugins/esi/lib/Attribute.h | 5 +- plugins/esi/lib/ComponentBase.h | 5 +- plugins/esi/lib/DocNode.h | 5 +- plugins/esi/lib/EsiGunzip.h | 6 +- plugins/esi/lib/EsiGzip.h | 5 +- plugins/esi/lib/EsiParser.h | 5 +- plugins/esi/lib/EsiProcessor.h | 5 +- plugins/esi/lib/Expression.h | 6 +- plugins/esi/lib/FailureInfo.h | 10 +- plugins/esi/lib/HandlerManager.h | 6 +- plugins/esi/lib/HttpHeader.h | 6 +- plugins/esi/lib/IncludeHandlerFactory.h | 6 +- plugins/esi/lib/Stats.h | 6 +- plugins/esi/lib/StringHash.h | 6 +- plugins/esi/lib/Utils.h | 6 +- plugins/esi/lib/Variables.cc | 6 + plugins/esi/lib/Variables.h | 6 +- plugins/esi/lib/gzip.h | 6 +- plugins/esi/serverIntercept.h | 6 +- plugins/esi/test/HandlerMap.h | 6 +- plugins/esi/test/StubIncludeHandler.h | 6 +- plugins/esi/test/TestHttpDataFetcher.h | 5 +- plugins/esi/test/print_funcs.h | 5 +- plugins/esi/test/vars_test.cc | 2 + plugins/experimental/cache_range_requests/README | 20 + .../cache_range_requests/cache_range_requests.cc | 143 +++- .../experimental/certifier/Makefile.inc | 7 +- plugins/experimental/certifier/README | 32 + plugins/experimental/certifier/certifier.cc | 695 ++++++++++++++++++ plugins/experimental/inliner/cache-handler.h | 6 +- plugins/experimental/inliner/cache.h | 5 +- plugins/experimental/inliner/chunk-decoder.h | 6 +- plugins/experimental/inliner/fetcher.h | 6 +- plugins/experimental/inliner/gif.h | 6 +- plugins/experimental/inliner/html-parser.h | 6 +- plugins/experimental/inliner/inliner-handler.h | 6 +- plugins/experimental/inliner/jpeg.h | 6 +- plugins/experimental/inliner/png.h | 6 +- plugins/experimental/inliner/ts.h | 6 +- plugins/experimental/inliner/util.h | 6 +- plugins/experimental/inliner/vconnection.h | 6 +- plugins/experimental/memcache/protocol_binary.h | 4 +- plugins/experimental/money_trace/money_trace.h | 5 +- plugins/experimental/mp4/mp4_common.h | 5 +- plugins/experimental/mp4/mp4_meta.h | 5 +- plugins/experimental/multiplexer/chunk-decoder.h | 6 +- plugins/experimental/multiplexer/dispatch.h | 6 +- plugins/experimental/multiplexer/fetcher.h | 6 +- .../experimental/multiplexer/original-request.h | 6 +- plugins/experimental/multiplexer/post.h | 6 +- plugins/experimental/multiplexer/ts.h | 6 +- .../server_push_preload/server_push_preload.cc | 4 +- .../experimental/traffic_dump/Makefile.inc | 7 +- plugins/experimental/traffic_dump/README | 16 + plugins/experimental/traffic_dump/traffic_dump.cc | 592 +++++++++++++++ .../experimental/webp_transform/ImageTransform.cc | 4 +- plugins/lua/Makefile.inc | 1 + plugins/lua/ts_lua.c | 35 +- plugins/lua/ts_lua_cached_response.h | 5 +- plugins/lua/ts_lua_client_request.h | 5 +- plugins/lua/ts_lua_client_response.h | 5 +- plugins/lua/ts_lua_common.h | 7 +- plugins/lua/ts_lua_constant.h | 5 +- plugins/lua/ts_lua_context.h | 5 +- plugins/lua/ts_lua_coroutine.h | 6 +- plugins/lua/ts_lua_crypto.h | 5 +- plugins/lua/ts_lua_fetch.c | 15 +- plugins/lua/ts_lua_fetch.h | 5 +- plugins/lua/ts_lua_hook.h | 5 +- plugins/lua/ts_lua_http.c | 20 + plugins/lua/ts_lua_http.h | 5 +- plugins/lua/ts_lua_http_cntl.h | 5 +- plugins/lua/ts_lua_http_config.c | 8 +- plugins/lua/ts_lua_http_config.h | 5 +- plugins/lua/ts_lua_http_intercept.h | 5 +- plugins/lua/ts_lua_http_milestone.h | 5 +- plugins/lua/ts_lua_io.h | 5 +- plugins/lua/ts_lua_log.h | 5 +- plugins/lua/ts_lua_mgmt.h | 5 +- plugins/lua/ts_lua_misc.h | 5 +- plugins/lua/ts_lua_package.h | 5 +- plugins/lua/ts_lua_remap.h | 5 +- plugins/lua/ts_lua_server_request.h | 5 +- plugins/lua/ts_lua_server_response.h | 5 +- plugins/lua/ts_lua_stat.h | 5 +- plugins/lua/ts_lua_string.h | 5 +- plugins/lua/ts_lua_transform.h | 5 +- plugins/lua/ts_lua_util.c | 66 ++ plugins/lua/ts_lua_util.h | 7 +- proxy/ControlMatcher.cc | 2 +- proxy/HostStatus.h | 31 +- proxy/IPAllow.cc | 6 +- proxy/Makefile.am | 2 +- proxy/ParentSelection.cc | 44 +- proxy/config/ssl_server_name.config.default | 36 - proxy/config/throttle_error.html.example | 32 - proxy/hdrs/HTTP.cc | 14 +- proxy/hdrs/HdrHeap.h | 1 + proxy/hdrs/HdrTSOnly.cc | 16 +- proxy/http/HttpConfig.cc | 34 +- proxy/http/HttpConfig.h | 9 +- proxy/http/HttpConnectionCount.cc | 424 ++++++++++- proxy/http/HttpConnectionCount.h | 558 +++++++++----- proxy/http/HttpDebugNames.cc | 2 + proxy/http/HttpProxyAPIEnums.h | 10 + proxy/http/HttpSM.cc | 145 ++-- proxy/http/HttpServerSession.cc | 56 +- proxy/http/HttpServerSession.h | 58 +- proxy/http/HttpSessionManager.cc | 5 +- proxy/http/HttpTransact.cc | 17 +- proxy/http/HttpTransact.h | 15 +- proxy/http/HttpTransactCache.cc | 9 +- proxy/logging/Log.cc | 5 - proxy/logging/LogAccess.cc | 5 - proxy/logging/LogAccess.h | 1 - proxy/logging/LogAccessHttp.cc | 17 - proxy/logging/LogAccessHttp.h | 1 - proxy/logging/LogConfig.cc | 10 +- proxy/logging/LogFilter.cc | 4 +- proxy/logging/Makefile.am | 3 +- proxy/logging/YamlLogConfig.cc | 10 +- rc/trafficserver.in | 6 +- rc/trafficserver.service.in | 2 +- src/traffic_cache_tool/CacheDefs.h | 47 +- src/traffic_cache_tool/CacheScan.cc | 33 +- src/traffic_cache_tool/CacheScan.h | 19 +- src/traffic_cache_tool/CacheTool.cc | 22 +- src/traffic_ctl/Makefile.inc | 1 + src/traffic_ctl/host.cc | 49 +- src/traffic_layout/Makefile.inc | 6 +- src/traffic_layout/engine.cc | 133 ++-- src/traffic_layout/engine.h | 17 +- src/traffic_layout/file_system.cc | 45 +- src/traffic_layout/file_system.h | 5 +- src/traffic_layout/info.cc | 1 + src/traffic_layout/traffic_layout.cc | 2 - src/traffic_logcat/Makefile.inc | 8 +- src/traffic_logstats/Makefile.inc | 6 +- src/traffic_logstats/logstats.cc | 15 +- src/traffic_logstats/tests/logstats.blog | Bin 14976 -> 9144 bytes src/traffic_logstats/tests/logstats.json | 242 +++++-- src/traffic_logstats/tests/logstats.summary | 68 +- src/traffic_logstats/tests/test_urls.txt | 10 + src/traffic_manager/AddConfigFilesHere.cc | 2 +- src/traffic_manager/Makefile.inc | 5 +- src/traffic_manager/traffic_manager.cc | 26 +- src/traffic_server/HostStatus.cc | 91 ++- src/traffic_server/InkAPI.cc | 399 +++++----- src/traffic_server/InkAPITest.cc | 265 +++---- src/traffic_server/Makefile.inc | 6 +- src/traffic_server/traffic_server.cc | 12 +- tests/README.md | 2 +- .../gold_tests/autest-site/trafficserver.test.ext | 4 +- tests/gold_tests/h2/httpbin.test.py | 2 +- tests/gold_tests/logging/ccid_ctid.test.py | 2 +- tests/gold_tests/logging/custom-log.test.py | 2 +- tests/gold_tests/logging/log-field.test.py | 2 +- tests/gold_tests/runroot/runroot_error.test.py | 4 +- tests/gold_tests/runroot/runroot_init.test.py | 9 +- tests/tools/lib/replay_schema.json | 209 ++++++ 334 files changed, 6316 insertions(+), 2429 deletions(-) diff --cc build/crypto.m4 index ee0d998,cbb1b53..ed74b26 --- a/build/crypto.m4 +++ b/build/crypto.m4 @@@ -212,64 -212,17 +212,79 @@@ AC_DEFUN([TS_CHECK_CRYPTO_DH_GET_2048_2 AC_SUBST(use_dh_get_2048_256) ]) +AC_DEFUN([TS_CHECK_CRYPTO_HKDF], [ + enable_hkdf=no + _hkdf_saved_LIBS=$LIBS + TS_ADDTO(LIBS, [$OPENSSL_LIBS]) + AC_MSG_CHECKING([for EVP_PKEY_CTX_hkdf_mode]) + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM([[ +#include <openssl/kdf.h> + ]], + [[ +#ifndef EVP_PKEY_CTX_hkdf_mode +# error no EVP_PKEY_CTX_hkdf_mode support +#endif + ]]) + ], + [ + AC_MSG_RESULT([yes]) + enable_hkdf=yes + ], + [ + AC_MSG_RESULT([no]) + ]) + AC_CHECK_FUNC(HKDF_extract, [ + enable_hkdf=yes + ], []) + LIBS=$_hkdf_saved_LIBS + TS_ARG_ENABLE_VAR([use], [hkdf]) + AC_SUBST(use_hkdf) +]) + +AC_DEFUN([TS_CHECK_CRYPTO_TLS13], [ + enable_tls13=yes + _tls13_saved_LIBS=$LIBS + TS_ADDTO(LIBS, [$OPENSSL_LIBS]) + AC_MSG_CHECKING([whether TLS 1.3 is supported]) + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM([[ +#include <openssl/ssl.h> + ]], + [[ +#ifndef TLS1_3_VERSION +# error no TLS1_3 support +#endif +#ifdef OPENSSL_NO_TLS1_3 +# error no TLS1_3 support +#endif + ]]) + ], + [ + AC_MSG_RESULT([yes]) + ], + [ + AC_MSG_RESULT([no]) + enable_tls13=no + ]) + LIBS=$_tls13_saved_LIBS + TS_ARG_ENABLE_VAR([use], [tls13]) + AC_SUBST(use_tls13) +]) ++ + AC_DEFUN([TS_CHECK_CRYPTO_OCSP], [ + _ocsp_saved_LIBS=$LIBS + + TS_ADDTO(LIBS, [$OPENSSL_LIBS]) + AC_CHECK_HEADERS(openssl/ocsp.h) + AC_CHECK_FUNCS(OCSP_sendreq_new OCSP_REQ_CTX_add1_header OCSP_REQ_CTX_set1_req, [enable_tls_ocsp=yes], [enable_tls_ocsp=no]) + + LIBS=$_ocsp_saved_LIBS + + AC_MSG_CHECKING(whether OCSP is supported) + AC_MSG_RESULT([$enable_tls_ocsp]) + TS_ARG_ENABLE_VAR([use], [tls-ocsp]) + AC_SUBST(use_tls_ocsp) + ]) diff --cc configure.ac index ef8a4dd,a53428d..7959a05 --- a/configure.ac +++ b/configure.ac @@@ -1184,22 -1186,9 +1186,25 @@@ TS_CHECK_CRYPTO_SET_RBI # Check for DH_get_2048_256 TS_CHECK_CRYPTO_DH_GET_2048_256 +# Check for HKDF support +TS_CHECK_CRYPTO_HKDF +AM_CONDITIONAL([HAS_HKDF], [test "x$enable_hkdf" = "xyes"]) + +# Check for TLS 1.3 support +TS_CHECK_CRYPTO_TLS13 + +# Check for QUIC support +enable_quic=no +AS_IF([test "x$enable_tls13" = "xyes"], [ + enable_quic=yes +]) +TS_ARG_ENABLE_VAR([use], [quic]) +AC_SUBST(use_quic) +AM_CONDITIONAL([ENABLE_QUIC], [test "x$enable_quic" = "xyes"]) + + # Check for OCSP + TS_CHECK_CRYPTO_OCSP + saved_LIBS="$LIBS" TS_ADDTO([LIBS], ["$OPENSSL_LIBS"]) diff --cc proxy/Makefile.am index 0073483,c996669..a84334e --- a/proxy/Makefile.am +++ b/proxy/Makefile.am @@@ -18,10 -18,7 +18,10 @@@ include $(top_srcdir)/build/tidy.mk - SUBDIRS = hdrs shared http http2 logging config + SUBDIRS = hdrs shared http http2 logging +if ENABLE_QUIC +SUBDIRS += hq +endif noinst_LIBRARIES = libproxy.a diff --cc src/traffic_server/Makefile.inc index a759d3e,4ae3687..c67b0d0 --- a/src/traffic_server/Makefile.inc +++ b/src/traffic_server/Makefile.inc @@@ -90,11 -93,5 +94,11 @@@ traffic_server_traffic_server_LDADD += @LIBLZMA@ \ @LIBPROFILER@ \ @OPENSSL_LIBS@ \ - @LIB_YAMLCPP@ \ + @YAMLCPP_LIBS@ \ -lm + +if ENABLE_QUIC +traffic_server_traffic_server_LDADD += \ + $(top_builddir)/proxy/hq/libhq.a \ + $(top_builddir)/iocore/net/quic/libquic.a +endif
