diff options
Diffstat (limited to 'toxcore/DHT.c')
-rw-r--r-- | toxcore/DHT.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/toxcore/DHT.c b/toxcore/DHT.c index 1eebb0c7..8208052d 100644 --- a/toxcore/DHT.c +++ b/toxcore/DHT.c | |||
@@ -2803,6 +2803,11 @@ uint32_t dht_size(const DHT *dht) | |||
2803 | uint32_t numv4 = 0; | 2803 | uint32_t numv4 = 0; |
2804 | uint32_t numv6 = 0; | 2804 | uint32_t numv6 = 0; |
2805 | 2805 | ||
2806 | for (uint32_t i = 0; i < dht->loaded_num_nodes; ++i) { | ||
2807 | numv4 += net_family_is_ipv4(dht->loaded_nodes_list[i].ip_port.ip.family); | ||
2808 | numv6 += net_family_is_ipv6(dht->loaded_nodes_list[i].ip_port.ip.family); | ||
2809 | } | ||
2810 | |||
2806 | for (uint32_t i = 0; i < LCLIENT_LIST; ++i) { | 2811 | for (uint32_t i = 0; i < LCLIENT_LIST; ++i) { |
2807 | numv4 += (dht->close_clientlist[i].assoc4.timestamp != 0); | 2812 | numv4 += (dht->close_clientlist[i].assoc4.timestamp != 0); |
2808 | numv6 += (dht->close_clientlist[i].assoc6.timestamp != 0); | 2813 | numv6 += (dht->close_clientlist[i].assoc6.timestamp != 0); |
@@ -2838,6 +2843,11 @@ void dht_save(const DHT *dht, uint8_t *data) | |||
2838 | 2843 | ||
2839 | uint32_t num = 0; | 2844 | uint32_t num = 0; |
2840 | 2845 | ||
2846 | if (dht->loaded_num_nodes > 0) { | ||
2847 | memcpy(clients, dht->loaded_nodes_list, sizeof(Node_format) * dht->loaded_num_nodes); | ||
2848 | num += dht->loaded_num_nodes; | ||
2849 | } | ||
2850 | |||
2841 | for (uint32_t i = 0; i < LCLIENT_LIST; ++i) { | 2851 | for (uint32_t i = 0; i < LCLIENT_LIST; ++i) { |
2842 | if (dht->close_clientlist[i].assoc4.timestamp != 0) { | 2852 | if (dht->close_clientlist[i].assoc4.timestamp != 0) { |
2843 | memcpy(clients[num].public_key, dht->close_clientlist[i].public_key, CRYPTO_PUBLIC_KEY_SIZE); | 2853 | memcpy(clients[num].public_key, dht->close_clientlist[i].public_key, CRYPTO_PUBLIC_KEY_SIZE); |