X-Git-Url: https://git.librecmc.org/?p=oweals%2Fopkg-lede.git;a=blobdiff_plain;f=libopkg%2Fopkg.c;h=7f9862b7a235ea96e5046e5a66359ea4fc7eb436;hp=046b5a096d34cdf1247839efa17bc31c2f335aee;hb=df095ad14d4217ab3223862f3a6b9a2134c709b2;hpb=307864afe92e3b941d66bb334b32979eac2b41ab diff --git a/libopkg/opkg.c b/libopkg/opkg.c index 046b5a0..7f9862b 100644 --- a/libopkg/opkg.c +++ b/libopkg/opkg.c @@ -20,7 +20,6 @@ #include "opkg.h" #include "opkg_conf.h" -#include "args.h" #include "opkg_install.h" #include "opkg_configure.h" @@ -33,8 +32,6 @@ #include -args_t *args; - #define opkg_assert(expr) if (!(expr)) { \ printf ("opkg: file %s: line %d (%s): Assertation '%s' failed",\ __FILE__, __LINE__, __PRETTY_FUNCTION__, # expr); abort (); } @@ -117,18 +114,22 @@ curl_progress_cb(struct _curl_cb_data *cb_data, double t, /* dltotal */ int opkg_new() { - int err; + if (opkg_conf_init()) + goto err0; - args = xcalloc(1, sizeof(args_t)); - args_init(args); + if (pkg_hash_load_feeds()) + goto err1; - err = opkg_conf_init(args); - if (err) { - free(args); - return -1; - } + if (pkg_hash_load_status_files()) + goto err1; return 0; + +err1: + pkg_hash_deinit(); +err0: + opkg_conf_deinit(); + return -1; } void @@ -138,19 +139,25 @@ opkg_free(void) opkg_curl_cleanup(); #endif opkg_conf_deinit(); - args_deinit(args); - free(args); } int opkg_re_read_config_files(void) { - /* Unfortunately, the easiest way to re-read the config files right now is to - * throw away conf and start again */ - opkg_free(); - memset(conf, '\0', sizeof(opkg_conf_t)); - return opkg_new(); + pkg_hash_deinit(); + pkg_hash_init(); + + if (pkg_hash_load_feeds()) + goto err; + + if (pkg_hash_load_status_files()) + goto err; + return 0; + +err: + pkg_hash_deinit(); + return -1; } void