From 64ce60c58550c400160438c7c9ccf95e77dc6599 Mon Sep 17 00:00:00 2001 From: irungentoo Date: Sat, 6 Sep 2014 22:14:13 -0400 Subject: This fixes an issue where nodes could stay unannounced for certain periods of time. Online nodes should now be able to announce themselves continuously. --- toxcore/onion_announce.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'toxcore/onion_announce.c') diff --git a/toxcore/onion_announce.c b/toxcore/onion_announce.c index baccc95b..b25b6b11 100644 --- a/toxcore/onion_announce.c +++ b/toxcore/onion_announce.c @@ -333,10 +333,14 @@ static int handle_announce_request(void *object, IP_Port source, const uint8_t * pl[0] = 0; memcpy(pl + 1, ping_id2, ONION_PING_ID_SIZE); } else { - if (memcmp(onion_a->entries[index].public_key, packet_public_key, crypto_box_PUBLICKEYBYTES) == 0 - && memcmp(onion_a->entries[index].data_public_key, data_public_key, crypto_box_PUBLICKEYBYTES) != 0) { - pl[0] = 0; - memcpy(pl + 1, ping_id2, ONION_PING_ID_SIZE); + if (memcmp(onion_a->entries[index].public_key, packet_public_key, crypto_box_PUBLICKEYBYTES) == 0) { + if (memcmp(onion_a->entries[index].data_public_key, data_public_key, crypto_box_PUBLICKEYBYTES) != 0) { + pl[0] = 0; + memcpy(pl + 1, ping_id2, ONION_PING_ID_SIZE); + } else { + pl[0] = 2; + memcpy(pl + 1, ping_id2, ONION_PING_ID_SIZE); + } } else { pl[0] = 1; memcpy(pl + 1, onion_a->entries[index].data_public_key, crypto_box_PUBLICKEYBYTES); -- cgit v1.2.3