]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Merge NSR/NCR server and peer functions
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 26 Apr 2010 13:04:00 +0000 (15:04 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Tue, 27 Apr 2010 12:35:27 +0000 (14:35 +0200)
cmdmon.c
conf.c
ntp_core.c
ntp_core.h
ntp_sources.c
ntp_sources.h

index 26ea72ea2a847731a052c85985ffa9cc639ff078..058955a7a09d398d82b370748828f4f99c21a6bf 100644 (file)
--- a/cmdmon.c
+++ b/cmdmon.c
@@ -1233,7 +1233,7 @@ handle_add_server(CMD_Request *rx_message, CMD_Reply *tx_message)
   params.iburst = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_IBURST ? 1 : 0;
   params.max_delay = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay);
   params.max_delay_ratio = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay_ratio);
-  status = NSR_AddServer(&rem_addr, &params);
+  status = NSR_AddSource(&rem_addr, NTP_SERVER, &params);
   switch (status) {
     case NSR_Success:
       tx_message->status = htons(STT_SUCCESS);
@@ -1274,7 +1274,7 @@ handle_add_peer(CMD_Request *rx_message, CMD_Reply *tx_message)
   params.iburst = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_IBURST ? 1 : 0;
   params.max_delay = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay);
   params.max_delay_ratio = UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay_ratio);
-  status = NSR_AddPeer(&rem_addr, &params);
+  status = NSR_AddSource(&rem_addr, NTP_PEER, &params);
   switch (status) {
     case NSR_Success:
       tx_message->status = htons(STT_SUCCESS);
diff --git a/conf.c b/conf.c
index 6cae47428383aa69852f1fd933d36dd3f348dca5..1c7167456b214d59f05bbe11b1f125557cfe752d 100644 (file)
--- a/conf.c
+++ b/conf.c
@@ -260,10 +260,6 @@ static int line_number;
 
 /* ================================================== */
 
-typedef enum {
-  SERVER, PEER
-} NTP_Source_Type;
-
 typedef struct {
   NTP_Source_Type type;
   IPAddr ip_addr;
@@ -433,7 +429,7 @@ parse_lockall(const char *line)
 static void
 parse_server(const char *line)
 {
-  parse_source(line, SERVER);
+  parse_source(line, NTP_SERVER);
 }
 
 /* ================================================== */
@@ -441,7 +437,7 @@ parse_server(const char *line)
 static void
 parse_peer(const char *line)
 {
-  parse_source(line, PEER);
+  parse_source(line, NTP_PEER);
 }
 
 /* ================================================== */
@@ -1199,16 +1195,7 @@ CNF_AddSources(void) {
     memset(&server.local_ip_addr, 0, sizeof (server.local_ip_addr));
     server.port = ntp_sources[i].port;
 
-    switch (ntp_sources[i].type) {
-      case SERVER:
-        NSR_AddServer(&server, &ntp_sources[i].params);
-        break;
-
-      case PEER:
-        NSR_AddPeer(&server, &ntp_sources[i].params);
-        break;
-    }
-
+    NSR_AddSource(&server, ntp_sources[i].type, &ntp_sources[i].params);
   }
 
   return;
index daeacb10e025975809fde3028d2a7f7cba7eae2c..7ec73d130f070e5e0349308765c333517631d172 100644 (file)
@@ -247,15 +247,24 @@ start_initial_timeout(NCR_Instance inst)
 
 /* ================================================== */
 
-static NCR_Instance
-create_instance(NTP_Remote_Address *remote_addr, NTP_Mode mode, SourceParameters *params)
+NCR_Instance
+NCR_GetInstance(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourceParameters *params)
 {
   NCR_Instance result;
 
   result = MallocNew(struct NCR_Instance_Record);
 
   result->remote_addr = *remote_addr;
-  result->mode = mode;
+  switch (type) {
+    case NTP_SERVER:
+      result->mode = MODE_CLIENT;
+      break;
+    case NTP_PEER:
+      result->mode = MODE_ACTIVE;
+      break;
+    default:
+      assert(0);
+  }
 
   result->minpoll = params->minpoll;
   result->maxpoll = params->maxpoll;
@@ -314,24 +323,6 @@ create_instance(NTP_Remote_Address *remote_addr, NTP_Mode mode, SourceParameters
 
 /* ================================================== */
 
-/* Get a new instance for a server */
-NCR_Instance
-NCR_GetServerInstance(NTP_Remote_Address *remote_addr, SourceParameters *params)
-{
-  return create_instance(remote_addr, MODE_CLIENT, params);
-}
-
-/* ================================================== */
-
-/* Get a new instance for a peer */
-NCR_Instance
-NCR_GetPeerInstance(NTP_Remote_Address *remote_addr, SourceParameters *params)
-{
-  return create_instance(remote_addr, MODE_ACTIVE, params);
-}
-
-/* ================================================== */
-
 /* Destroy an instance */
 void
 NCR_DestroyInstance(NCR_Instance instance)
index f269a559724ee246209368ea1dbc49f746a03a4e..5bddc52e9009a575a0edc7e5b21aae1ea91b6730 100644 (file)
 #include "ntp.h"
 #include "reports.h"
 
+typedef enum {
+  NTP_SERVER, NTP_PEER
+} NTP_Source_Type;
+
 /* This is a private data type used for storing the instance record for
    each source that we are chiming with */
 typedef struct NCR_Instance_Record *NCR_Instance;
@@ -46,11 +50,8 @@ typedef struct NCR_Instance_Record *NCR_Instance;
 extern void NCR_Initialise(void);
 extern void NCR_Finalise(void);
 
-/* Get a new instance for a server */
-extern NCR_Instance NCR_GetServerInstance(NTP_Remote_Address *remote_addr, SourceParameters *params);
-
-/* Get a new instance for a peer */
-extern NCR_Instance NCR_GetPeerInstance(NTP_Remote_Address *remote_addr, SourceParameters *params);
+/* Get a new instance for a server or peer */
+extern NCR_Instance NCR_GetInstance(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourceParameters *params);
 
 /* Destroy an instance */
 extern void NCR_DestroyInstance(NCR_Instance instance);
index 97453abaaefe517112f892d9b61951678ad6e954..cc37435ff09143c5a2f001726b3eed7310ae2567 100644 (file)
@@ -170,10 +170,9 @@ find_slot(NTP_Remote_Address *remote_addr, int *slot, int *found)
 
 /* ================================================== */
 
-/* Procedure to add a new server source (to which this machine will be
-   a client) */
+/* Procedure to add a new source */
 NSR_Status
-NSR_AddServer(NTP_Remote_Address *remote_addr, SourceParameters *params)
+NSR_AddSource(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourceParameters *params)
 {
   int slot, found;
 
@@ -195,40 +194,7 @@ NSR_AddServer(NTP_Remote_Address *remote_addr, SourceParameters *params)
       return NSR_InvalidAF;
     } else {
       n_sources++;
-      records[slot].data = NCR_GetServerInstance(remote_addr, params); /* Will need params passing through */
-      records[slot].remote_addr = NCR_GetRemoteAddress(records[slot].data);
-      return NSR_Success;
-    }
-  }
-}
-
-/* ================================================== */
-
-/* Procedure to add a new peer. */
-NSR_Status
-NSR_AddPeer(NTP_Remote_Address *remote_addr, SourceParameters *params)
-{
-  int slot, found;
-
-  assert(initialised);
-
-#if 0
-  LOG(LOGS_INFO, LOGF_NtpSources, "IP=%s port=%d", UTI_IPToString(&remote_addr->ip_addr), remote_addr->port);
-#endif
-
-  /* Find empty bin & check that we don't have the address already */
-  find_slot(remote_addr, &slot, &found);
-  if (found) {
-    return NSR_AlreadyInUse;
-  } else {
-    if (n_sources == MAX_SOURCES) {
-      return NSR_TooManySources;
-    } else if (remote_addr->ip_addr.family != IPADDR_INET4 &&
-               remote_addr->ip_addr.family != IPADDR_INET6) {
-      return NSR_InvalidAF;
-    } else {
-      n_sources++;
-      records[slot].data = NCR_GetPeerInstance(remote_addr, params); /* Will need params passing through */
+      records[slot].data = NCR_GetInstance(remote_addr, type, params); /* Will need params passing through */
       records[slot].remote_addr = NCR_GetRemoteAddress(records[slot].data);
       return NSR_Success;
     }
index d708949843d4f8b67be8ce955d5a8ab948a3598a..eaef8a8146a452b07a76615be802f4dcb15e7464 100644 (file)
 typedef enum {
   NSR_Success, /* Operation successful */
   NSR_NoSuchSource, /* Remove - attempt to remove a source that is not known */
-  NSR_AlreadyInUse, /* AddServer, AddPeer - attempt to add a source that is already known */ 
-  NSR_TooManySources, /* AddServer, AddPeer - too many sources already present */
-  NSR_InvalidAF /* AddServer, AddPeer - attempt to add a source with invalid address family */
+  NSR_AlreadyInUse, /* AddSource - attempt to add a source that is already known */ 
+  NSR_TooManySources, /* AddSource - too many sources already present */
+  NSR_InvalidAF /* AddSource - attempt to add a source with invalid address family */
 } NSR_Status;
 
-/* Procedure to add a new server source (to which this machine will be
-   a client) */
-extern NSR_Status NSR_AddServer(NTP_Remote_Address *remote_addr, SourceParameters *params);
-
-/* Procedure to add a new peer source.  We will use symmetric active
-   mode packets when communicating with this source */
-extern NSR_Status NSR_AddPeer(NTP_Remote_Address *remote_addr, SourceParameters *params);
+/* Procedure to add a new server or peer source. */
+extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourceParameters *params);
 
 /* Procedure to remove a source */
 extern NSR_Status NSR_RemoveSource(NTP_Remote_Address *remote_addr);