From ae1a3215b8a1a81f5df1f97b06ddcaff7e2679b8 Mon Sep 17 00:00:00 2001 From: raspopov Date: Sun, 31 May 2015 11:40:24 +0300 Subject: [PATCH 1/2] Extended dht_get_nodes() parameters to get also a node id. --- dht.c | 8 ++++++-- dht.h | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dht.c b/dht.c index 95002ea..e611a2e 100644 --- a/dht.c +++ b/dht.c @@ -2238,8 +2238,8 @@ dht_periodic(const void *buf, size_t buflen, } int -dht_get_nodes(struct sockaddr_in *sin, int *num, - struct sockaddr_in6 *sin6, int *num6) +dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, + struct sockaddr_in6 *sin6, unsigned char* id6, int *num6) { int i, j; struct bucket *b; @@ -2257,6 +2257,7 @@ dht_get_nodes(struct sockaddr_in *sin, int *num, while(n && i < *num) { if(node_good(n)) { sin[i] = *(struct sockaddr_in*)&n->ss; + if(id) memcpy( &id[i * 20], n->id, 20 ); i++; } n = n->next; @@ -2269,6 +2270,7 @@ dht_get_nodes(struct sockaddr_in *sin, int *num, while(n && i < *num) { if(node_good(n)) { sin[i] = *(struct sockaddr_in*)&n->ss; + if(id) memcpy( &id[i * 20], n->id, 20 ); i++; } n = n->next; @@ -2289,6 +2291,7 @@ dht_get_nodes(struct sockaddr_in *sin, int *num, while(n && j < *num6) { if(node_good(n)) { sin6[j] = *(struct sockaddr_in6*)&n->ss; + if(id6) memcpy( &id6[i * 20], n->id, 20 ); j++; } n = n->next; @@ -2301,6 +2304,7 @@ dht_get_nodes(struct sockaddr_in *sin, int *num, while(n && j < *num6) { if(node_good(n)) { sin6[j] = *(struct sockaddr_in6*)&n->ss; + if(id6) memcpy( &id6[i * 20], n->id, 20 ); j++; } n = n->next; diff --git a/dht.h b/dht.h index 2a0c633..21b7fa6 100644 --- a/dht.h +++ b/dht.h @@ -45,8 +45,8 @@ int dht_nodes(int af, int *good_return, int *dubious_return, int *cached_return, int *incoming_return); void dht_dump_tables(FILE *f); -int dht_get_nodes(struct sockaddr_in *sin, int *num, - struct sockaddr_in6 *sin6, int *num6); +int dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, + struct sockaddr_in6 *sin6, unsigned char* id6, int *num6); int dht_uninit(void); /* This must be provided by the user. */ From b7db9fa413fd69153aabf50802c8d4f73ec05985 Mon Sep 17 00:00:00 2001 From: raspopov Date: Sun, 31 May 2015 11:50:12 +0300 Subject: [PATCH 2/2] Spaces... --- dht.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dht.c b/dht.c index e611a2e..5f0cf72 100644 --- a/dht.c +++ b/dht.c @@ -2257,7 +2257,7 @@ dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, while(n && i < *num) { if(node_good(n)) { sin[i] = *(struct sockaddr_in*)&n->ss; - if(id) memcpy( &id[i * 20], n->id, 20 ); + if(id) memcpy( &id[i * 20], n->id, 20 ); i++; } n = n->next; @@ -2270,7 +2270,7 @@ dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, while(n && i < *num) { if(node_good(n)) { sin[i] = *(struct sockaddr_in*)&n->ss; - if(id) memcpy( &id[i * 20], n->id, 20 ); + if(id) memcpy( &id[i * 20], n->id, 20 ); i++; } n = n->next; @@ -2291,7 +2291,7 @@ dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, while(n && j < *num6) { if(node_good(n)) { sin6[j] = *(struct sockaddr_in6*)&n->ss; - if(id6) memcpy( &id6[i * 20], n->id, 20 ); + if(id6) memcpy( &id6[i * 20], n->id, 20 ); j++; } n = n->next; @@ -2304,7 +2304,7 @@ dht_get_nodes(struct sockaddr_in *sin, unsigned char* id, int *num, while(n && j < *num6) { if(node_good(n)) { sin6[j] = *(struct sockaddr_in6*)&n->ss; - if(id6) memcpy( &id6[i * 20], n->id, 20 ); + if(id6) memcpy( &id6[i * 20], n->id, 20 ); j++; } n = n->next;