+ /* Check if node already exists */
+
+ n = lookup_node(name);
+
+ if(n)
+ {
+ /* Check if it matches */
+ }
+ else
+ {
+ n = new_node();
+ n->name = xstrdup(name);
+ n->address = address;
+ n->port = port;
+ node_add(n);
+ }
+
+ /* Tell the rest about the new node */
+
+ for(node = connection_tree->head; node; node = node->next)
+ {
+ other = (connection_t *)node->data;
+ if(other->status.active && other !=c)
+ send_add_node(other, n);
+ }
+
+cp
+ return 0;
+}
+
+int send_del_node(connection_t *c, node_t *n)
+{
+cp
+ return send_request(c, "%d %s %lx:%d", DEL_NODE,
+ n->name, n->address, n->port);
+}
+
+int del_node_h(connection_t *c)
+{
+ node_t *n;
+ char name[MAX_STRING_SIZE];
+ ipv4_t address;
+ port_t port;
+ connection_t *other;
+ avl_node_t *node;
+cp
+ if(sscanf(c->buffer, "%*d "MAX_STRING" %lx:%hd", name, &address, &port) != 3)