ntp: return with status from functions sending packets
This commit is contained in:
parent
090ec985f3
commit
e3c77f9b4b
3 changed files with 22 additions and 18 deletions
11
ntp_core.c
11
ntp_core.c
|
@ -668,7 +668,7 @@ get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx)
|
|||
|
||||
/* ================================================== */
|
||||
|
||||
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 */
|
||||
|
@ -690,7 +690,7 @@ transmit_packet(NTP_Mode my_mode, /* The mode this machine wants to be */
|
|||
)
|
||||
{
|
||||
NTP_Packet message;
|
||||
int leap;
|
||||
int leap, ret;
|
||||
struct timeval local_transmit;
|
||||
|
||||
/* Parameters read from reference module */
|
||||
|
@ -774,17 +774,17 @@ transmit_packet(NTP_Mode my_mode, /* The mode this machine wants to be */
|
|||
(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) {
|
||||
|
@ -795,6 +795,7 @@ transmit_packet(NTP_Mode my_mode, /* The mode this machine wants to be */
|
|||
*local_ntp_tx = message.transmit_ts;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
21
ntp_io.c
21
ntp_io.c
|
@ -560,7 +560,7 @@ read_from_socket(void *anything)
|
|||
/* ================================================== */
|
||||
/* 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;
|
||||
|
@ -575,7 +575,7 @@ send_packet(void *packet, int packetlen, NTP_Remote_Address *remote_addr, NTP_Lo
|
|||
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) {
|
||||
|
@ -603,7 +603,7 @@ send_packet(void *packet, int packetlen, NTP_Remote_Address *remote_addr, NTP_Lo
|
|||
break;
|
||||
#endif
|
||||
default:
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addrlen) {
|
||||
|
@ -670,27 +670,30 @@ send_packet(void *packet, int packetlen, NTP_Remote_Address *remote_addr, NTP_Lo
|
|||
UTI_IPToString(&remote_addr->ip_addr), remote_addr->port,
|
||||
UTI_IPToString(&local_addr->ip_addr), local_addr->sock_fd,
|
||||
strerror(errno));
|
||||
} else {
|
||||
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);
|
||||
}
|
||||
|
|
4
ntp_io.h
4
ntp_io.h
|
@ -51,9 +51,9 @@ extern void NIO_CloseClientSocket(int sock_fd);
|
|||
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 */
|
||||
|
|
Loading…
Reference in a new issue