]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
ntp: return with status from functions sending packets
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 20 Aug 2014 12:30:42 +0000 (14:30 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 20 Aug 2014 14:54:26 +0000 (16:54 +0200)
ntp_core.c
ntp_io.c
ntp_io.h

index 43cd002be4ee439397330bae9c9704c5167dfd61..f239a02e89abd1548b95350008533fc9a25cfa5d 100644 (file)
@@ -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;
 }
 
 /* ================================================== */
index ef97a0eb02bc419ca95a2e1905f31d6e69de8ad3..e0f7aea1a3a4dca70060f2da6406d65f2f3a6e63 100644 (file)
--- a/ntp_io.c
+++ b/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 {
-    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);
 }
index 581a94af6062a437d56f9f3ca5f17735708f0f0e..99e0adec65b0e2fb88e44a11cb39f6a1fb865b2f 100644 (file)
--- a/ntp_io.h
+++ b/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 */