diff --git a/src/server/kiwix-serve.cpp b/src/server/kiwix-serve.cpp index 1102fdb..29862ee 100644 --- a/src/server/kiwix-serve.cpp +++ b/src/server/kiwix-serve.cpp @@ -724,17 +724,23 @@ static int accessHandlerCallback(void* cls, size_t* upload_data_size, void** ptr) { + if (isVerbose.load() ) { + printf("======================\n"); + printf("Requesting : \n"); + printf("full_url : %s\n", url); + } RequestContext request(connection, rootLocation, url, method, version); + + if (isVerbose.load() ) { + request.print_debug_info(); + } /* Unexpected method */ if (request.get_method() != RequestMethod::GET && request.get_method() != RequestMethod::POST) { + printf("Reject request because of unhandled request method.\n"); + printf("----------------------\n"); return MHD_NO; } - if (isVerbose.load()) { - printf("======================\n"); - request.print_debug_info(); - } - /* Prepare the variables */ struct MHD_Response* response; request.httpResponseCode = request.has_range() ? MHD_HTTP_PARTIAL_CONTENT : MHD_HTTP_OK; diff --git a/src/server/request_context.cpp b/src/server/request_context.cpp index 9caa1dc..d2e680a 100644 --- a/src/server/request_context.cpp +++ b/src/server/request_context.cpp @@ -122,16 +122,14 @@ int RequestContext::fill_argument(void *__this, enum MHD_ValueKind kind, const char *key, const char* value) { RequestContext *_this = static_cast(__this); - _this->arguments[key] = value; + _this->arguments[key] = value == nullptr ? "" : value; return MHD_YES; } void RequestContext::print_debug_info() { - printf("Requesting : \n"); - printf("full_url : %s\n", full_url.c_str()); printf("method : %s (%d)\n", method==RequestMethod::GET ? "GET" : method==RequestMethod::POST ? "POST" : - "OTHER", method); + "OTHER", (int)method); printf("version : %s\n", version.c_str()); printf("headers :\n"); for (auto it=headers.begin(); it!=headers.end(); it++) {