Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/experimental/ja4_fingerprint/plugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ handle_vconn_close(TSCont /* cont ATS_UNUSED */, TSEvent event, void *edata)
return TS_SUCCESS;
}
TSVConn const ssl_vc{static_cast<TSVConn>(edata)};
delete static_cast<std::string *>(TSUserArgGet(ssl_vc, *get_user_arg_index()));
delete static_cast<JA4_data *>(TSUserArgGet(ssl_vc, *get_user_arg_index()));
TSUserArgSet(ssl_vc, *get_user_arg_index(), nullptr);
Comment thread
bryancall marked this conversation as resolved.
TSVConnReenable(ssl_vc);
return TS_SUCCESS;
Expand Down
8 changes: 5 additions & 3 deletions plugins/experimental/txn_box/plugin/include/txn_box/Config.h
Original file line number Diff line number Diff line change
Expand Up @@ -559,16 +559,18 @@ class Config
/// Set of named configuration storage objects.
std::unordered_map<swoc::TextView, swoc::MemSpan<void>, std::hash<std::string_view>> _named_objects;

/// For localizing data at a configuration level, primarily strings.
/// Declared before _roots so it is destroyed after _roots, since directives
/// in _roots reference memory allocated from this arena.
swoc::MemArena _arena;

/// Top level directives for each hook. Always invoked.
std::array<std::vector<Directive::Handle>, std::tuple_size<Hook>::value> _roots;

/// Largest number of directives across the hooks. These are updated during
/// directive load, if needed. This includes the top level directives.
std::array<size_t, std::tuple_size<Hook>::value> _directive_count{0};

/// For localizing data at a configuration level, primarily strings.
swoc::MemArena _arena;

/// Additional clean up to perform when @a this is destroyed.
swoc::IntrusiveDList<Finalizer::Linkage> _finalizers;

Expand Down
1 change: 1 addition & 0 deletions plugins/slice/server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ update_object_size(TSHttpTxn txnp, int64_t size, Config &config)
if (urlstr != nullptr) {
if (size <= 0) {
DEBUG_LOG("Ignoring invalid content length for %.*s: %" PRId64, urllen, urlstr, size);
TSfree(urlstr);
return;
}

Expand Down
3 changes: 2 additions & 1 deletion plugins/stats_over_http/stats_over_http.cc
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,8 @@ stats_origin(TSCont contp, TSEvent /* event ATS_UNUSED */, void *edata)
icontp = TSContCreate(stats_dostuff, TSMutexCreate());

if (path_had_explicit_format) {
Dbg(dbg_ctl, "Path had explicit format, ignoring any Accept header: %s", request_path_suffix.data());
Dbg(dbg_ctl, "Path had explicit format, ignoring any Accept header: %.*s", static_cast<int>(request_path_suffix.size()),
request_path_suffix.data());
my_state->output_format = format_per_path;
} else {
// Check for an Accept header to determine response type.
Expand Down
7 changes: 4 additions & 3 deletions tests/tools/plugins/async_engine.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,12 @@ async_destroy(ENGINE *e ATS_UNUSED)
static void
wait_cleanup(ASYNC_WAIT_CTX *ctx ATS_UNUSED, const void *key ATS_UNUSED, OSSL_ASYNC_FD readfd, void *pvwritefd)
{
OSSL_ASYNC_FD *pwritefd = (OSSL_ASYNC_FD *)pvwritefd;
OSSL_ASYNC_FD *pwritefd = (OSSL_ASYNC_FD *)pvwritefd;
OSSL_ASYNC_FD writefd_v = *pwritefd;
close(readfd);
close(*((OSSL_ASYNC_FD *)pwritefd));
close(writefd_v);
OPENSSL_free(pwritefd);
fprintf(stderr, "Cleanup %d and %d\n", readfd, *pwritefd);
fprintf(stderr, "Cleanup %d and %d\n", readfd, writefd_v);
}

#define DUMMY_CHAR 'X'
Expand Down
Loading