bmx7: Avoid namespace collision with libubox. 400/head
authorEneas U de Queiroz <cote2004-github@yahoo.com>
Thu, 16 Aug 2018 14:04:21 +0000 (11:04 -0300)
committerEneas U de Queiroz <cote2004-github@yahoo.com>
Thu, 16 Aug 2018 14:05:51 +0000 (11:05 -0300)
Applied Daniel Golle's patch from
https://github.com/bmx-routing/bmx7/pull/35 to "rename some list stuff
to avoid namespace collision with libubox."

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
bmx7/Makefile
bmx7/patches/100-rename-list_add_tail-and-struct-list_head.patch [new file with mode: 0644]

index fe90af9c1ad4674f401ceea665c8ac81b69b95ee..80e1bd09a4dd066879bddb17d122350263a6989b 100644 (file)
@@ -32,7 +32,7 @@ PKG_SOURCE_URL:=https://github.com/bmx-routing/bmx7.git
 PKG_REV:=9883383dc26df16da67b9ef7ba99efe62f79c4e7
 PKG_MIRROR_HASH:=012178aba42016d3e0961715f99bf1e322c2c6c22b1cc6635375468360cb4d68
 PKG_VERSION:=r2018042501
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE_VERSION:=$(PKG_REV)
diff --git a/bmx7/patches/100-rename-list_add_tail-and-struct-list_head.patch b/bmx7/patches/100-rename-list_add_tail-and-struct-list_head.patch
new file mode 100644 (file)
index 0000000..ffb4584
--- /dev/null
@@ -0,0 +1,461 @@
+From 53f5a6ef74acff4c7294f4346a3d88fa04ad49c9 Mon Sep 17 00:00:00 2001
+From: Daniel Golle <daniel@makrotopia.org>
+Date: Tue, 14 Aug 2018 12:19:49 +0200
+Subject: [PATCH] rename list_add_tail and struct list_head
+
+Rename some list stuff to avoid namespace collision with libubox
+---
+ control.c          | 18 +++++++++---------
+ control.h          | 12 ++++++------
+ lib/bmx7_tun/tun.c |  2 +-
+ list.c             | 26 +++++++++++++-------------
+ list.h             | 36 ++++++++++++++++++------------------
+ msg.h              |  2 +-
+ plugin.c           |  8 ++++----
+ plugin.h           |  2 +-
+ schedule.c         |  2 +-
+ tun.h              |  2 +-
+ 10 files changed, 55 insertions(+), 55 deletions(-)
+
+diff --git a/control.c b/control.c
+index ee9df30..9ab778d 100644
+--- a/control.c
++++ b/control.c
+@@ -73,7 +73,7 @@ uint32_t My_pid = 0;
+ LIST_SIMPEL(ctrl_list, struct ctrl_node, list, list);
+-struct list_head dbgl_clients[DBGL_MAX + 1];
++struct bmx_list_head dbgl_clients[DBGL_MAX + 1];
+ static struct dbg_histogram dbgl_history[2][DBG_HIST_SIZE];
+ static uint8_t debug_system_active = NO;
+@@ -136,7 +136,7 @@ void add_dbgl_node(struct ctrl_node *cn, int dbgl)
+       dn->cn = cn;
+       cn->dbgl = dbgl;
+-      list_add_tail(&dbgl_clients[dbgl], &dn->list);
++      bmx_list_add_tail(&dbgl_clients[dbgl], &dn->list);
+       if (dbgl == DBGL_SYS || dbgl == DBGL_CHANGES) {
+               dbgf_all(DBGT_INFO, "resetting muted dbg history");
+@@ -255,7 +255,7 @@ struct ctrl_node *create_ctrl_node(int fd, void (*cn_fd_handler) (struct ctrl_no
+ {
+       struct ctrl_node *cn = debugMallocReset(sizeof(struct ctrl_node), -300010);
+-      list_add_tail(&ctrl_list, &cn->list);
++      bmx_list_add_tail(&ctrl_list, &cn->list);
+       cn->fd = fd;
+       cn->cn_fd_handler = cn_fd_handler;
+@@ -571,7 +571,7 @@ void debug_output(uint32_t check_len, struct ctrl_node *cn, int8_t dbgl, int8_t
+               if (level == DBGL_SYS && mute_dbgl_sys == DBG_HIST_MUTED)
+                       continue;
+-              list_for_each(list_pos, /*(struct list_head *)*/&(dbgl_clients[level]))
++              list_for_each(list_pos, /*(struct bmx_list_head *)*/&(dbgl_clients[level]))
+               {
+                       struct dbgl_node *dn = list_entry(list_pos, struct dbgl_node, list);
+@@ -990,7 +990,7 @@ void register_option(struct opt_type *opt, const char * category_name)
+               opt->d.parent_opt = tmp_opt;
+-              list_add_tail(&tmp_opt->d.childs_type_list, &opt->d.list);
++              bmx_list_add_tail(&tmp_opt->d.childs_type_list, &opt->d.list);
+       } else {
+@@ -1017,7 +1017,7 @@ void register_option(struct opt_type *opt, const char * category_name)
+               }
+               if (!tmp_opt)
+-                      list_add_tail(&opt_list, &opt->d.list);
++                      bmx_list_add_tail(&opt_list, &opt->d.list);
+       }
+@@ -1094,7 +1094,7 @@ struct opt_type *get_option(struct opt_type *parent_opt, uint8_t short_opt, char
+       struct list_node *list_pos;
+       int32_t len = 0;
+-      struct list_head *list;
++      struct bmx_list_head *list;
+       struct opt_type *opt = NULL;
+       char *equalp = NULL;
+       char s[MAX_ARG_SIZE] = "";
+@@ -1305,7 +1305,7 @@ struct opt_child *add_opt_child(struct opt_type *opt, struct opt_parent *p)
+       c->opt = opt;
+       c->parent_instance = p;
+-      list_add_tail(&p->childs_instance_list, &c->list);
++      bmx_list_add_tail(&p->childs_instance_list, &c->list);
+       return c;
+ }
+@@ -1347,7 +1347,7 @@ struct opt_parent *add_opt_parent(struct opt_type *opt)
+       LIST_INIT_HEAD(p->childs_instance_list, struct opt_child, list, list);
+-      list_add_tail(&opt->d.parents_instance_list, &p->list);
++      bmx_list_add_tail(&opt->d.parents_instance_list, &p->list);
+       return p;
+ }
+diff --git a/control.h b/control.h
+index df0176f..4ef0854 100644
+--- a/control.h
++++ b/control.h
+@@ -49,7 +49,7 @@ typedef uint32_t TIME_SEC_T;
+ extern int unix_sock;
+-extern struct list_head ctrl_list;
++extern struct bmx_list_head ctrl_list;
+ extern int32_t Client_mode;
+@@ -115,7 +115,7 @@ struct ctrl_node {
+       int8_t dbgl;
+ };
+-extern struct list_head dbgl_clients[DBGL_MAX + 1];
++extern struct bmx_list_head dbgl_clients[DBGL_MAX + 1];
+ struct dbgl_node {
+       struct list_node list;
+@@ -227,7 +227,7 @@ struct ctrl_node *create_ctrl_node(int fd, void (*cn_fd_handler) (struct ctrl_no
+ #define MAX_UNIX_MSG_SIZE 2000
+-extern struct list_head opt_list;
++extern struct bmx_list_head opt_list;
+ /* opt_t types:
+@@ -292,7 +292,7 @@ struct opt_child {
+ struct opt_parent {
+       struct list_node list;
+-      struct list_head childs_instance_list;
++      struct bmx_list_head childs_instance_list;
+       char *val; //key
+@@ -311,9 +311,9 @@ struct opt_data {
+       struct opt_type *parent_opt; //REMOVE THIS and use casting instead !
+-      struct list_head childs_type_list; //if this opt is a section type, then further sub-opts types can be listed here
++      struct bmx_list_head childs_type_list; //if this opt is a section type, then further sub-opts types can be listed here
+-      struct list_head parents_instance_list; //
++      struct bmx_list_head parents_instance_list; //
+ };
+ struct opt_type {
+diff --git a/lib/bmx7_tun/tun.c b/lib/bmx7_tun/tun.c
+index 2aa740c..265c47a 100644
+--- a/lib/bmx7_tun/tun.c
++++ b/lib/bmx7_tun/tun.c
+@@ -126,7 +126,7 @@ void set_tunXin6_net_adv_list_handl(uint8_t del, void **adv_list_ptr)
+       n = debugMallocReset(sizeof( struct tunXin6_net_adv_list_node), -300517);
+       n->adv_list = adv_list;
+-      list_add_tail((&tunXin6_net_adv_list_list), &n->list);
++      bmx_list_add_tail((&tunXin6_net_adv_list_list), &n->list);
+ }
+ STATIC_FUNC
+diff --git a/list.c b/list.c
+index 5e0665d..b698874 100644
+--- a/list.c
++++ b/list.c
+@@ -39,7 +39,7 @@
+  * @head: list head of maintained nodes
+  * @node: a node maintained in the list or NULL
+  */
+-void * list_iterate(struct list_head *head, void *node)
++void * list_iterate(struct bmx_list_head *head, void *node)
+ {
+       struct list_node *ln = (node ?
+               ((struct list_node*) (((char*) node) + head->list_node_offset)) :
+@@ -53,7 +53,7 @@ void * list_iterate(struct list_head *head, void *node)
+       return(((char*) ln->next) - head->list_node_offset);
+ }
+-void *list_find_next(struct list_head *head, void* key, void *node)
++void *list_find_next(struct bmx_list_head *head, void* key, void *node)
+ {
+       while ((node = list_iterate(head, node))) {
+@@ -68,7 +68,7 @@ void *list_find_next(struct list_head *head, void* key, void *node)
+  * @head: list head to add it after
+  * @new: new entry to be added
+  */
+-void list_add_head(struct list_head *head, struct list_node *new)
++void list_add_head(struct bmx_list_head *head, struct list_node *new)
+ {
+       new->next = head->next;
+@@ -82,12 +82,12 @@ void list_add_head(struct list_head *head, struct list_node *new)
+ }
+ /**
+- * list_add_tail - add a new entry
++ * bmx_list_add_tail - add a new entry
+  * @head: list head to add it before
+  * @new: new entry to be added
+  */
+-void list_add_tail(struct list_head *head, struct list_node *new)
++void bmx_list_add_tail(struct bmx_list_head *head, struct list_node *new)
+ {
+       new->next = (struct list_node *) head;
+       head->last->next = new;
+@@ -96,7 +96,7 @@ void list_add_tail(struct list_head *head, struct list_node *new)
+       head->items++;
+ }
+-void list_add_after(struct list_head *head, struct list_node *ln, struct list_node *new)
++void list_add_after(struct bmx_list_head *head, struct list_node *ln, struct list_node *new)
+ {
+       new->next = ln->next;
+       ln->next = new;
+@@ -112,7 +112,7 @@ void list_add_after(struct list_head *head, struct list_node *ln, struct list_no
+  * @entry: the element to delete from the list.
+  * Note: list_empty on entry does not return true after this, the entry is in an undefined state.
+  */
+-void list_del_next(struct list_head *head, struct list_node *ln)
++void list_del_next(struct bmx_list_head *head, struct list_node *ln)
+ {
+       assertion(-502641, (ln->next != (struct list_node*) head));
+@@ -126,7 +126,7 @@ void list_del_next(struct list_head *head, struct list_node *ln)
+       head->items--;
+ }
+-void *list_del_head(struct list_head *head)
++void *list_del_head(struct bmx_list_head *head)
+ {
+       if (LIST_EMPTY(head))
+               return NULL;
+@@ -147,7 +147,7 @@ void *list_del_head(struct list_head *head)
+  */
+ /* UNTESTED
+-void * plist_iterate(struct list_head *head, struct plist_node **pln)
++void * plist_iterate(struct bmx_list_head *head, struct plist_node **pln)
+ {
+       if (head->last == (struct list_node*)
+@@ -169,17 +169,17 @@ static struct plist_node *plist_node_create(void *item)
+       return plh;
+ }
+-void plist_add_head(struct list_head *head, void *item)
++void plist_add_head(struct bmx_list_head *head, void *item)
+ {
+       list_add_head(head, &((plist_node_create(item))->list));
+ }
+-void plist_add_tail(struct list_head *head, void *item)
++void plist_add_tail(struct bmx_list_head *head, void *item)
+ {
+-      list_add_tail(head, &((plist_node_create(item))->list));
++      bmx_list_add_tail(head, &((plist_node_create(item))->list));
+ }
+-void * plist_del_head(struct list_head *head)
++void * plist_del_head(struct bmx_list_head *head)
+ {
+       struct plist_node *pln = list_del_head(head);
+diff --git a/list.h b/list.h
+index d40306c..770dc9f 100644
+--- a/list.h
++++ b/list.h
+@@ -28,7 +28,7 @@
+ #ifndef _LIST_H
+-#define _LIST_H
++#define _LIST_H_
+ #include <stdint.h>
+@@ -36,7 +36,7 @@ struct list_node {
+       struct list_node *next;
+ };
+-struct list_head {
++struct bmx_list_head {
+       struct list_node *next;
+       struct list_node *last;
+       uint16_t items;
+@@ -52,7 +52,7 @@ struct plist_node {
+-#define LIST_SIMPEL(ptr, element_type, list_field, key_field ) struct list_head ptr = { \
++#define LIST_SIMPEL(ptr, element_type, list_field, key_field ) struct bmx_list_head ptr = { \
+           .next = (struct list_node *)&ptr, \
+           .last = (struct list_node *)&ptr,    \
+           .items = 0, \
+@@ -75,14 +75,14 @@ struct plist_node {
+ #define list_get_first(head) ((void*)((LIST_EMPTY(head)) ? NULL : (((char*) (head)->next) - (head)->list_node_offset) ))
+ #define list_get_last(head) ((void*)((LIST_EMPTY(head)) ? NULL : (((char*) (head)->last) - (head)->list_node_offset) ))
+-void *list_iterate(struct list_head *head, void *node);
+-void *list_find_next(struct list_head *head, void* key, void *node);
++void *list_iterate(struct bmx_list_head *head, void *node);
++void *list_find_next(struct bmx_list_head *head, void* key, void *node);
+-void list_add_head(struct list_head *head, struct list_node * new);
+-void list_add_tail(struct list_head *head, struct list_node * new);
+-void list_add_after(struct list_head *head, struct list_node *pos, struct list_node * new);
+-void list_del_next(struct list_head *head, struct list_node *pos);
+-void *list_del_head(struct list_head *head);
++void list_add_head(struct bmx_list_head *head, struct list_node * new);
++void bmx_list_add_tail(struct bmx_list_head *head, struct list_node * new);
++void list_add_after(struct bmx_list_head *head, struct list_node *pos, struct list_node * new);
++void list_del_next(struct bmx_list_head *head, struct list_node *pos);
++void *list_del_head(struct bmx_list_head *head);
+ #define plist_get_first(head) (LIST_EMPTY(head) ? NULL : \
+@@ -91,17 +91,17 @@ void *list_del_head(struct list_head *head);
+ #define plist_get_last(head) (LIST_EMPTY(head) ? NULL : \
+                               ((struct plist_node*)(((char*) (head)->prev) - (head)->list_node_offset))-item )
+-void * plist_iterate(struct list_head *head, struct plist_node **pln);
++void * plist_iterate(struct bmx_list_head *head, struct plist_node **pln);
+-void plist_add_head(struct list_head *head, void *item);
+-void plist_add_tail(struct list_head *head, void *item);
+-void *plist_del_head(struct list_head *head);
++void plist_add_head(struct bmx_list_head *head, void *item);
++void plist_add_tail(struct bmx_list_head *head, void *item);
++void *plist_del_head(struct bmx_list_head *head);
+ /**
+  * list_entry - get the struct for this entry
+- * @ptr:      the &struct list_head pointer.
++ * @ptr:      the &struct bmx_list_head pointer.
+  * @type:     the type of the struct this is embedded in.
+  * @member:   the name of the list_struct within the struct.
+  */
+@@ -109,7 +109,7 @@ void *plist_del_head(struct list_head *head);
+ /**
+  * list_for_each      -       iterate over a list
+- * @pos:      the &struct list_head to use as a loop counter.
++ * @pos:      the &struct bmx_list_head to use as a loop counter.
+  * @head:     the head for your list.
+  */
+ #define list_for_each(pos, head) \
+@@ -123,8 +123,8 @@ void *plist_del_head(struct list_head *head);
+ /**
+  * list_for_each_safe -       iterate over a list safe against removal of list entry
+- * @pos:      the &struct list_head to use as a loop counter.
+- * @n:                another &struct list_head to use as temporary storage
++ * @pos:      the &struct bmx_list_head to use as a loop counter.
++ * @n:                another &struct bmx_list_head to use as temporary storage
+  * @head:     the head for your list.
+  */
+ #define list_for_each_safe(pos, n, head) \
+diff --git a/msg.h b/msg.h
+index d36f6e2..b881cef 100644
+--- a/msg.h
++++ b/msg.h
+@@ -357,7 +357,7 @@ struct tx_frame_iterator {
+       // MUST be initialized:
+       // remains unchanged:
+       const char *caller;
+-      struct list_head *tx_task_list;
++      struct bmx_list_head *tx_task_list;
+       struct tx_task_node *ttn;
+       //      struct desc_contents *descContents;
+       struct frame_db *db;
+diff --git a/plugin.c b/plugin.c
+index 5016956..102cdba 100644
+--- a/plugin.c
++++ b/plugin.c
+@@ -74,7 +74,7 @@ void _set_thread_hook(int32_t cb_type, void (*cb_handler) (void), int8_t del, st
+               cleanup_all(-500143);
+       }
+-      list_for_each_safe(list_pos, tmp_pos, (struct list_head*) cb_list)
++      list_for_each_safe(list_pos, tmp_pos, (struct bmx_list_head*) cb_list)
+       {
+               cbn = list_entry(list_pos, struct cb_node, list);
+@@ -82,7 +82,7 @@ void _set_thread_hook(int32_t cb_type, void (*cb_handler) (void), int8_t del, st
+                       if (del) {
+-                              list_del_next(((struct list_head*) cb_list), prev_pos);
++                              list_del_next(((struct bmx_list_head*) cb_list), prev_pos);
+                               debugFree(cbn, -300069);
+                               return;
+@@ -103,7 +103,7 @@ void _set_thread_hook(int32_t cb_type, void (*cb_handler) (void), int8_t del, st
+       cbn->cb_type = cb_type;
+       cbn->cb_handler = cb_handler;
+-      list_add_tail(((struct list_head*) cb_list), &cbn->list);
++      bmx_list_add_tail(((struct bmx_list_head*) cb_list), &cbn->list);
+ }
+@@ -261,7 +261,7 @@ int activate_plugin(struct plugin *p, void *dlhandle, const char *dl_name)
+       pn->plugin = p;
+       pn->dlhandle = dlhandle;
+-      list_add_tail(&plugin_list, &pn->list);
++      bmx_list_add_tail(&plugin_list, &pn->list);
+       dbgf_all(DBGT_INFO, "%s SUCCESS", pn->plugin->plugin_name);
+diff --git a/plugin.h b/plugin.h
+index 5028d4e..b5c9727 100644
+--- a/plugin.h
++++ b/plugin.h
+@@ -74,7 +74,7 @@ struct cb_fd_node {
+       void (*cb_fd_handler) (int32_t fd);
+ };
+-extern struct list_head cb_fd_list;
++extern struct bmx_list_head cb_fd_list;
+ // cb_fd_handler is called when fd received data
+ // called function may remove itself
+ void set_fd_hook(int32_t fd, void (*cb_fd_handler) (int32_t fd), int8_t del);
+diff --git a/schedule.c b/schedule.c
+index 8e3f7a6..8868b01 100644
+--- a/schedule.c
++++ b/schedule.c
+@@ -205,7 +205,7 @@ void task_register(TIME_T timeout, void (* task) (void *), void *data, int32_t t
+       }
+       if ((tmp_tn == NULL) || (U32_LE(tmp_tn->expire, tn->expire)))
+-              list_add_tail(&task_list, &tn->list);
++              bmx_list_add_tail(&task_list, &tn->list);
+ }
+diff --git a/tun.h b/tun.h
+index 06b8c6f..102ee87 100644
+--- a/tun.h
++++ b/tun.h
+@@ -309,7 +309,7 @@ struct tunXin6_net_adv_list_node {
+ };
+-extern struct list_head tunXin6_net_adv_list_list;
++extern struct bmx_list_head tunXin6_net_adv_list_list;
+ struct tun_bit_key_nodes {
+       struct tun_search_node *tsn;