diff --git a/src/rest/restd.c b/src/rest/restd.c index b88f59c..d1fcc08 100644 --- a/src/rest/restd.c +++ b/src/rest/restd.c @@ -227,10 +227,9 @@ restd_server_t *restd_server_new(void) // Initialize instance. server->options = qhashtbl(0, 0); - server->stats = qhashtbl(100, QHASHTBL_THREADSAFE); server->hooks = qlist(0); //server->call_hooks = call_hooks; - if (server->options == NULL || server->stats == NULL || server->hooks == NULL) + if (server->options == NULL || server->hooks == NULL) { restd_server_free(server); return NULL; @@ -271,10 +270,7 @@ void restd_server_free(restd_server_t *server) { server->options->free(server->options); } - if (server->stats) - { - server->stats->free(server->stats); - } + if (server->hooks) { qlist_t *tbl = server->hooks; @@ -648,12 +644,6 @@ static void close_server(restd_server_t *server) server->notify_buffer = NULL; } - if (server->listener) - { - evconnlistener_free(server->listener); - server->listener = NULL; - } - if (server->thread) { void *retval = NULL; @@ -989,57 +979,10 @@ bool manage_hook(restd_hook_t *hook, restd_resp_t *response, const char *request qlist_free(uri_fragments); return true; } - else - { - printf("rate: path fragment: %ld != uri_fragment: %ld\n", qlist_size(hook->path_fragments), qlist_size(uri_fragments)); - } qlist_free(uri_fragments); } -#if 0 - -qlist_obj_t obj; - - // Init Hook. - hook = restd_hook_new(); - - hook->method = method; - hook->path = (path) ? strdup(path) : NULL; - hook->cb = cb; - hook->userdata = userdata; - hook->path_fragments = qstrtokenizer(path, "/"); - - // Split URI and detect parameter and action. - memset((void *)&obj, 0, sizeof(obj)); - while (qlist_getnext(hook->path_fragments, &obj, true)) - { - - int i = 0; - int pos = -1; - while (hook->path[i]) - { - if (hook->path[i] == ':') - pos = i; - i++; - } - if (pos != -1 && contain(hook->path, request_path, pos)) - { - const char *buffer = &request_path[pos]; - // printf("buffer: <%s>\n", buffer); - // TODO conn->id = atoi(buffer); - hook->cb(response, hook->userdata); - return true; - } - else - { - int rett = strcmp(hook->path, request_path); - if (rett == 0) - { - - } - } -#endif } return false; -} \ No newline at end of file +} diff --git a/src/rest/restd.h b/src/rest/restd.h index feca01c..14ce51f 100644 --- a/src/rest/restd.h +++ b/src/rest/restd.h @@ -40,11 +40,7 @@ typedef struct restd_server_s restd_server_t; typedef struct restd_hook_s restd_hook_t; typedef struct restd_resp_s restd_resp_t; -/** - * User callback(hook) prototype. - */ typedef int (*restd_callback)(restd_resp_t *response, void *arg); -typedef void (*restd_userdata_free_cb)(void *conn, void *userdata); /*------------------------------- INCLUDES ----------------------------------*/ @@ -106,15 +102,12 @@ struct restd_server_s pthread_t *thread; /*!< thread object. not null if server runs as a thread */ qhashtbl_t *options; /*!< server options */ - qhashtbl_t *stats; /*!< internal statistics */ qlist_t *hooks; /*!< list of registered hooks */ - struct evconnlistener *listener; /*!< listener */ struct event_base *evbase; /*!< event base */ struct evhttp *evhttp; struct bufferevent *notify_buffer; /*!< internal notification channel */ - restd_callback request_handler; restd_callback error_handler; }; diff --git a/src/tests/test_rest.c b/src/tests/test_rest.c index ba49c75..5ccac2d 100644 --- a/src/tests/test_rest.c +++ b/src/tests/test_rest.c @@ -32,14 +32,14 @@ #define kerror_body "{\"status\":\"error\"}" #define ksuccess_put_param1 "{ \"id\": 1 }" -#define ksuccess_put_param2 "{ \"id\":\"1977\",\"action\":\"todo\" }" +#define ksuccess_put_param2 "{ \"year\": 1977, \"action\": \"todo\" }" #define kserver_port "7777" #define kapi_test_get "/api/v1/test_get" #define kapi_test_put_id1 "/api/v1/test_put/:id" #define kapi_test_put_id1_body "/api/v1/test_put/1" -#define kapi_test_put_id2 "/api/v1/test_put/:id/todo" +#define kapi_test_put_id2 "/api/v1/test_put/:year/todo" #define kapi_test_put_id2_body "/api/v1/test_put/1977/todo" #define kpost_method "POST" @@ -227,7 +227,7 @@ int exec_request(const char *request, const char *path, int expected_code, const { res = strcmp(expected_body, resp_body); } - // printf ("body: %s != expected_body: %s\n", resp_body, expected_body); + //printf ("body: %s != expected_body: %s\n", resp_body, expected_body); if (res != 0) { ret = 2; @@ -518,9 +518,13 @@ TEST("Rest - create start access to rest hook with params free\t") sleep(1); - PRINTLN("\n - Param1"); + //PRINTLN("\n - Param1"); ret = exec_request(kput_method, "http://localhost:" kserver_port kapi_test_put_id1_body, 200, "", ksuccess_put_param1); ASSERT_EQUAL_INT(ret, 0); + //PRINTLN("\n - Param2"); + ret = exec_request(kput_method, "http://localhost:" kserver_port kapi_test_put_id2_body, 200, "", ksuccess_put_param2); + ASSERT_EQUAL_INT(ret, 0); + restd_server_free(rest_server); }