From: Felix Fietkau Date: Fri, 4 Jan 2013 16:16:41 +0000 (+0100) Subject: remove unused hook support X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6adc611deba4055154f8d990ef1a9a17e5fe821a;p=oweals%2Fuci.git remove unused hook support Signed-off-by: Felix Fietkau --- diff --git a/delta.c b/delta.c index 111321c..1da3b75 100644 --- a/delta.c +++ b/delta.c @@ -433,17 +433,6 @@ int uci_save(struct uci_context *ctx, struct uci_package *p) if ((asprintf(&filename, "%s/%s", ctx->savedir, p->e.name) < 0) || !filename) UCI_THROW(ctx, UCI_ERR_MEM); - uci_foreach_element(&ctx->hooks, tmp) { - struct uci_hook *hook = uci_to_hook(tmp); - - if (!hook->ops->set) - continue; - - uci_foreach_element(&p->delta, e) { - hook->ops->set(hook->ops, p, uci_to_delta(e)); - } - } - ctx->err = 0; UCI_TRAP_SAVE(ctx, done); f = uci_open_stream(ctx, filename, SEEK_END, true, true); diff --git a/libuci.c b/libuci.c index 550eca2..b17cda1 100644 --- a/libuci.c +++ b/libuci.c @@ -56,7 +56,6 @@ struct uci_context *uci_alloc_context(void) uci_list_init(&ctx->root); uci_list_init(&ctx->delta_path); uci_list_init(&ctx->backends); - uci_list_init(&ctx->hooks); ctx->flags = UCI_FLAG_STRICT | UCI_FLAG_SAVED_DELTA; ctx->confdir = (char *) uci_confdir; @@ -210,16 +209,10 @@ int uci_commit(struct uci_context *ctx, struct uci_package **package, bool overw int uci_load(struct uci_context *ctx, const char *name, struct uci_package **package) { struct uci_package *p; - struct uci_element *e; UCI_HANDLE_ERR(ctx); UCI_ASSERT(ctx, ctx->backend && ctx->backend->load); p = ctx->backend->load(ctx, name); - uci_foreach_element(&ctx->hooks, e) { - struct uci_hook *h = uci_to_hook(e); - if (h->ops->load) - h->ops->load(h->ops, p); - } if (package) *package = p; @@ -238,40 +231,3 @@ int uci_set_backend(struct uci_context *ctx, const char *name) ctx->backend = uci_to_backend(e); return 0; } - -int uci_add_hook(struct uci_context *ctx, const struct uci_hook_ops *ops) -{ - struct uci_element *e; - struct uci_hook *h; - - UCI_HANDLE_ERR(ctx); - - /* check for duplicate elements */ - uci_foreach_element(&ctx->hooks, e) { - h = uci_to_hook(e); - if (h->ops == ops) - return UCI_ERR_INVAL; - } - - h = uci_alloc_element(ctx, hook, "", 0); - h->ops = ops; - uci_list_init(&h->e.list); - uci_list_add(&ctx->hooks, &h->e.list); - - return 0; -} - -int uci_remove_hook(struct uci_context *ctx, const struct uci_hook_ops *ops) -{ - struct uci_element *e; - - uci_foreach_element(&ctx->hooks, e) { - struct uci_hook *h = uci_to_hook(e); - if (h->ops == ops) { - uci_list_del(&e->list); - uci_free_element(e); - return 0; - } - } - return UCI_ERR_NOTFOUND; -} diff --git a/uci.h b/uci.h index 447ff9e..36c8890 100644 --- a/uci.h +++ b/uci.h @@ -61,7 +61,6 @@ struct uci_list }; struct uci_ptr; -struct uci_hook_ops; struct uci_element; struct uci_package; struct uci_section; @@ -300,23 +299,6 @@ extern int uci_set_backend(struct uci_context *ctx, const char *name); */ extern bool uci_validate_text(const char *str); - -/** - * uci_add_hook: add a uci hook - * @ctx: uci context - * @ops: uci hook ops - * - * NB: allocated and freed by the caller - */ -extern int uci_add_hook(struct uci_context *ctx, const struct uci_hook_ops *ops); - -/** - * uci_remove_hook: remove a uci hook - * @ctx: uci context - * @ops: uci hook ops - */ -extern int uci_remove_hook(struct uci_context *ctx, const struct uci_hook_ops *ops); - /** * uci_parse_ptr: parse a uci string into a uci_ptr * @ctx: uci context @@ -428,8 +410,6 @@ struct uci_context bool internal, nested; char *buf; int bufsz; - - struct uci_list hooks; }; struct uci_package @@ -506,18 +486,6 @@ struct uci_ptr const char *value; }; -struct uci_hook_ops -{ - void (*load)(const struct uci_hook_ops *ops, struct uci_package *p); - void (*set)(const struct uci_hook_ops *ops, struct uci_package *p, struct uci_delta *e); -}; - -struct uci_hook -{ - struct uci_element e; - const struct uci_hook_ops *ops; -}; - struct uci_parse_option { const char *name; enum uci_option_type type; @@ -593,7 +561,6 @@ struct uci_parse_option { #define uci_type_package UCI_TYPE_PACKAGE #define uci_type_section UCI_TYPE_SECTION #define uci_type_option UCI_TYPE_OPTION -#define uci_type_hook UCI_TYPE_HOOK /* element typecasting */ #ifdef UCI_DEBUG_TYPECAST @@ -603,7 +570,6 @@ static const char *uci_typestr[] = { [uci_type_package] = "package", [uci_type_section] = "section", [uci_type_option] = "option", - [uci_type_hook] = "hook", }; static void uci_typecast_error(int from, int to) @@ -625,7 +591,6 @@ BUILD_CAST(delta) BUILD_CAST(package) BUILD_CAST(section) BUILD_CAST(option) -BUILD_CAST(hook) #else #define uci_to_backend(ptr) container_of(ptr, struct uci_backend, e) @@ -633,7 +598,6 @@ BUILD_CAST(hook) #define uci_to_package(ptr) container_of(ptr, struct uci_package, e) #define uci_to_section(ptr) container_of(ptr, struct uci_section, e) #define uci_to_option(ptr) container_of(ptr, struct uci_option, e) -#define uci_to_hook(ptr) container_of(ptr, struct uci_hook, e) #endif /**