From 9de295374decd78fd676574bd38243479dfd6054 Mon Sep 17 00:00:00 2001 From: "Coren[m]" Date: Fri, 27 Sep 2013 03:27:52 +0200 Subject: expanded Client_data to hold two addresses (IPv4, IPv6) instead of one Compilerflag: CLIENT_ONETOONE_IP (to define in DHT.h, default unset i.e. NEW case: two addresses) Every function in DHT{_test}.c working on Client_data has been rewritten to store IPv4 addresses in assoc4, IPv6 addresses in assoc6. Loading/Storing of states defined with other compiler switch is transparently adjusting to the differences. DHT.h, DHT.c: - introduction and handling of the structure changes DHT_test.c, Messenger.c: - logging adapted to new structures util.h: - LOGGING isn't undefined per default anymore --- toxcore/Messenger.c | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) (limited to 'toxcore/Messenger.c') diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index f22a8d57..8ad15bc1 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c @@ -1296,18 +1296,23 @@ void doMessenger(Messenger *m) for (client = 0; client < LCLIENT_LIST; client++) { Client_data *cptr = &m->dht->close_clientlist[client]; + IPPTsPng *assoc = NULL; +#ifdef CLIENT_ONETOONE_IP + assoc = &cptr->assoc; +#else + for (assoc = &cptr->assoc4; assoc != &cptr->assoc6; assoc = &cptr->assoc6) +#endif + if (ip_isset(&assoc->ip_port.ip)) { + last_pinged = lastdump - assoc->last_pinged; - if (ip_isset(&cptr->ip_port.ip)) { - last_pinged = lastdump - cptr->last_pinged; - - if (last_pinged > 999) - last_pinged = 999; + if (last_pinged > 999) + last_pinged = 999; - snprintf(logbuffer, sizeof(logbuffer), "C[%2u] %s:%u [%3u] %s\n", - client, ip_ntoa(&cptr->ip_port.ip), ntohs(cptr->ip_port.port), - last_pinged, ID2String(cptr->client_id)); - loglog(logbuffer); - } + snprintf(logbuffer, sizeof(logbuffer), "C[%2u] %s:%u [%3u] %s\n", + client, ip_ntoa(&assoc->ip_port.ip), ntohs(assoc->ip_port.port), + last_pinged, ID2String(cptr->client_id)); + loglog(logbuffer); + } } loglog(" = = = = = = = = \n"); @@ -1350,16 +1355,24 @@ void doMessenger(Messenger *m) for (client = 0; client < MAX_FRIEND_CLIENTS; client++) { Client_data *cptr = &dhtfptr->client_list[client]; - last_pinged = lastdump - cptr->last_pinged; + IPPTsPng *assoc = NULL; +#ifdef CLIENT_ONETOONE_IP + assoc = &cptr->assoc; +#else + for (assoc = &cptr->assoc4; assoc != &cptr->assoc6; assoc = &cptr->assoc6) +#endif + if (ip_isset(&assoc->ip_port.ip)) { + last_pinged = lastdump - assoc->last_pinged; - if (last_pinged > 999) - last_pinged = 999; + if (last_pinged > 999) + last_pinged = 999; - snprintf(logbuffer, sizeof(logbuffer), "F[%2u] => C[%2u] %s:%u [%3u] %s\n", - friend, client, ip_ntoa(&cptr->ip_port.ip), - ntohs(cptr->ip_port.port), last_pinged, - ID2String(cptr->client_id)); - loglog(logbuffer); + snprintf(logbuffer, sizeof(logbuffer), "F[%2u] => C[%2u] %s:%u [%3u] %s\n", + friend, client, ip_ntoa(&assoc->ip_port.ip), + ntohs(assoc->ip_port.port), last_pinged, + ID2String(cptr->client_id)); + loglog(logbuffer); + } } } -- cgit v1.2.3