afb-method: creation
[src/app-framework-binder.git] / src / http-svc.c
index fa0440b..8af11d2 100644 (file)
@@ -1,42 +1,29 @@
 /*
- * Copyright (C) 2016 "IoT.bzh"
- * Author José Bollo
+ * Copyright 2016 IoT.bzh
+ * Author: José Bollo <jose.bollo@iot.bzh>
  *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * 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
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ * 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.
  */
+
 #define _GNU_SOURCE
 #include <microhttpd.h>
 #include <assert.h>
 #include <poll.h>
 #include <sys/stat.h>
-#include "../include/local-def.h"
-
 
+#include "../include/local-def.h"
+#include "afb-method.h"
 
-enum afb_method {
-       afb_method_none = 0,
-       afb_method_get = 1,
-       afb_method_post = 2,
-       afb_method_head = 4,
-       afb_method_connect = 8,
-       afb_method_delete = 16,
-       afb_method_options = 32,
-       afb_method_patch = 64,
-       afb_method_put = 128,
-       afb_method_trace = 256,
-       afb_method_all = 511
-};
 
 struct afb_req_post {
        const char *upload_data;
@@ -68,64 +55,6 @@ struct afb_req_handler {
 
 static char empty_string[1] = "";
 
-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;
-       }
-}
-
 /* a valid subpath is a relative path not looking deeper than root using .. */
 static int validsubpath(const char *subpath)
 {