Fixed adding a peer a bootstrap
This commit is contained in:
parent
12f8751ef8
commit
bda5108589
50
src/node.c
50
src/node.c
@ -338,7 +338,7 @@ int update_neighbours() {
|
|||||||
// from this peer then remove it from the list
|
// from this peer then remove it from the list
|
||||||
time(&curtime);
|
time(&curtime);
|
||||||
|
|
||||||
if(difftime(peer->last_seen, curtime) >= 70) {
|
if(difftime(curtime, peer->last_seen) >= 70) {
|
||||||
// increase the count of deleted nodes
|
// increase the count of deleted nodes
|
||||||
deleted++;
|
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);
|
int rc = getaddrinfo(root_peer_ip, "http", &hints, &res);
|
||||||
if(rc != 0) {
|
if(rc != 0) {
|
||||||
print_error("Failed to resolve hostname, exiting...");
|
print_error("Failed to resolve hostname, exiting...");
|
||||||
|
printf(gai_strerror(rc));
|
||||||
exit(1);
|
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.
|
// For every address given to us by getaddrinfo, we create a new peer.
|
||||||
struct addrinfo *p;
|
struct addrinfo *p;
|
||||||
struct neighbour_peer *peer ;
|
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;
|
// set last_seen time
|
||||||
for(p = res; p != NULL; p = p->ai_next) {
|
peer->last_seen = time(NULL);
|
||||||
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
|
if (DEBUG_LEVEL > 0) {
|
||||||
peer->last_seen = time(NULL);
|
char * buff_str_ip[1024];
|
||||||
|
char * ip_str = (char * ) inet_ntop(AF_INET6,&peer->ip,(char * restrict) buff_str_ip, 1024);
|
||||||
if (DEBUG_LEVEL > 0) {
|
printf("\x1b[31m[DEBUG]\x1b[0m >> Adding %s @ %i to peer list.\n", ip_str, root_peer_port );
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
print_peers(neighbour_list);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user