Pull CoA fixes from the head
authoraland <aland>
Tue, 7 Mar 2006 18:10:08 +0000 (18:10 +0000)
committeraland <aland>
Tue, 7 Mar 2006 18:10:08 +0000 (18:10 +0000)
share/dictionary.freeradius.internal
src/include/radius.h
src/lib/radius.c
src/main/radclient.c

index 7f0b8c6..d39b97f 100644 (file)
@@ -351,9 +351,15 @@ VALUE      Packet-Type                     Event-Response          34
 VALUE  Packet-Type                     Disconnect-Request      40
 VALUE  Packet-Type                     Disconnect-ACK          41
 VALUE  Packet-Type                     Disconnect-NAK          42
+
+# Old names, if no one uses them, they should be deleted.
 VALUE  Packet-Type                     CoF-Request             43
 VALUE  Packet-Type                     CoF-ACK                 44
 VALUE  Packet-Type                     CoF-NAK                 45
+
+VALUE  Packet-Type                     CoA-Request             43
+VALUE  Packet-Type                     CoA-ACK                 44
+VALUE  Packet-Type                     CoA-NAK                 45
 VALUE  Packet-Type                     IP-Address-Allocate     50
 VALUE  Packet-Type                     IP-Address-Release      51
 
index 72020a3..3efbeb8 100644 (file)
@@ -32,9 +32,9 @@
 #define PW_DISCONNECT_REQUEST          40
 #define PW_DISCONNECT_ACK              41
 #define PW_DISCONNECT_NAK              42
-#define PW_COF_REQUEST                 43
-#define PW_COF_ACK                     44
-#define PW_COF_NAK                     45
+#define PW_COA_REQUEST                 43
+#define PW_COA_ACK                     44
+#define PW_COA_NAK                     45
 
 #define PW_AUTH_UDP_PORT                1812
 #define PW_ACCT_UDP_PORT                1813
index 95b2c42..d929f02 100644 (file)
@@ -132,9 +132,9 @@ static const char *packet_codes[] = {
   "Disconnect-Request",
   "Disconnect-ACK",
   "Disconnect-NAK",
-  "CoF-Request",
-  "CoF-ACK",
-  "CoF-NAK",
+  "CoA-Request",
+  "CoA-ACK",
+  "CoA-NAK",
   "46",
   "47",
   "48",
@@ -606,6 +606,7 @@ int rad_encode(RADIUS_PACKET *packet, const RADIUS_PACKET *original,
                 */
        case PW_ACCOUNTING_REQUEST:
        case PW_DISCONNECT_REQUEST:
+       case PW_COA_REQUEST:
                memset(packet->vector, 0, sizeof(packet->vector));
                break;
                
@@ -753,9 +754,9 @@ int rad_sign(RADIUS_PACKET *packet, const RADIUS_PACKET *original,
                case PW_DISCONNECT_REQUEST:
                case PW_DISCONNECT_ACK:
                case PW_DISCONNECT_NAK:
-               case PW_COF_REQUEST:
-               case PW_COF_ACK:
-               case PW_COF_NAK:
+               case PW_COA_REQUEST:
+               case PW_COA_ACK:
+               case PW_COA_NAK:
                        memset(hdr->vector, 0, AUTH_VECTOR_LEN);
                        break;
 
@@ -1397,9 +1398,9 @@ static int rad_verify(RADIUS_PACKET *packet, RADIUS_PACKET *original,
                        case PW_DISCONNECT_REQUEST:
                        case PW_DISCONNECT_ACK:
                        case PW_DISCONNECT_NAK:
-                       case PW_COF_REQUEST:
-                       case PW_COF_ACK:
-                       case PW_COF_NAK:
+                       case PW_COA_REQUEST:
+                       case PW_COA_ACK:
+                       case PW_COA_NAK:
                                memset(packet->data + 4, 0, AUTH_VECTOR_LEN);
                                break;
 
index cd1d937..c2d23f3 100644 (file)
@@ -102,7 +102,7 @@ static void NEVER_RETURNS usage(void)
 {
        fprintf(stderr, "Usage: radclient [options] server[:port] <command> [<secret>]\n");
 
-       fprintf(stderr, "  <command>    One of auth, acct, status, or disconnect.\n");
+       fprintf(stderr, "  <command>    One of auth, acct, status, coa, or disconnect.\n");
        fprintf(stderr, "  -c count    Send each packet 'count' times.\n");
        fprintf(stderr, "  -d raddb    Set dictionary directory.\n");
        fprintf(stderr, "  -f file     Read packets from file, not stdin.\n");
@@ -857,6 +857,10 @@ int main(int argc, char **argv)
                if (server_port == 0) server_port = PW_POD_UDP_PORT;
                packet_code = PW_DISCONNECT_REQUEST;
 
+       } else if (strcmp(argv[2], "coa") == 0) {
+               if (server_port == 0) server_port = PW_POD_UDP_PORT;
+               packet_code = PW_COA_REQUEST;
+
        } else if (strcmp(argv[2], "auto") == 0) {
                packet_code = -1;