diff options
Diffstat (limited to 'toxcore/ping.c')
-rw-r--r-- | toxcore/ping.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/toxcore/ping.c b/toxcore/ping.c index 3b39d911..49e0dba9 100644 --- a/toxcore/ping.c +++ b/toxcore/ping.c | |||
@@ -100,7 +100,8 @@ bool is_pinging(void *ping, IP_Port ipp, uint64_t ping_id) // O(n) TODO: Repl | |||
100 | { | 100 | { |
101 | PING *png = ping; | 101 | PING *png = ping; |
102 | 102 | ||
103 | if (ipp.ip.uint32 == 0 && ping_id == 0) | 103 | /* shouldn't that be an OR ? */ |
104 | if (!ip_isset(&ipp.ip) && ping_id == 0) | ||
104 | return false; | 105 | return false; |
105 | 106 | ||
106 | size_t i, id; | 107 | size_t i, id; |
@@ -111,7 +112,8 @@ bool is_pinging(void *ping, IP_Port ipp, uint64_t ping_id) // O(n) TODO: Repl | |||
111 | id = (png->pos_pings + i) % PING_NUM_MAX; | 112 | id = (png->pos_pings + i) % PING_NUM_MAX; |
112 | 113 | ||
113 | /* ping_id = 0 means match any id. */ | 114 | /* ping_id = 0 means match any id. */ |
114 | if ((ipp_eq(png->pings[id].ipp, ipp) || ipp.ip.uint32 == 0) && (png->pings[id].id == ping_id || ping_id == 0)) { | 115 | if ((!ip_isset(&ipp.ip) || ipport_equal(&png->pings[id].ipp, &ipp)) && |
116 | (png->pings[id].id == ping_id || ping_id == 0)) { | ||
115 | return true; | 117 | return true; |
116 | } | 118 | } |
117 | } | 119 | } |
@@ -147,7 +149,7 @@ int send_ping_request(void *ping, Net_Crypto *c, IP_Port ipp, uint8_t *client_id | |||
147 | if (rc != sizeof(ping_id) + ENCRYPTION_PADDING) | 149 | if (rc != sizeof(ping_id) + ENCRYPTION_PADDING) |
148 | return 1; | 150 | return 1; |
149 | 151 | ||
150 | return sendpacket(c->lossless_udp->net->sock, ipp, pk, sizeof(pk)); | 152 | return sendpacket(c->lossless_udp->net, ipp, pk, sizeof(pk)); |
151 | } | 153 | } |
152 | 154 | ||
153 | int send_ping_response(Net_Crypto *c, IP_Port ipp, uint8_t *client_id, uint64_t ping_id) | 155 | int send_ping_response(Net_Crypto *c, IP_Port ipp, uint8_t *client_id, uint64_t ping_id) |
@@ -172,7 +174,7 @@ int send_ping_response(Net_Crypto *c, IP_Port ipp, uint8_t *client_id, uint64_t | |||
172 | if (rc != sizeof(ping_id) + ENCRYPTION_PADDING) | 174 | if (rc != sizeof(ping_id) + ENCRYPTION_PADDING) |
173 | return 1; | 175 | return 1; |
174 | 176 | ||
175 | return sendpacket(c->lossless_udp->net->sock, ipp, pk, sizeof(pk)); | 177 | return sendpacket(c->lossless_udp->net, ipp, pk, sizeof(pk)); |
176 | } | 178 | } |
177 | 179 | ||
178 | int handle_ping_request(void *object, IP_Port source, uint8_t *packet, uint32_t length) | 180 | int handle_ping_request(void *object, IP_Port source, uint8_t *packet, uint32_t length) |