From a6b1c503251602dbfb0be87718a88aae724ea83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B0=D0=B8=D0=BB=D1=8F=20=D0=90=D0=BB=D0=B0=D1=88?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Mon, 25 Nov 2024 13:09:51 +0300 Subject: [PATCH] =?UTF-8?q?SUPPORT-8703.=20=D0=94=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=BD=D0=BE=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fcgisrv/fcgi_utils.h | 28 ++++++++++++++++++++-------- src/modules/service_verify.c | 2 ++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/fcgisrv/fcgi_utils.h b/src/fcgisrv/fcgi_utils.h index bd3197c..080531b 100644 --- a/src/fcgisrv/fcgi_utils.h +++ b/src/fcgisrv/fcgi_utils.h @@ -146,17 +146,29 @@ typedef fcgi_handler_status_t (*fcgi_request_handler_pt)(const FCGX_Request* req typedef fcgi_request_handler_pt (*FCGI_REQUEST_FINALIZE_HANDLER)(int rc); +static inline void +fcgi_print_log(const FCGX_Request* request, const char* status) +{ + const char* uri = fcgi_request_get_param(request, FCGI_PARAM_NAME_REQUEST_URI, NULL); + uri = uri != NULL ? uri : "nil"; + + const char* method = fcgi_request_get_param(request, FCGI_PARAM_NAME_REQUEST_METHOD, NULL); + method = method != NULL ? method : "nil"; + + LOG_INFO("%s %s, '%s'", method, uri, status); +} + static inline fcgi_handler_status_t fcgi_200_ok_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '200 OK'"); + LOG_DEBUG("response status: '200 OK'"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_200_RESPONSE_FORMAT, 200); } static inline fcgi_handler_status_t fcgi_400_bad_request_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '400 Bad Request'"); + fcgi_print_log(request, "400 Bad Request"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_400_RESPONSE_FORMAT, 400); } @@ -164,7 +176,7 @@ fcgi_400_bad_request_handler(const FCGX_Request* request, void* ctx __attribute_ static inline fcgi_handler_status_t fcgi_401_unauthorized_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '401 Unauthorized'"); + fcgi_print_log(request, "401 Unauthorized"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_401_RESPONSE_FORMAT, 401); } @@ -172,7 +184,7 @@ fcgi_401_unauthorized_handler(const FCGX_Request* request, void* ctx __attribute static inline fcgi_handler_status_t fcgi_404_not_found_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '404 Not Found'"); + fcgi_print_log(request, "404 Not Found"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_404_RESPONSE_FORMAT, 404); } @@ -180,7 +192,7 @@ fcgi_404_not_found_handler(const FCGX_Request* request, void* ctx __attribute__( static inline fcgi_handler_status_t fcgi_405_method_not_allowed_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '405 Method Not Allowed'"); + fcgi_print_log(request, "405 Method Not Allowed"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_405_RESPONSE_FORMAT, 405); } @@ -188,7 +200,7 @@ fcgi_405_method_not_allowed_handler(const FCGX_Request* request, void* ctx __att static inline fcgi_handler_status_t fcgi_406_not_acceptable_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '406 Not Acceptable'"); + fcgi_print_log(request, "406 Not Acceptable"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_406_RESPONSE_FORMAT, 406); } @@ -196,7 +208,7 @@ fcgi_406_not_acceptable_handler(const FCGX_Request* request, void* ctx __attribu static inline fcgi_handler_status_t fcgi_413_request_entity_too_large_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_INFO("response status: '413 Request Entity Too Large'"); + fcgi_print_log(request, "413 Request Entity Too Large'"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_413_RESPONSE_FORMAT, 413); } @@ -204,7 +216,7 @@ fcgi_413_request_entity_too_large_handler(const FCGX_Request* request, void* ctx static inline fcgi_handler_status_t fcgi_500_internal_server_error_handler(const FCGX_Request* request, void* ctx __attribute__((unused))) { - LOG_ERROR("response status: '500 Internal Server Error'"); + fcgi_print_log(request, "500 Internal Server Error"); return FCGI_CHECK_PRINTF_STATUS(request, FCGI_500_RESPONSE_FORMAT, 500); } diff --git a/src/modules/service_verify.c b/src/modules/service_verify.c index fd82789..5a67ac2 100644 --- a/src/modules/service_verify.c +++ b/src/modules/service_verify.c @@ -188,6 +188,8 @@ fcgi_401_bad_signature_handler(const FCGX_Request* request, void *ctx) return HANDLER_ERROR; } + fcgi_print_log(request, "401 Unauthorized"); + return HANDLER_SUCCESS; }