diff --git a/src/node.c b/src/node.c index 3623f0f..18c76f5 100644 --- a/src/node.c +++ b/src/node.c @@ -338,7 +338,7 @@ int update_neighbours() { // from this peer then remove it from the list time(&curtime); - if(difftime(peer->last_seen, curtime) >= 70) { + if(difftime(curtime, peer->last_seen) >= 70) { // increase the count of deleted nodes deleted++; @@ -1395,6 +1395,7 @@ int bootstrap_node(int * sock_fd, char * root_peer_ip, uint16_t root_peer_port){ int rc = getaddrinfo(root_peer_ip, "http", &hints, &res); if(rc != 0) { print_error("Failed to resolve hostname, exiting..."); + printf(gai_strerror(rc)); exit(1); } @@ -1404,38 +1405,29 @@ int bootstrap_node(int * sock_fd, char * root_peer_ip, uint16_t root_peer_port){ // For every address given to us by getaddrinfo, we create a new peer. struct addrinfo *p; struct neighbour_peer *peer ; + p = res; + peer = (neighbour_peer*) malloc(sizeof(neighbour_peer)); + memcpy(&peer->ip, &((struct sockaddr_in6 *) p->ai_addr)->sin6_addr, sizeof(struct in6_addr)); + peer->port = root_peer_port; + peer->is_temporary = 0; - list * tmp = neighbour_list; - for(p = res; p != NULL; p = p->ai_next) { - peer = (neighbour_peer*) malloc(sizeof(neighbour_peer)); - memcpy(&peer->ip, &((struct sockaddr_in6 *) p->ai_addr)->sin6_addr, sizeof(struct in6_addr)); - peer->port = root_peer_port; - peer->is_temporary = 0; + // set last_seen time + peer->last_seen = time(NULL); - // set last_seen time - peer->last_seen = time(NULL); - - if (DEBUG_LEVEL > 0) { - char * buff_str_ip[1024]; - char * ip_str = (char * ) inet_ntop(AF_INET6,&peer->ip,(char * restrict) buff_str_ip, 1024); - printf("\x1b[31m[DEBUG]\x1b[0m >> Adding %s @ %i to peer list.\n", ip_str, root_peer_port ); - } - - - - // Add new peer to the list. - list *node = (list*) malloc(sizeof(list)); - node->data = (void*) peer; - node->next = NULL; - - // Goint to the end of the list - while(tmp->next != NULL){ - tmp = tmp->next; - } - tmp->next = node; + if (DEBUG_LEVEL > 0) { + char * buff_str_ip[1024]; + char * ip_str = (char * ) inet_ntop(AF_INET6,&peer->ip,(char * restrict) buff_str_ip, 1024); + printf("\x1b[31m[DEBUG]\x1b[0m >> Adding %s @ %i to peer list.\n", ip_str, root_peer_port ); } - neighbour_list = tmp; + + + // Add new peer to the list. + list *node = (list*) malloc(sizeof(list)); + node->data = (void*) peer; + node->next = neighbour_list; + neighbour_list = node; + neighbour_list->next = NULL; print_peers(neighbour_list); @@ -1451,7 +1443,7 @@ int bootstrap_node(int * sock_fd, char * root_peer_ip, uint16_t root_peer_port){ our_data->seqno = 1337; our_data->data = NULL; - + freeaddrinfo(res); print_debug(">> Boostraping done.");