diff --git a/mongoose.c b/mongoose.c index 9213364a..9a23b320 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4826,6 +4826,7 @@ static void process_new_connection(struct mg_connection *conn) { } conn->birth_time = time(NULL); handle_request(conn); + conn->request_info.ev_data = (void *) conn->status_code; call_user(conn, MG_REQUEST_COMPLETE); log_access(conn); } diff --git a/mongoose.h b/mongoose.h index 18f34395..8f67bdc3 100644 --- a/mongoose.h +++ b/mongoose.h @@ -47,7 +47,7 @@ struct mg_request_info { const char *name; // HTTP header name const char *value; // HTTP header value } http_headers[64]; // Maximum 64 headers - void *user_data; // User data pointer passed to the mg_start() + void *user_data; // User data pointer passed to mg_start() void *ev_data; // Event-specific data pointer }; @@ -61,7 +61,8 @@ enum mg_event { // Mongoose has finished handling the request. // Callback return value is ignored. - // ev_data contains NULL. + // ev_data contains integer HTTP status code: + // int http_reply_status_code = (long) request_info->ev_data; MG_REQUEST_COMPLETE, // HTTP error must be returned to the client.