Add patch support (#217)

Add PATCH to supported verbs in config and what not.
This commit is contained in:
rouzier 2018-01-02 16:27:59 -05:00 committed by Joris Vink
parent f8b3915ee1
commit f0f1296265
5 changed files with 13 additions and 0 deletions

View File

@ -172,6 +172,7 @@ struct http_file {
#define HTTP_METHOD_DELETE 3 #define HTTP_METHOD_DELETE 3
#define HTTP_METHOD_HEAD 4 #define HTTP_METHOD_HEAD 4
#define HTTP_METHOD_OPTIONS 5 #define HTTP_METHOD_OPTIONS 5
#define HTTP_METHOD_PATCH 6
#define HTTP_REQUEST_COMPLETE 0x0001 #define HTTP_REQUEST_COMPLETE 0x0001
#define HTTP_REQUEST_DELETE 0x0002 #define HTTP_REQUEST_DELETE 0x0002

View File

@ -88,6 +88,9 @@ kore_accesslog_write(const void *data, u_int32_t len)
case HTTP_METHOD_HEAD: case HTTP_METHOD_HEAD:
method = "HEAD"; method = "HEAD";
break; break;
case HTTP_METHOD_PATCH:
method = "PATCH";
break;
default: default:
method = "UNKNOWN"; method = "UNKNOWN";
break; break;

View File

@ -760,6 +760,8 @@ configure_params(char *options)
current_method = HTTP_METHOD_DELETE; current_method = HTTP_METHOD_DELETE;
} else if (!strcasecmp(argv[0], "head")) { } else if (!strcasecmp(argv[0], "head")) {
current_method = HTTP_METHOD_HEAD; current_method = HTTP_METHOD_HEAD;
} else if (!strcasecmp(argv[0], "patch")) {
current_method = HTTP_METHOD_PATCH;
} else { } else {
printf("unknown method: %s in params block for %s\n", printf("unknown method: %s in params block for %s\n",
argv[0], argv[1]); argv[0], argv[1]);

View File

@ -234,6 +234,9 @@ http_request_new(struct connection *c, const char *host,
} else if (!strcasecmp(method, "options")) { } else if (!strcasecmp(method, "options")) {
m = HTTP_METHOD_OPTIONS; m = HTTP_METHOD_OPTIONS;
flags = HTTP_REQUEST_COMPLETE; flags = HTTP_REQUEST_COMPLETE;
} else if (!strcasecmp(method, "patch")) {
m = HTTP_METHOD_PATCH;
flags = HTTP_REQUEST_EXPECT_BODY;
} else { } else {
http_error_response(c, 400); http_error_response(c, 400);
return (KORE_RESULT_ERROR); return (KORE_RESULT_ERROR);
@ -1894,6 +1897,9 @@ http_method_text(int method)
case HTTP_METHOD_OPTIONS: case HTTP_METHOD_OPTIONS:
r = "OPTIONS"; r = "OPTIONS";
break; break;
case HTTP_METHOD_PATCH:
r = "PATCH";
break;
default: default:
r = ""; r = "";
break; break;

View File

@ -107,6 +107,7 @@ static struct {
{ "METHOD_POST", HTTP_METHOD_POST }, { "METHOD_POST", HTTP_METHOD_POST },
{ "METHOD_DELETE", HTTP_METHOD_DELETE }, { "METHOD_DELETE", HTTP_METHOD_DELETE },
{ "METHOD_OPTIONS", HTTP_METHOD_OPTIONS }, { "METHOD_OPTIONS", HTTP_METHOD_OPTIONS },
{ "METHOD_PATCH", HTTP_METHOD_PATCH },
{ "WEBSOCKET_OP_TEXT", WEBSOCKET_OP_TEXT }, { "WEBSOCKET_OP_TEXT", WEBSOCKET_OP_TEXT },
{ "WEBSOCKET_OP_BINARY", WEBSOCKET_OP_BINARY }, { "WEBSOCKET_OP_BINARY", WEBSOCKET_OP_BINARY },
{ "WEBSOCKET_BROADCAST_LOCAL", WEBSOCKET_BROADCAST_LOCAL }, { "WEBSOCKET_BROADCAST_LOCAL", WEBSOCKET_BROADCAST_LOCAL },