version 1.1.1.2, 2021/03/17 00:07:30
|
version 1.1.1.3, 2023/09/27 11:18:58
|
Line 153 void check_length_order(
|
Line 153 void check_length_order(
|
|
|
if (resolve_probe_addresses(net_state, ¶m, &p0.remote_addr, |
if (resolve_probe_addresses(net_state, ¶m, &p0.remote_addr, |
&p0.local_addr)) { |
&p0.local_addr)) { |
fprintf(stderr, "Error decoding localhost address (%s/%s)\n", | fprintf(stderr, "Error decoding localhost address (%s/%s)\n", |
probe_err, strerror (errno)); |
probe_err, strerror (errno)); |
exit(EXIT_FAILURE); |
exit(EXIT_FAILURE); |
} |
} |
Line 575 void send_probe(
|
Line 575 void send_probe(
|
error(EXIT_FAILURE, errno, "gettimeofday failure"); |
error(EXIT_FAILURE, errno, "gettimeofday failure"); |
} |
} |
|
|
// there might be an off-by-one in the number of tries here. | // there might be an off-by-one in the number of tries here. |
// this is intentional. It is no use exhausting the very last |
// this is intentional. It is no use exhausting the very last |
// open port. Max 10 retries would've been acceptable too I think. | // open port. Max 10 retries would've been acceptable too I think. |
for (trytimes=MIN_PORT; trytimes < MAX_PORT; trytimes++) { |
for (trytimes=MIN_PORT; trytimes < MAX_PORT; trytimes++) { |
| |
packet_size = construct_packet(net_state, &probe->platform.socket, |
packet_size = construct_packet(net_state, &probe->platform.socket, |
probe, packet, PACKET_BUFFER_SIZE, |
probe, packet, PACKET_BUFFER_SIZE, |
param); |
param); |
|
|
if (packet_size > 0) break; // no retry if we succeed. |
if (packet_size > 0) break; // no retry if we succeed. |
|
|
if ((param->protocol != IPPROTO_TCP) && | if ((param->protocol != IPPROTO_TCP) && |
(param->protocol != IPPROTO_SCTP)) break; // no retry if not TCP/SCTP |
(param->protocol != IPPROTO_SCTP)) break; // no retry if not TCP/SCTP |
|
|
if ((errno != EADDRINUSE) && (errno != EADDRNOTAVAIL)) { |
if ((errno != EADDRINUSE) && (errno != EADDRNOTAVAIL)) { |
Line 594 void send_probe(
|
Line 594 void send_probe(
|
} |
} |
|
|
probe->sequence = net_state->platform.next_sequence++; |
probe->sequence = net_state->platform.next_sequence++; |
| |
if (net_state->platform.next_sequence > MAX_PORT) { |
if (net_state->platform.next_sequence > MAX_PORT) { |
net_state->platform.next_sequence = MIN_PORT; |
net_state->platform.next_sequence = MIN_PORT; |
} |
} |