Skip to content
Open
Changes from all 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
26 changes: 26 additions & 0 deletions src/proxy/http/HttpSM.cc
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,31 @@ std::atomic<int64_t> next_sm_id(0);
/// Buffer for some error logs.
thread_local std::string error_bw_buffer;

constexpr size_t ORIGIN_LOG_URL_LEN = 512;

void
log_server_close_with_origin(HttpTransact::State &state, const char *message)
{
if (message == nullptr) {
return;
}

if (state.hdr_info.server_request.valid()) {
char origin_url[ORIGIN_LOG_URL_LEN] = {0};
int offset = 0;
int skip = 0;

state.hdr_info.server_request.url_print(origin_url, static_cast<int>(ORIGIN_LOG_URL_LEN) - 1, &offset, &skip);
if (offset > 0) {
origin_url[offset] = '\0';
Log::error("%s (origin %s)", message, origin_url);
return;
}
}

Log::error("%s", message);
}

} // namespace

int64_t
Expand Down Expand Up @@ -1945,6 +1970,7 @@ HttpSM::state_read_server_response_header(int event, void *data)

switch (event) {
case VC_EVENT_EOS:
log_server_close_with_origin(t_state, "Server closed connection while reading response header.");
server_entry->eos = true;
// If we have received any bytes for this transaction do not retry
if (server_response_hdr_bytes > 0) {
Expand Down