]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/radius/radiusclient/include/radiusclient.h
Added support for Acct-Interim-Interval attribute. We can now ask
[ppp.git] / pppd / plugins / radius / radiusclient / include / radiusclient.h
index 5604987f8b950fb399a2d0722b3335f28d9b01cf..518683fa1d499817b9dcd49712a4f7d5d55a81ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: radiusclient.h,v 1.3 2002/03/01 14:39:19 dfs Exp $
+ * $Id: radiusclient.h,v 1.8 2002/07/25 16:29:16 dfs Exp $
  *
  * Copyright (C) 1995,1996,1997,1998 Lars Fenneberg
  *
 # define __P(protos) ()
 #endif
 
+#ifndef _UINT4_T
+#ifdef _LP64
+typedef unsigned int UINT4;
+typedef int          INT4;
+#else
 typedef unsigned long UINT4;
-typedef long         INT4;
+typedef long          INT4;
+#endif
+#endif
 
 #define AUTH_VECTOR_LEN                16
 #define AUTH_PASS_LEN          (3 * 16) /* multiple of 16 */
@@ -83,8 +90,8 @@ typedef struct pw_auth_hdr
 #define MAX_SECRET_LENGTH              (3 * 16) /* MUST be multiple of 16 */
 #define CHAP_VALUE_LENGTH              16
 
-#define PW_AUTH_UDP_PORT               1645
-#define PW_ACCT_UDP_PORT               1646
+#define PW_AUTH_UDP_PORT               1812
+#define PW_ACCT_UDP_PORT               1813
 
 #define PW_TYPE_STRING                 0
 #define PW_TYPE_INTEGER                        1
@@ -154,6 +161,18 @@ typedef struct pw_auth_hdr
 #define        PW_PORT_LIMIT                   62      /* integer */
 #define PW_LOGIN_LAT_PORT               63      /* string */
 
+/* Vendor RADIUS attribute-value pairs */
+#define PW_MS_CHAP_CHALLENGE           11      /* string */
+#define PW_MS_CHAP_RESPONSE            1       /* string */
+#define PW_MS_CHAP2_RESPONSE           25      /* string */
+#define PW_MS_CHAP2_SUCCESS            26      /* string */
+#define PW_MS_MPPE_ENCRYPTION_POLICY   7       /* string */
+#define PW_MS_MPPE_ENCRYPTION_TYPE     8       /* string */
+#define PW_MS_MPPE_ENCRYPTION_TYPES PW_MS_MPPE_ENCRYPTION_TYPE
+#define PW_MS_CHAP_MPPE_KEYS           12      /* string */
+#define PW_MS_MPPE_SEND_KEY            16      /* string */
+#define PW_MS_MPPE_RECV_KEY            17      /* string */
+
 /*     Accounting */
 
 #define        PW_ACCT_STATUS_TYPE             40      /* integer */
@@ -169,11 +188,19 @@ typedef struct pw_auth_hdr
 #define PW_ACCT_MULTI_SESSION_ID       50      /* string */
 #define PW_ACCT_LINK_COUNT             51      /* integer */
 
+/* From RFC 2869 */
+#define PW_ACCT_INTERIM_INTERVAL        85     /* integer */
+
 /*     Merit Experimental Extensions */
 
 #define PW_USER_ID                      222     /* string */
 #define PW_USER_REALM                   223     /* string */
 
+
+/*      Session limits */
+#define PW_SESSION_OCTETS_LIMIT                227    /* integer */
+#define PW_OCTETS_DIRECTION            228    /* integer */
+
 /*     Integer Translations */
 
 /*     SERVICE TYPES   */
@@ -275,8 +302,16 @@ typedef struct pw_auth_hdr
 #define PW_LOCAL       2
 #define PW_REMOTE      3
 
+/*    Session-Octets-Limit    */
+#define PW_OCTETS_DIRECTION_SUM        0
+#define PW_OCTETS_DIRECTION_IN 1
+#define PW_OCTETS_DIRECTION_OUT        2
+#define PW_OCTETS_DIRECTION_MAX        3
+
+
 /* Vendor codes */
 #define VENDOR_NONE     (-1)
+#define VENDOR_MICROSOFT       311
 
 /* Server data structures */
 
@@ -312,7 +347,7 @@ typedef struct value_pair
        int                vendorcode;
        int                type;
        UINT4              lvalue;
-       char               strvalue[AUTH_STRING_LEN + 1];
+       u_char             strvalue[AUTH_STRING_LEN + 1];
        struct value_pair *next;
 } VALUE_PAIR;
 
@@ -338,6 +373,12 @@ typedef struct send_data /* Used to pass information to sendserver() function */
        VALUE_PAIR     *receive_pairs;  /* Where to place received a/v pairs */
 } SEND_DATA;
 
+typedef struct request_info
+{
+       char            secret[MAX_SECRET_LENGTH + 1];
+       u_char          request_vector[AUTH_VECTOR_LEN];
+} REQUEST_INFO;
+
 #ifndef MIN
 #define MIN(a, b)     ((a) < (b) ? (a) : (b))
 #endif
@@ -378,8 +419,9 @@ VALUE_PAIR *rc_avpair_readin __P((FILE *));
 
 void rc_buildreq __P((SEND_DATA *, int, char *, unsigned short, int, int));
 unsigned char rc_get_seqnbr __P((void));
-int rc_auth __P((UINT4, VALUE_PAIR *, VALUE_PAIR **, char *));
-int rc_auth_using_server __P((SERVER *, UINT4, VALUE_PAIR *, VALUE_PAIR **, char *));
+int rc_auth __P((UINT4, VALUE_PAIR *, VALUE_PAIR **, char *, REQUEST_INFO *));
+int rc_auth_using_server __P((SERVER *, UINT4, VALUE_PAIR *, VALUE_PAIR **,
+                             char *, REQUEST_INFO *));
 int rc_auth_proxy __P((VALUE_PAIR *, VALUE_PAIR **, char *));
 int rc_acct __P((UINT4, VALUE_PAIR *));
 int rc_acct_using_server __P((SERVER *, UINT4, VALUE_PAIR *));
@@ -426,7 +468,7 @@ void rc_log __P((int, const char *, ...));
 
 /*     sendserver.c            */
 
-int rc_send_server __P((SEND_DATA *, char *));
+int rc_send_server __P((SEND_DATA *, char *, REQUEST_INFO *));
 
 /*     util.c                  */