Added Packet-Transmit-Counter for retransmits.
authorAlan T. DeKok <aland@freeradius.org>
Fri, 6 Aug 2010 12:36:04 +0000 (14:36 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 6 Aug 2010 12:37:51 +0000 (14:37 +0200)
Closes bug #13

share/dictionary.freeradius.internal
src/include/radius.h
src/main/detail.c

index c3f357d..25c5b7d 100644 (file)
@@ -214,6 +214,7 @@ ATTRIBUTE   Recv-CoA-Type                           1131    integer
 ATTRIBUTE      Send-CoA-Type                           1132    integer
 
 ATTRIBUTE      MS-CHAP-Password                        1133    string
+ATTRIBUTE      Packet-Transmit-Counter                 1134    integer
 
 #
 #      Range:  1200-1279
index d15db08..4282824 100644 (file)
 #define PW_RECV_COA_TYPE               1131
 #define PW_SEND_COA_TYPE               1132
 #define PW_MSCHAP_PASSWORD             1133
+#define PW_PACKET_TRANSMIT_COUNTER             1134
 
 /*
  *     Integer Translations
index 094e17b..76c1508 100644 (file)
@@ -370,6 +370,7 @@ int detail_recv(rad_listen_t *listener,
 
                case STATE_HEADER:
                do_header:
+                       data->tries = 0;
                        if (!data->fp) {
                                data->state = STATE_UNOPENED;
                                goto open_file;
@@ -691,6 +692,17 @@ int detail_recv(rad_listen_t *listener,
                vp->vp_integer += time(NULL) - data->timestamp;
        }
 
+       /*
+        *      Set the transmission count.
+        */
+       vp = pairfind(packet->vps, PW_PACKET_TRANSMIT_COUNTER);
+       if (!vp) {
+               vp = paircreate(PW_PACKET_TRANSMIT_COUNTER, PW_TYPE_INTEGER);
+               rad_assert(vp != NULL);
+               pairadd(&packet->vps, vp);
+       }
+       vp->vp_integer = data->tries;
+
        *pfun = rad_accounting;
 
        if (debug_flag) {