- connection_tree = new_rbltree((rbl_compare_t)connection_compare, (rbl_action_t)free_connection);
- id_tree = new_rbltree((rbl_compare_t)id_compare, NULL);
-}
-
-/* Creation and deletion of connection elements */
-
-connection_t *new_connection(void)
-{
- connection_t *p = (connection_t *)xmalloc(sizeof(*p));
-cp
- /* initialise all those stupid pointers at once */
- memset(p, '\0', sizeof(*p));
-
- p->subnet_tree = new_rbltree((rbl_compare_t)subnet_compare, NULL);
-cp
- return p;
-}
-
-void free_connection(connection_t *p)
-{
-cp
- if(p->sq)
- destroy_queue(p->sq);
- if(p->rq)
- destroy_queue(p->rq);
- if(p->name && p->name!=unknown)
- free(p->name);
- if(p->hostname)
- free(p->hostname);
- if(p->rsa_key)
- RSA_free(p->rsa_key);
- if(p->cipher_pktkey)
- free(p->cipher_pktkey);
- if(p->buffer)
- free(p->buffer);
- if(p->config)
- clear_config(&p->config);
- free(p);
-cp
+ cp();
+ connection_tree = avl_alloc_tree((avl_compare_t)connection_compare, NULL);
+ cp();
+ broadcast = new_connection();
+ broadcast->name = xstrdup(_("everyone"));
+ broadcast->hostname = xstrdup(_("BROADCAST"));
+ cp();