In retry() the function do_outgoing_connection() is called, which can delete
items from the connection_tree, so when walking the tree we must first save the
pointer to the next item.
void retry(void) {
connection_t *c;
- splay_node_t *node;
+ splay_node_t *node, *next;
- for(node = connection_tree->head; node; node = node->next) {
+ for(node = connection_tree->head; node; node = next) {
+ next = node->next;
c = node->data;
if(c->outgoing && !c->node) {