diff --git a/mongoose.c b/mongoose.c index a29539e7389f35afb3d9fd0754d8ffefad36eb71..a3d61f54687a6b885836f7d00016366341879090 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4262,7 +4262,9 @@ static void handle_request(struct mg_connection *conn) { get_remote_ip(conn), ri->uri); DEBUG_TRACE(("%s", ri->uri)); - if (!conn->client.is_ssl && conn->client.ssl_redir && + if (call_user(conn, MG_NEW_REQUEST) != NULL) { + // Do nothing, callback has served the request + } else if (!conn->client.is_ssl && conn->client.ssl_redir && (ssl_index = get_first_ssl_listener_index(conn->ctx)) > -1) { redirect_to_https_port(conn, ssl_index); } else if (!is_put_or_delete_request(conn) && @@ -4272,8 +4274,6 @@ static void handle_request(struct mg_connection *conn) { } else if (is_websocket_request(conn)) { handle_websocket_request(conn); #endif - } else if (call_user(conn, MG_NEW_REQUEST) != NULL) { - // Do nothing, callback has served the request } else if (!strcmp(ri->request_method, "OPTIONS")) { send_options(conn); } else if (conn->ctx->config[DOCUMENT_ROOT] == NULL) {