/* ================================================== */
-static void
+static int
transmit_packet(NTP_Mode my_mode, /* The mode this machine wants to be */
int my_poll, /* The log2 of the local poll interval */
int version, /* The NTP version to be set in the packet */
)
{
NTP_Packet message;
- int leap;
+ int leap, ret;
struct timeval local_transmit;
/* Parameters read from reference module */
(unsigned char *)&message.auth_data, sizeof (message.auth_data));
if (auth_len > 0) {
message.auth_keyid = htonl(key_id);
- NIO_SendAuthenticatedPacket(&message, where_to, from,
+ ret = NIO_SendAuthenticatedPacket(&message, where_to, from,
sizeof (message.auth_keyid) + auth_len);
} else {
DEBUG_LOG(LOGF_NtpCore,
"Could not generate auth data with key %lu to send packet",
key_id);
- return;
+ return 0;
}
} else {
UTI_TimevalToInt64(&local_transmit, &message.transmit_ts, ts_fuzz);
- NIO_SendNormalPacket(&message, where_to, from);
+ ret = NIO_SendNormalPacket(&message, where_to, from);
}
if (local_tx) {
*local_ntp_tx = message.transmit_ts;
}
+ return ret;
}
/* ================================================== */
/* ================================================== */
/* Send a packet to given address */
-static void
+static int
send_packet(void *packet, int packetlen, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr)
{
union sockaddr_in46 remote;
if (local_addr->sock_fd == INVALID_SOCK_FD) {
DEBUG_LOG(LOGF_NtpIO, "No socket to send to %s:%d",
UTI_IPToString(&remote_addr->ip_addr), remote_addr->port);
- return;
+ return 0;
}
switch (remote_addr->ip_addr.family) {
break;
#endif
default:
- return;
+ return 0;
}
if (addrlen) {
UTI_IPToString(&remote_addr->ip_addr), remote_addr->port,
UTI_IPToString(&local_addr->ip_addr), local_addr->sock_fd,
strerror(errno));
- } else {
- DEBUG_LOG(LOGF_NtpIO, "Sent to %s:%d from %s fd %d",
- UTI_IPToString(&remote_addr->ip_addr), remote_addr->port,
- UTI_IPToString(&local_addr->ip_addr), local_addr->sock_fd);
+ return 0;
}
+
+ DEBUG_LOG(LOGF_NtpIO, "Sent to %s:%d from %s fd %d",
+ UTI_IPToString(&remote_addr->ip_addr), remote_addr->port,
+ UTI_IPToString(&local_addr->ip_addr), local_addr->sock_fd);
+
+ return 1;
}
/* ================================================== */
/* Send an unauthenticated packet to a given address */
-void
+int
NIO_SendNormalPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr)
{
- send_packet((void *) packet, NTP_NORMAL_PACKET_SIZE, remote_addr, local_addr);
+ return send_packet((void *) packet, NTP_NORMAL_PACKET_SIZE, remote_addr, local_addr);
}
/* ================================================== */
/* Send an authenticated packet to a given address */
-void
+int
NIO_SendAuthenticatedPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr, int auth_len)
{
- send_packet((void *) packet, NTP_NORMAL_PACKET_SIZE + auth_len, remote_addr, local_addr);
+ return send_packet((void *) packet, NTP_NORMAL_PACKET_SIZE + auth_len, remote_addr, local_addr);
}
extern int NIO_IsServerSocket(int sock_fd);
/* Function to transmit a packet */
-extern void NIO_SendNormalPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr);
+extern int NIO_SendNormalPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr);
/* Function to transmit an authenticated packet */
-extern void NIO_SendAuthenticatedPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr, int auth_len);
+extern int NIO_SendAuthenticatedPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr, int auth_len);
#endif /* GOT_NTP_IO_H */