⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radius.h

📁 This program is a RADIUS RFC-compliant daemon, which is derived from original Livingston Enterprise
💻 H
字号:
#ifndef __RADIUS_H#define __RADIUS_H/* * Copyright (C) 1999-2004, Francesco P. Lovergine. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms stated in the LICENSE file which should be * enclosed with sources. *//* $Id: radius.h,v 1.5.4.2 2004/08/27 21:45:16 flovergine Exp $ */#define AUTH_VECTOR_LEN		16#define AUTH_PASS_LEN		16#define AUTH_MAXPASS_LEN	48#define AUTH_STRING_LEN		253	/* maximum of 253 */#define MAX_LINE_SIZE		256#define MAX_HOST_SIZE		128typedef struct pw_auth_hdr {	u_char		code;	u_char		id;	u_short		length;	char		vector[AUTH_VECTOR_LEN];	u_char		data[2];} AUTH_HDR;#define VENDOR_USROBOTICS		429#define AUTH_HDR_LEN			20#define CHAP_VALUE_LENGTH		16#define PW_AUTH_UDP_PORT		1645#define PW_ACCT_UDP_PORT		1646#define PW_PROXY_UDP_PORT		1815#define PW_PROXYACCT_UDP_PORT		1816#define PW_TYPE_STRING			0#define PW_TYPE_INTEGER			1#define PW_TYPE_IPADDR			2#define PW_TYPE_DATE			3#if defined(ASCEND_BINARY)#define PW_TYPE_ABINARY			4#endif#define	PW_AUTHENTICATION_REQUEST	1#define	PW_AUTHENTICATION_ACK		2#define	PW_AUTHENTICATION_REJECT	3#define	PW_ACCOUNTING_REQUEST		4#define	PW_ACCOUNTING_RESPONSE		5#ifdef PASSCHANGE#define PW_PASSWORD_REQUEST		7#define PW_PASSWORD_ACK			8#define PW_PASSWORD_REJECT		9#endif /* PASSCHANGE */#define PW_ACCESS_CHALLENGE		11#define	PW_USER_NAME			1#define	PW_PASSWORD			2#define	PW_CHAP_PASSWORD		3#define	PW_CLIENT_ID			4#define	PW_CLIENT_PORT_ID		5#define	PW_USER_SERVICE_TYPE		6#define	PW_FRAMED_PROTOCOL		7#define	PW_FRAMED_ADDRESS		8#define	PW_FRAMED_NETMASK		9#define	PW_FRAMED_ROUTING		10#define	PW_FRAMED_FILTER_ID		11#define	PW_FRAMED_MTU			12#define	PW_FRAMED_COMPRESSION		13#define	PW_LOGIN_HOST			14#define	PW_LOGIN_SERVICE		15#define	PW_LOGIN_TCP_PORT		16#ifdef PASSCHANGE#define PW_OLD_PASSWORD			17#endif#define PW_PORT_MESSAGE			18#define PW_DIALBACK_NO			19#define PW_DIALBACK_NAME		20#define PW_FRAMED_ROUTE			22#define PW_FRAMED_IPXNET		23#define PW_STATE			24#define PW_VENDOR			26#define PW_TERMINATION			29#define PW_CALLED			30#define PW_CALLING			31#define PW_PROXY			33#define PW_ACCT_STATUS_TYPE		40#define PW_ACCT_DELAY_TIME		41#define PW_ACCT_INPUT_OCTETS		42#define PW_ACCT_OUTPUT_OCTETS		43#define PW_ACCT_SESSION_ID		44#define PW_ACCT_AUTHENTIC		45#define PW_ACCT_SESSION_TIME		46##define PW_CHAP_CHALLENGE		60#define PW_CONNECT_INFO			77/* new items for radiusd 2.0 */#define PW_ACCT_TERMINATE_CAUSE         49#define PW_NAS_PORT_TYPE                61/* attributes for new accounting stats */#define PW_ACCT_CALLED_STATION_ID       30#define PW_ACCT_CALLING_STATION_ID      31#define PW_ACCT_ASCEND_DATA_RATE        197#define PW_ACCT_ASCEND_XMIT_RATE        255#define PW_ACCT_USR_CONNECT_SPEED	0X9023#define PW_CONNECT_INFO                 77#define PW_CONNECT_INFO_OLD             65/* * Non-Protocol Attributes */#define PW_EXPIRATION			  21#define PW_AUTHTYPE			1000#define PW_MENU				1001#define PW_TERMINATION_MENU		1002#define PW_PREFIX			1003#define PW_SUFFIX			1004#define PW_GROUP			1005#define PW_CRYPT_PASSWORD		1006#define PW_CONNECT_RATE			1007#if defined(HAVE_LIBPAM)#define PW_PAM_AUTH                     2001#endif #define PW_LOGINS                       2002#define PW_MAXMTIME                     2003#define PW_TIME                         2004#define PW_MAXMTRAFFIC                  2005#define PW_MAXDTIME                     2006#define PW_MAXDTRAFFIC                  2007#define PW_MAXYTIME                     2008#define PW_MAXYTRAFFIC                  2009/* *	INTEGER TRANSLATIONS *//*	USER TYPES	*/#define	PW_LOGIN_USER			1#define	PW_FRAMED_USER			2#define	PW_DIALBACK_LOGIN_USER		3#define	PW_DIALBACK_FRAMED_USER		4#define	PW_OUTBOUND_USER		5#define	PW_ADMIN_USER			6#define	PW_PROMPT_USER			7#define PW_CALL_CHECK_USER      	10#define PW_OLD_CALL_CHECK_USER      	129/*	FRAMED PROTOCOLS	*/#define	PW_PPP				1#define	PW_SLIP				2/*	FRAMED ROUTING VALUES	*/#define	PW_NONE				0#define	PW_BROADCAST			1#define	PW_LISTEN			2#define	PW_BROADCAST_LISTEN		3/*	FRAMED COMPRESSION TYPES	*/#define	PW_VAN_JACOBSON_TCP_IP		1/*	LOGIN SERVICES	*/#define	PW_TELNET			0#define	PW_RLOGIN			1#define	PW_TCP_CLEAR			2#define	PW_PORTMASTER			3/*	AUTHENTICATION LEVEL	*/#define PW_AUTH_NONE			0#define PW_AUTH_RADIUS			1#define PW_AUTH_LOCAL			2/*	STATUS TYPES	*/#define PW_STATUS_START			1#define PW_STATUS_STOP			2/*	TERMINATION OPTIONS	*/#define PW_TERM_DEFAULT			0#define PW_TERM_RADIUS_REQUEST		1/*	Internal Authentication Types	*/#define PW_AUTHTYPE_NONE		-1#define PW_AUTHTYPE_LOCAL		0#define PW_AUTHTYPE_UNIX		1#define PW_AUTHTYPE_SECURID		2#define PW_AUTHTYPE_CRYPT		3#define PW_AUTHTYPE_REJECT		4#define PW_AUTHTYPE_ACTIVCARD		5#if defined(HAVE_LIBPAM)#define PW_AUTHTYPE_PAM                 7#endif /*	Proxy Flags			*/#define PEER_NOPROXY			1  /* do not include Proxy-State */#define PEER_OLDACCT			2  /* do not check sig on acct-response */#define PEER_ADMINOK			4  /* allow admin logins by proxy */#define PEER_IPASS			8  /* forward using ipass protocol *//*	AUTH_REQ Flags			*/#define REQ_PROXY			1  /* packet was forwarded */#define REQ_DUP				2  /* packet is a duplicate */#define REQ_ERR				4  /* packet is in error */#define REQ_FREE			8  /* packet can be freed *//*	build_packet Flags		*//*	Report Indices			*/#define FW_REPLY			0  /* reply to client */#define FW_SERVER			1  /* forward to server */#define FW_CLIENT			2  /* forward reply to client */#define	RR_PORT1			1 /* packets received on RADIUS port */#define	RR_PORT2			2 /* packets received on RADIUS accounting port */#define	RR_PORT3			3 /* packets received on RADIUS proxy port */#define	RR_PORT4			4 /* packets received on RADIUS acct proxy port */#define	RR_ACCEPT			5 /* access-accepts sent */#define	RR_REJECT			6 /* access-rejects sent */#define	RR_CHALLENGE			7 /* access-challenges sent */#define	RR_ACCOUNT			8 /* accounting-responses sent */#define RR_MAX				20/* Default Database File Names */#include "default-paths.h"#define RADIUS_DICTIONARY	"dictionary"#define RADIUS_CLIENTS		"clients"#define RADIUS_CLIENT_CACHE	"clcache"#define RADIUS_PROXY		"proxy"#define RADIUS_USERS		"users"#define RADIUS_USERSDB		"users.db"#ifdef VPORTS#define RADIUS_VPORTS           "vports"#endif#ifdef ACTIVCARD#define ACTIVCARD_CONFIG	"config.aeg"#endif/* Server data structures */#define DICT_ATTR_NAME_LEN 32typedef struct dict_attr {	char			name[DICT_ATTR_NAME_LEN];	int			value;	int			type;	int			vendor;	/* non-zero for Vendor-Specific */	int			vsvalue;	struct dict_attr	*next;} DICT_ATTR;#define DICT_VALUE_NAME_LEN 32#define DICT_VALUE_ATTRNAME_LEN 32typedef struct dict_value {	char			attrname[DICT_VALUE_ATTRNAME_LEN];	char			name[DICT_VALUE_NAME_LEN];	int			value;	struct dict_value	*next;} DICT_VALUE;#define VALUE_PAIR_NAME_LEN 32#define VALUE_PAIR_STRVALUE_LEN AUTH_STRING_LENtypedef struct value_pair {	char			name[VALUE_PAIR_NAME_LEN];	int			attribute;	int			type;	int			vendor;	int			vsattribute;	UINT4			lvalue;		char			strvalue[VALUE_PAIR_STRVALUE_LEN];	struct value_pair	*next;} VALUE_PAIR;#define AUTH_REQ_FORW_SECRET_LEN 20#define AUTH_REQ_SECRET_LEN 20#define AUTH_REQ_NAME_LEN 64#define AUTH_REQ_REALM_LEN 64typedef struct auth_req {	UINT4			ipaddr;	u_short			udp_port;	u_char			id;	u_char			code;	char			vector[AUTH_VECTOR_LEN];	char			secret[AUTH_REQ_SECRET_LEN];	/* max length supported is 16 */	VALUE_PAIR		*request;	int			child_pid;	/* Process ID of child */	UINT4			timestamp;	struct auth_req		*next;		/* Next active request */	UINT4			forw_addr;	u_short			forw_port;	u_char			forw_id;	u_char			flags;	char			forw_vector[AUTH_VECTOR_LEN];	char			forw_secret[AUTH_REQ_FORW_SECRET_LEN];	char			name[AUTH_REQ_NAME_LEN];	char			realm[AUTH_REQ_REALM_LEN];	char			*packet;} AUTH_REQ;typedef struct peer {	UINT4			ipaddr;	struct peer		*next;	u_short			radport;	u_short			acctport;	char			realm[AUTH_REQ_REALM_LEN];	char			secret[AUTH_REQ_SECRET_LEN];	u_char			id;	u_char			flags;} PEER;#define SECONDS_PER_DAY		86400#define CLEANUP_DELAY		5#define MAX_REQUESTS		100	/* -q */#if defined(SECURID)#define MAX_REQUEST_TIME	120#else #define MAX_REQUEST_TIME	30	/* -t */#endif#define MAX_PROXY_TIME		30	/* -w */#define RADIUS_MSG_KEY(pid)	(('r' << 24) + ((pid) & 0x00ffffff))extern int debug_flag;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -