diff options
author | jobol <jobol@nonadev.net> | 2016-03-22 16:35:13 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2016-03-23 13:14:09 +0100 |
commit | 2a3fbda636c93c9f22a064e5c5f537c2232d626d (patch) | |
tree | 54a30d74208ec59b6b62c18eeabec04e792471ac /src/afb-method.c | |
parent | 7aae8b046213dc7041e741b5e8b2757255701183 (diff) |
afb-method: creation
also changed the licensing
Change-Id: Ib50a6991b066a00363f36688dd485c7772014088
Signed-off-by: jobol <jobol@nonadev.net>
Diffstat (limited to 'src/afb-method.c')
-rw-r--r-- | src/afb-method.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/afb-method.c b/src/afb-method.c new file mode 100644 index 00000000..488ba3e3 --- /dev/null +++ b/src/afb-method.c @@ -0,0 +1,81 @@ +/* + * Copyright 2016 IoT.bzh + * Author: José Bollo <jose.bollo@iot.bzh> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include <microhttpd.h> + +#include "afb-method.h" + +enum afb_method get_method(const char *method) +{ + switch (method[0] & ~' ') { + case 'C': + return afb_method_connect; + case 'D': + return afb_method_delete; + case 'G': + return afb_method_get; + case 'H': + return afb_method_head; + case 'O': + return afb_method_options; + case 'P': + switch (method[1] & ~' ') { + case 'A': + return afb_method_patch; + case 'O': + return afb_method_post; + case 'U': + return afb_method_put; + } + break; + case 'T': + return afb_method_trace; + } + return afb_method_none; +} + +#if !defined(MHD_HTTP_METHOD_PATCH) +#define MHD_HTTP_METHOD_PATCH "PATCH" +#endif +const char *get_method_name(enum afb_method method) +{ + switch (method) { + case afb_method_get: + return MHD_HTTP_METHOD_GET; + case afb_method_post: + return MHD_HTTP_METHOD_POST; + case afb_method_head: + return MHD_HTTP_METHOD_HEAD; + case afb_method_connect: + return MHD_HTTP_METHOD_CONNECT; + case afb_method_delete: + return MHD_HTTP_METHOD_DELETE; + case afb_method_options: + return MHD_HTTP_METHOD_OPTIONS; + case afb_method_patch: + return MHD_HTTP_METHOD_PATCH; + case afb_method_put: + return MHD_HTTP_METHOD_PUT; + case afb_method_trace: + return MHD_HTTP_METHOD_TRACE; + default: + return NULL; + } +} + + |