- logger(DEBUG_TRAFFIC, LOG_INFO, "Got UDP probe request %d from %s (%s)", packet->len, n->name, n->hostname);
-
- /* Type 2 probe replies were introduced in protocol 17.3 */
- if ((n->options >> 24) >= 3) {
- uint8_t *data = DATA(packet);
- *data++ = 2;
- uint16_t len16 = htons(len); memcpy(data, &len16, 2); data += 2;
- struct timeval now;
- gettimeofday(&now, NULL);
- uint32_t sec = htonl(now.tv_sec); memcpy(data, &sec, 4); data += 4;
- uint32_t usec = htonl(now.tv_usec); memcpy(data, &usec, 4); data += 4;
- packet->len = MIN_PROBE_SIZE;
- } else {
- /* Legacy protocol: n won't understand type 2 probe replies. */
- DATA(packet)[0] = 1;
- }
+ /* Type 2 probe replies were introduced in protocol 17.3 */
+ if ((n->options >> 24) >= 3) {
+ uint8_t *data = DATA(packet);
+ *data++ = 2;
+ uint16_t len16 = htons(MAX(len, n->maxrecentlen));
+ n->maxrecentlen = 0;
+ memcpy(data, &len16, 2);
+ packet->len = MIN_PROBE_SIZE;
+ } else {
+ /* Legacy protocol: n won't understand type 2 probe replies. */
+ DATA(packet)[0] = 1;
+ }