/*
- * $Id: radiusclient.h,v 1.1 2002/01/22 16:03:01 dfs Exp $
+ * $Id: radiusclient.h,v 1.5 2002/03/05 15:14:06 dfs Exp $
*
* Copyright (C) 1995,1996,1997,1998 Lars Fenneberg
*
* Copyright 1992 Livingston Enterprises, Inc.
*
- * Copyright 1992,1993, 1994,1995 The Regents of the University of Michigan
+ * Copyright 1992,1993, 1994,1995 The Regents of the University of Michigan
* and Merit Network, Inc. All Rights Reserved
*
- * See the file COPYRIGHT for the respective terms and conditions.
- * If the file is missing contact me at lf@elemental.net
+ * See the file COPYRIGHT for the respective terms and conditions.
+ * If the file is missing contact me at lf@elemental.net
* and I'll send you a copy.
*
*/
#endif
typedef unsigned long UINT4;
-typedef long INT4;
+typedef long INT4;
#define AUTH_VECTOR_LEN 16
#define AUTH_PASS_LEN (3 * 16) /* multiple of 16 */
typedef struct server {
int max;
char *name[SERVER_MAX];
- unsigned short port[SERVER_MAX];
+ unsigned short port[SERVER_MAX];
} SERVER;
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
#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 */
+
/* Accounting */
#define PW_ACCT_STATUS_TYPE 40 /* integer */
#define PW_CALLBACK 16
#define PW_USER_ERROR 17
#define PW_HOST_REQUEST 18
-
+
/* NAS PORT TYPES */
#define PW_ASYNC 0
/* Vendor codes */
#define VENDOR_NONE (-1)
+#define VENDOR_MICROSOFT 311
/* Server data structures */
char name[NAME_LENGTH + 1]; /* attribute name */
int value; /* attribute index */
int type; /* string, int, etc. */
- int vendorcode; /* vendor code */
+ int vendorcode; /* vendor code */
struct dict_attr *next;
} DICT_ATTR;
{
char name[NAME_LENGTH + 1];
int attribute;
- int vendorcode;
+ int vendorcode;
int type;
UINT4 lvalue;
char strvalue[AUTH_STRING_LEN + 1];
/* don't change this, as it has to be the same as in the Merit radiusd code */
#define MGMT_POLL_SECRET "Hardlyasecret"
-/* Define return codes from "SendServer" utility */
+/* Define return codes from "SendServer" utility */
#define BADRESP_RC -2
#define ERROR_RC -1
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_proxy __P((VALUE_PAIR *, VALUE_PAIR **, char *));
int rc_acct __P((UINT4, VALUE_PAIR *));
+int rc_acct_using_server __P((SERVER *, UINT4, VALUE_PAIR *));
int rc_acct_proxy __P((VALUE_PAIR *));
int rc_check __P((char *, unsigned short, char *));