Fix nodes joining the VPN after tincctl top started.
This commit is contained in:
parent
311f60f4f0
commit
80ca91769d
3 changed files with 25 additions and 1 deletions
20
src/list.c
20
src/list.c
|
@ -111,6 +111,26 @@ list_node_t *list_insert_after(list_t *list, list_node_t *after, void *data) {
|
|||
return node;
|
||||
}
|
||||
|
||||
list_node_t *list_insert_before(list_t *list, list_node_t *before, void *data) {
|
||||
list_node_t *node;
|
||||
|
||||
node = list_alloc_node();
|
||||
|
||||
node->data = data;
|
||||
node->next = before;
|
||||
node->prev = before->prev;
|
||||
before->prev = node;
|
||||
|
||||
if(node->prev)
|
||||
node->prev->next = node;
|
||||
else
|
||||
list->head = node;
|
||||
|
||||
list->count++;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
void list_unlink_node(list_t *list, list_node_t *node) {
|
||||
if(node->prev)
|
||||
node->prev->next = node->next;
|
||||
|
|
|
@ -55,6 +55,7 @@ extern void list_free_node(list_t *, list_node_t *);
|
|||
extern list_node_t *list_insert_head(list_t *, void *);
|
||||
extern list_node_t *list_insert_tail(list_t *, void *);
|
||||
extern list_node_t *list_insert_after(list_t *, list_node_t *, void *);
|
||||
extern list_node_t *list_insert_before(list_t *, list_node_t *, void *);
|
||||
|
||||
extern void list_unlink_node(list_t *, list_node_t *);
|
||||
extern void list_delete_node(list_t *, list_node_t *);
|
||||
|
|
|
@ -108,7 +108,9 @@ static void update(int fd) {
|
|||
} else {
|
||||
found = xmalloc_and_zero(sizeof *found);
|
||||
found->name = xstrdup(name);
|
||||
list_insert_after(&node_list, i, found);
|
||||
fprintf(stderr, "Inserting %s before %s\n", found->name, node->name);
|
||||
list_insert_before(&node_list, i, found);
|
||||
changed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -117,6 +119,7 @@ static void update(int fd) {
|
|||
found = xmalloc_and_zero(sizeof *found);
|
||||
found->name = xstrdup(name);
|
||||
list_insert_tail(&node_list, found);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
found->known = true;
|
||||
|
|
Loading…
Reference in a new issue