diff options
author | Jose M. Guisado <jguisado@soleta.eu> | 2023-08-22 12:30:21 +0200 |
---|---|---|
committer | Jose M. Guisado <jguisado@soleta.eu> | 2023-08-23 11:39:19 +0200 |
commit | b2c8c9d9ab1cfaaf833f7e6ad318505df9a9ec36 (patch) | |
tree | 268869eb9b1b817dc7ae7265280010a7e5bc9e81 /src | |
parent | 351069b5916da8770d48d22c7f80d1a52ff770ad (diff) |
rest: support DELETE HTTP request method
Reuse endpoints in order to add deletion operation such as "/server".
This way there is no need to declare a different if/else block in order
to parse a new URI for the new "*/delete" endpoint.
Current deletion operations are implemented using a different endpoint
name such as "/client/delete", "/center/delete" with POST request method.
Endpoints using "/delete" suffix may not be removed for backwards
compatibility. Adding HTTP method DELETE support for endpoints such as
"/center" or "/client" can use the already existing *_post_delete*
functions.
Diffstat (limited to 'src')
-rw-r--r-- | src/rest.c | 3 | ||||
-rw-r--r-- | src/rest.h | 1 |
2 files changed, 4 insertions, 0 deletions
@@ -5938,6 +5938,9 @@ int og_client_state_process_payload_rest(struct og_client *cli) } else if (!strncmp(cli->buf, "POST", strlen("POST"))) { method = OG_METHOD_POST; cmd = cli->buf + strlen("POST") + 2; + } else if (!strncmp(cli->buf, "DELETE", strlen("DELETE"))) { + method = OG_METHOD_DELETE; + cmd = cli->buf + strlen("DELETE") + 2; } else return og_client_method_not_found(cli); @@ -87,6 +87,7 @@ int og_client_state_process_payload_rest(struct og_client *cli); enum og_rest_method { OG_METHOD_GET = 0, OG_METHOD_POST, + OG_METHOD_DELETE, OG_METHOD_NO_HTTP }; |