if (remote_addr->ss_family == AF_INET6) {
ip_argument = "ip-6";
- sockaddr6 = (struct sockaddr_in6 *) remote_addr;
- addr = &sockaddr6->sin6_addr;
} else {
ip_argument = "ip-4";
- sockaddr4 = (struct sockaddr_in *) remote_addr;
- addr = &sockaddr4->sin_addr;
}
- if (inet_ntop(remote_addr->ss_family, addr, ip_text, IP_TEXT_LENGTH) ==
+ if (inet_ntop(remote_addr->ss_family, sockaddr_addr_offset(remote_addr), ip_text, INET6_ADDRSTRLEN) ==
NULL) {
-
- perror("inet_ntop failure");
- exit(EXIT_FAILURE);
+ error(EXIT_FAILURE, errno, "inet_ntop failure");
}
snprintf(response, COMMAND_BUFFER_SIZE,
/* First attempt to ping the localhost with network byte order */
net_state->platform.ip_length_host_order = false;
- packet_size = construct_packet(net_state, NULL, MIN_PORT,
+ packet_size = construct_packet(net_state, NULL, &p0,
packet, PACKET_BUFFER_SIZE,
- &dest_sockaddr, &src_sockaddr, ¶m);
+ ¶m);
if (packet_size < 0) {
- perror("Unable to send to localhost");
- exit(EXIT_FAILURE);
+ error(EXIT_FAILURE, errno, "Unable to send to localhost");
}
bytes_sent =
/* Since network byte order failed, try host byte order */
net_state->platform.ip_length_host_order = true;
- packet_size = construct_packet(net_state, NULL, MIN_PORT,
+ packet_size = construct_packet(net_state, NULL, &p0,
packet, PACKET_BUFFER_SIZE,
- &dest_sockaddr, &src_sockaddr, ¶m);
+ ¶m);
if (packet_size < 0) {
- perror("Unable to send to localhost");
- exit(EXIT_FAILURE);
+ error(EXIT_FAILURE, errno, "Unable to send to localhost");
}
bytes_sent =
send_packet(net_state, ¶m, MIN_PORT, packet, packet_size,
- &dest_sockaddr);
+ &p0.remote_addr);
if (bytes_sent < 0) {
- perror("Unable to send with swapped length");
- exit(EXIT_FAILURE);
+ error(EXIT_FAILURE, errno, "Unable to send with swapped length");
}
}