]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Fix gcc-4 compilation of addrfilt.c
authorRichard P. Curnow <rc@rc0.org.uk>
Thu, 19 Jan 2006 21:56:19 +0000 (21:56 +0000)
committerRichard P. Curnow <rc@rc0.org.uk>
Thu, 19 Jan 2006 21:56:19 +0000 (21:56 +0000)
John Hasler sent in a patch to do this (which still wouldn't make it compile
for me).  This reminded me that I had tackled this myself when my distro moved
to gcc-4 a while back.  It turned out I had never even checked in the file from
the working copy I was using (!).  Anyway, here it is now.

addrfilt.c

index b3c6a5935956bdb39747d3d846a3c8513815529f..133563813a8ff8339fb0f2d5b93743b4c729aa68 100644 (file)
@@ -6,7 +6,7 @@
   chronyd/chronyc - Programs for keeping computer clocks accurate.
 
  **********************************************************************
- * Copyright (C) Richard P. Curnow  1997-2002
+ * Copyright (C) Richard P. Curnow  1997,1998,1999,2000,2001,2002,2005
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
 /* Define the table size */
 #define TABLE_SIZE (1UL<<NBITS)
 
-struct _TableNode;
-
-typedef struct _TableNode ExtendedTable[TABLE_SIZE];
-
 typedef enum {DENY, ALLOW, AS_PARENT} State;
 
 typedef struct _TableNode {
   State state;
-  ExtendedTable *extended;
+  struct _TableNode *extended;
 } TableNode;
 
 struct ADF_AuthTableInst {
@@ -101,7 +97,7 @@ close_node(TableNode *node)
 
   if (node->extended != NULL) {
     for (i=0; i<TABLE_SIZE; i++) {
-      child_node = &((*(node->extended))[i]);
+      child_node = &(node->extended[i]);
       close_node(child_node);
     }
     Free(node->extended);
@@ -124,10 +120,10 @@ open_node(TableNode *node)
 
   if (node->extended == NULL) {
 
-    node->extended = MallocNew(ExtendedTable);
+    node->extended = MallocArray(struct _TableNode, TABLE_SIZE);
 
     for (i=0; i<TABLE_SIZE; i++) {
-      child_node = &((*(node->extended))[i]);
+      child_node = &(node->extended[i]);
       child_node->state = AS_PARENT;
       child_node->extended = NULL;
     }
@@ -168,7 +164,7 @@ set_subnet(TableNode *start_node,
         if (!(node->extended)) {
           open_node(node);
         }
-        node = &((*(node->extended))[subnet]);
+        node = &(node->extended[subnet]);
         bits_to_go -= NBITS;
       }
 
@@ -187,7 +183,7 @@ set_subnet(TableNode *start_node,
         if (!(node->extended)) {
           open_node(node);
         }
-        node = &((*(node->extended))[subnet]);
+        node = &(node->extended[subnet]);
         bits_to_go -= NBITS;
       }
 
@@ -199,7 +195,7 @@ set_subnet(TableNode *start_node,
       }
       
       for (i=subnet, j=0; j<N; i++, j++) {
-        this_node = &((*(node->extended))[i]);
+        this_node = &(node->extended[i]);
         if (delete_children) {
           close_node(this_node);
         }
@@ -283,7 +279,7 @@ check_ip_in_node(TableNode *start_node, unsigned long ip)
     if (node->extended) {
       subnet = get_subnet(residual);
       residual = get_residual(residual);
-      node = &((*(node->extended))[subnet]);
+      node = &(node->extended[subnet]);
     } else {
       /* Make decision on this node */
       finished = 1;