X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=libuci.c;h=51ce7dad7994bef1569c0d636a5f573dc67e998f;hp=c0b4ab01571a18f2b4ed86d1bfeb38034e410e5e;hb=6042bb553c8660cc649a3f0eed0d932878b10cac;hpb=f0be94e4d8d2a0c8ab35b932e88170cc37cca4af diff --git a/libuci.c b/libuci.c index c0b4ab0..51ce7da 100644 --- a/libuci.c +++ b/libuci.c @@ -25,13 +25,14 @@ #include "err.h" static const char *uci_errstr[] = { - [UCI_OK] = "Success", - [UCI_ERR_MEM] = "Out of memory", - [UCI_ERR_INVAL] = "Invalid argument", - [UCI_ERR_NOTFOUND] = "Entry not found", - [UCI_ERR_IO] = "I/O error", - [UCI_ERR_PARSE] = "Parse error", - [UCI_ERR_UNKNOWN] = "Unknown error", + [UCI_OK] = "Success", + [UCI_ERR_MEM] = "Out of memory", + [UCI_ERR_INVAL] = "Invalid argument", + [UCI_ERR_NOTFOUND] = "Entry not found", + [UCI_ERR_IO] = "I/O error", + [UCI_ERR_PARSE] = "Parse error", + [UCI_ERR_DUPLICATE] = "Duplicate entry", + [UCI_ERR_UNKNOWN] = "Unknown error", }; #include "util.c" @@ -46,6 +47,7 @@ struct uci_context *uci_alloc_context(void) ctx = (struct uci_context *) malloc(sizeof(struct uci_context)); memset(ctx, 0, sizeof(struct uci_context)); uci_list_init(&ctx->root); + ctx->flags = UCI_FLAG_STRICT; return ctx; } @@ -57,7 +59,8 @@ void uci_free_context(struct uci_context *ctx) UCI_TRAP_SAVE(ctx, ignore); uci_cleanup(ctx); uci_foreach_element_safe(&ctx->root, tmp, e) { - uci_free_package(uci_to_package(e)); + struct uci_package *p = uci_to_package(e); + uci_free_package(&p); } free(ctx); UCI_TRAP_RESTORE(ctx);