コード例 #1
0
ファイル: router.c プロジェクト: galdor/libhttp
void
http_router_delete(struct http_router *router) {
    if (!router)
        return;

    for (size_t i = 0; i < c_ptr_vector_length(router->routes); i++)
        http_route_delete(c_ptr_vector_entry(router->routes, i));
    c_ptr_vector_delete(router->routes);

    c_free0(router, sizeof(struct http_router));
}
コード例 #2
0
ファイル: routes.c プロジェクト: lubing521/libhttp
void
http_route_base_delete(struct http_route_base *base) {
    if (!base)
        return;

    for (size_t i = 0; i < base->nb_routes; i++)
        http_route_delete(base->routes[i]);
    http_free(base->routes);

    memset(base, 0, sizeof(struct http_route_base));
    http_free(base);
}
コード例 #3
0
ファイル: routes.c プロジェクト: lubing521/libhttp
struct http_route *
http_route_new(enum http_method method, const char *path,
               http_msg_handler msg_handler) {
    struct http_route *route;

    route = http_malloc0(sizeof(struct http_route));

    route->method = method;
    route->path = http_strdup(path);
    route->msg_handler = msg_handler;

    if (http_route_components_parse(path, &route->components,
                                    &route->nb_components) == -1) {
        http_route_delete(route);
        return NULL;
    }

    return route;
}