- node_t *n = NULL;
- char *addr_str = malloc(MAX_ADDRESS_LENGTH*sizeof(char));
- memset(addr_str, 0, MAX_ADDRESS_LENGTH*sizeof(char));
-
- char *port_str = malloc(MAX_PORT_LENGTH*sizeof(char));
- memset(port_str, 0, MAX_PORT_LENGTH*sizeof(char));
-
- // extra byte for a space, and one to make sure string is null-terminated
- int full_addr_len = MAX_ADDRESS_LENGTH + MAX_PORT_LENGTH + 2;
-
- char *full_addr_str = malloc(full_addr_len*sizeof(char));
- memset(full_addr_str, 0, full_addr_len*sizeof(char));
-
- // check that hostname matches an existing node
- n = lookup_node(mesh, hostname);
- if(!n)
- return;
-
- // get address and port number
- if(!get_ip_str(addr, addr_str, MAX_ADDRESS_LENGTH))
- return;
- if(!get_port_str(addr, port_str, MAX_ADDRESS_LENGTH))
- return;
+ char *host = NULL, *port = NULL, *str = NULL;
+ sockaddr2str((const sockaddr_t *)addr, &host, &port);