libopkg: store compressed package lists
[oweals/opkg-lede.git] / libopkg / pkg_src_list.c
index 26881ce522aab0b9f2affe2232dee9d6de28c642..7ad1b415db6a8461e927bd2bdb6132f6b8ce3710 100644 (file)
@@ -1,4 +1,4 @@
-/* pkg_src_list.c - the itsy package management system
+/* pkg_src_list.c - the opkg package management system
 
    Carl D. Worth
 
    General Public License for more details.
 */
 
-#include "includes.h"
-
 #include "pkg_src_list.h"
 #include "void_list.h"
+#include "libbb/libbb.h"
 
-int pkg_src_list_init(pkg_src_list_t *list)
+void pkg_src_list_init(pkg_src_list_t *list)
 {
-    return void_list_init((void_list_t *) list);
+    void_list_init((void_list_t *) list);
 }
 
 void pkg_src_list_deinit(pkg_src_list_t *list)
 {
-    pkg_src_list_elt_t *iter;
+    pkg_src_list_elt_t *iter, *n;
     pkg_src_t *pkg_src;
 
-    for (iter = list->head; iter; iter = iter->next) {
-      pkg_src = iter->data;
+    list_for_each_entry_safe(iter, n, &list->head, node) {
+      pkg_src = (pkg_src_t *)iter->data;
       pkg_src_deinit(pkg_src);
 
       /* malloced in pkg_src_list_append */
@@ -45,28 +44,18 @@ pkg_src_t *pkg_src_list_append(pkg_src_list_t *list,
                               const char *name, const char *base_url, const char *extra_data,
                               int gzip)
 {
-    int err;
-
     /* freed in pkg_src_list_deinit */
-    pkg_src_t *pkg_src = malloc(sizeof(pkg_src_t));
-
-    if (pkg_src == NULL) {
-       fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
-       return NULL;
-    }
+    pkg_src_t *pkg_src = xcalloc(1, sizeof(pkg_src_t));
     pkg_src_init(pkg_src, name, base_url, extra_data, gzip);
 
-    err = void_list_append((void_list_t *) list, pkg_src);
-    if (err) {
-       return NULL;
-    }
+    void_list_append((void_list_t *) list, pkg_src);
 
     return pkg_src;
 }
 
-int pkg_src_list_push(pkg_src_list_t *list, pkg_src_t *data)
+void pkg_src_list_push(pkg_src_list_t *list, pkg_src_t *data)
 {
-    return void_list_push((void_list_t *) list, data);
+    void_list_push((void_list_t *) list, data);
 }
 
 pkg_src_list_elt_t *pkg_src_list_pop(pkg_src_list_t *list)