]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
cmdmon: define new types for CLIENT_ACCESSES_BY_INDEX command
authorMiroslav Lichvar <mlichvar@redhat.com>
Fri, 29 Jan 2016 14:46:56 +0000 (15:46 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Fri, 29 Jan 2016 16:55:58 +0000 (17:55 +0100)
There was an incompatible change in the client access report. To avoid
bumping the protocol version drop support for the original request/reply
types and define new CLIENT_ACCESSES_BY_INDEX2 types as a newer version
of the command.

candm.h
client.c
cmdmon.c
pktlength.c

diff --git a/candm.h b/candm.h
index fa8d14879c9a751f4e76825b73e2ca9ac9694683..5eb0c76a29cb131111debb27a9559bb49d378aaf 100644 (file)
--- a/candm.h
+++ b/candm.h
@@ -92,7 +92,8 @@
 #define REQ_SMOOTHTIME 52
 #define REQ_REFRESH 53
 #define REQ_SERVER_STATS 54
-#define N_REQUEST_TYPES 55
+#define REQ_CLIENT_ACCESSES_BY_INDEX2 55
+#define N_REQUEST_TYPES 56
 
 /* Special utoken value used to log on with first exchange being the
    password.  (This time value has long since gone by) */
@@ -435,7 +436,8 @@ typedef struct {
 #define RPY_ACTIVITY 12
 #define RPY_SMOOTHING 13
 #define RPY_SERVER_STATS 14
-#define N_REPLY_TYPES 15
+#define RPY_CLIENT_ACCESSES_BY_INDEX2 15
+#define N_REPLY_TYPES 16
 
 /* Status codes */
 #define STT_SUCCESS 0
index 431c238b7b715a5348c23ec8e036194e89224588..dc677f24a1a3252cec828808417e5ab33f637e1e 100644 (file)
--- a/client.c
+++ b/client.c
@@ -2098,11 +2098,11 @@ process_cmd_clients(char *line)
          "===============================================================================\n");
 
   while (1) {
-    request.command = htons(REQ_CLIENT_ACCESSES_BY_INDEX);
+    request.command = htons(REQ_CLIENT_ACCESSES_BY_INDEX2);
     request.data.client_accesses_by_index.first_index = htonl(next_index);
     request.data.client_accesses_by_index.n_clients = htonl(MAX_CLIENT_ACCESSES);
 
-    if (!request_reply(&request, &reply, RPY_CLIENT_ACCESSES_BY_INDEX, 0))
+    if (!request_reply(&request, &reply, RPY_CLIENT_ACCESSES_BY_INDEX2, 0))
       return 0;
 
     n_clients = ntohl(reply.data.client_accesses_by_index.n_clients);
index b95b8b9856d5f891a9bb1aed3ad621e6240ba07a..0d3ff55193b6d63e3d151266abfb71e2a03faeb2 100644 (file)
--- a/cmdmon.c
+++ b/cmdmon.c
@@ -131,6 +131,7 @@ static const char permissions[] = {
   PERMIT_AUTH, /* SMOOTHTIME */
   PERMIT_AUTH, /* REFRESH */
   PERMIT_AUTH, /* SERVER_STATS */
+  PERMIT_AUTH, /* CLIENT_ACCESSES_BY_INDEX2 */
 };
 
 /* ================================================== */
@@ -1047,7 +1048,7 @@ handle_client_accesses_by_index(CMD_Request *rx_message, CMD_Reply *tx_message)
     return;
   }
 
-  tx_message->reply = htons(RPY_CLIENT_ACCESSES_BY_INDEX);
+  tx_message->reply = htons(RPY_CLIENT_ACCESSES_BY_INDEX2);
   tx_message->data.client_accesses_by_index.n_indices = htonl(n_indices);
 
   memset(tx_message->data.client_accesses_by_index.clients, 0,
@@ -1520,7 +1521,7 @@ read_from_cmd_socket(void *anything)
           handle_cyclelogs(&rx_message, &tx_message);
           break;
 
-        case REQ_CLIENT_ACCESSES_BY_INDEX:
+        case REQ_CLIENT_ACCESSES_BY_INDEX2:
           handle_client_accesses_by_index(&rx_message, &tx_message);
           break;
 
index 96d9e245b62230c81f8cfa8d7c1c54ed41c0e96a..ec8c7c441f59a47333b5c337436c775efc94d53c 100644 (file)
@@ -94,8 +94,7 @@ static const struct request_length request_lengths[] = {
   REQ_LENGTH_ENTRY(null, null),                 /* CYCLELOGS */
   { 0, 0 },                                     /* SUBNETS_ACCESSED - not supported */
   { 0, 0 },                                     /* CLIENT_ACCESSES - not supported */
-  REQ_LENGTH_ENTRY(client_accesses_by_index,
-                   client_accesses_by_index),   /* CLIENT_ACCESSES_BY_INDEX */
+  { 0, 0 },                                     /* CLIENT_ACCESSES_BY_INDEX - not supported */
   REQ_LENGTH_ENTRY(null, manual_list),          /* MANUAL_LIST */
   REQ_LENGTH_ENTRY(manual_delete, null),        /* MANUAL_DELETE */
   REQ_LENGTH_ENTRY(null, null),                 /* MAKESTEP */
@@ -110,6 +109,8 @@ static const struct request_length request_lengths[] = {
   REQ_LENGTH_ENTRY(smoothtime, null),           /* SMOOTHTIME */
   REQ_LENGTH_ENTRY(null, null),                 /* REFRESH */
   REQ_LENGTH_ENTRY(null, server_stats),         /* SERVER_STATS */
+  REQ_LENGTH_ENTRY(client_accesses_by_index,
+                   client_accesses_by_index),   /* CLIENT_ACCESSES_BY_INDEX2 */
 };
 
 static const uint16_t reply_lengths[] = {
@@ -123,11 +124,12 @@ static const uint16_t reply_lengths[] = {
   RPY_LENGTH_ENTRY(rtc),                        /* RTC */
   0,                                            /* SUBNETS_ACCESSED - not supported */
   0,                                            /* CLIENT_ACCESSES - not supported */
-  RPY_LENGTH_ENTRY(client_accesses_by_index),   /* CLIENT_ACCESSES_BY_INDEX */
+  0,                                            /* CLIENT_ACCESSES_BY_INDEX - not supported */
   0,                                            /* MANUAL_LIST - variable length */
   RPY_LENGTH_ENTRY(activity),                   /* ACTIVITY */
   RPY_LENGTH_ENTRY(smoothing),                  /* SMOOTHING */
   RPY_LENGTH_ENTRY(server_stats),               /* SERVER_STATS */
+  RPY_LENGTH_ENTRY(client_accesses_by_index),   /* CLIENT_ACCESSES_BY_INDEX2 */
 };
 
 /* ================================================== */