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

📄 attribute_control_structures.h

📁 vxworks下radius协议栈 的源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
/* attribute_control_structures.h *//* Definitions of structures that are used to check the validity of *//* attributes in a certain type of RADIUS packet, and the validity  *//* of the value of a certain attribute.								*//* Copyright 1984 - 2000 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history____________________01b,04mar02,md  Add support for EAP01a,19dec00,md  merged from visual source safe*//************************************************************************//*	Copyright (C) 1993 - 1999 RouterWare, Inc.   								*//*	Unpublished - rights reserved under the Copyright Laws of the			*//*	United States.  Use, duplication, or disclosure by the 					*//*	Government is subject to restrictions as set forth in 					*//*	subparagraph (c)(1)(ii) of the Rights in Technical Data and 			*//*	Computer Software clause at 252.227-7013.										*//*	RouterWare, Inc., 3961 MacArthur Suite 212 Newport Beach, CA 92660	*//************************************************************************//************************************************************************Attributes are validated with the following parameters on a per packet typebasis:presence						modifiers1: must not be present       	2: 0 or more present			3: 1 or more present            alternative attribute 								dependent attributeModifier explanation:alternative attribute - one of the alternatives must be present in the packetdependent attribute - the referenced attribute must be present in the packetThese these two modifiers can override the presence value.The validate attribute value is a pointer to a function specific toeach attribute.  If present, it will be called with the attribute typeand value.  The function returns PASS or FAIL after validating thevalue passed for the type.(not used yet)**************************************************************************/#ifndef __INCradius_attribute_control_structuresh#define __INCradius_attribute_control_structuresh#ifdef __RADIUS_ATTRIBUTE_VERIFICATION_DEBUG__#define NO_UPPER_LIMIT	0xFFFFFFFF#define SIZE_OF_INTEGER	4#define MAX_FRAMED_MTU	65535#define MIN_FRAMED_MTU	64#define RADIUS_MAX_PORT_NUMBER	65535#define RADIUS_MAX_APPLETALK_LINK	65535#define RADIUS_MAX_APPLETALK_NETWORK	65535#endif /*__RADIUS_ATTRIBUTE_VERIFICATION_DEBUG__*/typedef struct ATTRIBUTE_COUNT{	UINT	count[MAXIMUM_RADIUS_ATTRIBUTE_TYPE];}ATTRIBUTE_COUNT;enum ATTRIBUTE_PRESENCE{	ZERO_OR_MORE = 0,	ZERO_OR_ONE,	ILLEGAL,	ONE_ONLY,	ONE_OR_MORE};enum ATTRIBUTE_MODIFIER{	NO_MODIFIER = 0,	ALTERNATE,	BOTH};typedef struct ATTRIBUTE_CONTROL{	BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type;	BYTE_ENUM (ATTRIBUTE_PRESENCE) presence;	BYTE_ENUM (ATTRIBUTE_MODIFIER) modifier;	BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) other_type;/*	enum TEST (*fptr_validate_attribute_value) (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);*/} ATTRIBUTE_CONTROL;#ifdef __RADIUS_ATTRIBUTE_VERIFICATION_DEBUG__enum RADIUS_ATTRIBUTE_VALUE_TYPE{	RADIUS_ATTRIBUTE_VALUE_TEXT = 0,	RADIUS_ATTRIBUTE_VALUE_STRING,	RADIUS_ATTRIBUTE_VALUE_ADDRESS,	RADIUS_ATTRIBUTE_VALUE_INTEGER,	RADIUS_ATTRIBUTE_VALUE_TIME,	RADIUS_ATTRIBUTE_VALUE_INVALID};typedef struct ATTRIBUTE_VALUE_CONTROL{	BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) attribute_type;	BYTE_ENUM (RADIUS_ATTRIBUTE_VALUE_TYPE) attribute_value_type;	UINT attribute_length_lower_limit;	UINT attribute_length_upper_limit;	bool (*fptr_validate_attribute_value) (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);} ATTRIBUTE_VALUE_CONTROL;/**********************************************************************************/bool radius_service_type_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_framed_protocol_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_framed_routing_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_framed_MTU_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_framed_compression_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_login_service_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_login_TCP_port_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_termination_action_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_apple_talk_link_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_apple_talk_network_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_acct_status_type_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_acct_authentic_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_acct_terminate_cause_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_nas_port_type_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_tunnel_type_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);bool radius_tunnel_medium_type_value_check (BYTE_ENUM (RADIUS_ATTRIBUTE_TYPE) type, void *value);#endif /*__RADIUS_ATTRIBUTE_VERIFICATION_DEBUG__*//**********************************************************************************/ATTRIBUTE_CONTROL access_request_control[MAXIMUM_RADIUS_ATTRIBUTE_TYPE] ={	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 0 */	{RADIUS_USER_NAME, ONE_ONLY, NO_MODIFIER, 0},							/* 1 */#ifdef __EAP__	{RADIUS_USER_PASSWORD, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 2 */	{RADIUS_CHAP_PASSWORD, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 3 */#else	{RADIUS_USER_PASSWORD, ZERO_OR_MORE, ALTERNATE, RADIUS_CHAP_PASSWORD},	/* 2 */	{RADIUS_CHAP_PASSWORD, ZERO_OR_MORE, ALTERNATE, RADIUS_USER_PASSWORD},	/* 3 */#endif /* __EAP__ */	{RADIUS_NAS_IP_ADDRESS, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 4 */	{RADIUS_NAS_PORT, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 5 */	{RADIUS_SERVICE_TYPE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 6 */	{RADIUS_FRAMED_PROTOCOL, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 7 */	{RADIUS_FRAMED_IP_ADDRESS, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 8 */	{RADIUS_FRAMED_IP_NETMASK, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 9 */	{RADIUS_FRAMED_ROUTING, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 10*/	{RADIUS_FILTER_ID, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 11*/	{RADIUS_FRAMED_MTU, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 12*/	{RADIUS_FRAMED_COMPRESSION, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 13*/	{RADIUS_LOGIN_IP_HOST, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 14*/	{RADIUS_LOGIN_SERVICE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 15*/	{RADIUS_LOGIN_TCP_PORT, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 16*/	{RADIUS_UNASSIGNED_17, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 17*/	{RADIUS_REPLY_MESSAGE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 18*/	{RADIUS_CALLBACK_NUMBER, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 19*/	{RADIUS_CALLBACK_ID, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 20*/	{RADIUS_UNASSIGNED_21, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 21*/	{RADIUS_FRAMED_ROUTE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 22*/	{RADIUS_FRAMED_IPX_NETWORK, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 23*/	{RADIUS_STATE, ZERO_OR_ONE, NO_MODIFIER, 0},							/* 24*/	{RADIUS_CLASS_ATTRIBUTE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 25*/	{RADIUS_VENDOR_SPECIFIC, ZERO_OR_MORE, NO_MODIFIER, 0},   				/* 26*/	{RADIUS_SESSION_TIMEOUT, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 27*/	{RADIUS_IDLE_TIMEOUT, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 28*/	{RADIUS_TERMINATION_ACTION, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 29*/	{RADIUS_CALLED_STATION_ID, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 30*/	{RADIUS_CALLING_STATION_ID, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 31*/	{RADIUS_NAS_IDENTIFIER, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 32*/	{RADIUS_PROXY_STATE, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 33*/	{RADIUS_LOGIN_LAT_SERVICE, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 34*/	{RADIUS_LOGIN_LAT_NODE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 35*/	{RADIUS_LOGIN_LAT_GROUP, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 36*/	{RADIUS_FRAMED_APPLETALK_LINK, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 37*/	{RADIUS_FRAMED_APPLETALK_NETWORK, ZERO_OR_MORE, NO_MODIFIER, 0},		/* 38*/	{RADIUS_FRAMED_APPLETALK_ZONE, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 39*/	{RADIUS_ACCT_STATUS_TYPE, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 40*/	{RADIUS_ACCT_DELAY_TIME, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 41*/	{RADIUS_ACCT_INPUT_OCTETS, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 42*/	{RADIUS_ACCT_OUTPUT_OCTETS, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 43*/	{RADIUS_ACCT_SESSION_ID, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 44*/	{RADIUS_ACCT_AUTHENTIC, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 45*/	{RADIUS_ACCT_SESSION_TIME, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 46*/	{RADIUS_ACCT_INPUT_PACKETS, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 47*/	{RADIUS_ACCT_OUTPUT_PACKETS, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 48*/	{RADIUS_ACCT_TERMINATE_CAUSE, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 49*/	{RADIUS_ACCT_MULTI_SESSION_ID, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 50*/	{RADIUS_ACCT_LINK_COUNT, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 51*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 52*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 53*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 54*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 55*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 56*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 57*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 58*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 59*/	{RADIUS_CHAP_CHALLENGE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 60*/	{RADIUS_NAS_PORT_TYPE, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 61*/	{RADIUS_PORT_LIMIT, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 62*/	{RADIUS_LOGIN_LAT_PORT, ZERO_OR_MORE, NO_MODIFIER, 0},					/* 63*/	{RADIUS_TUNNEL_TYPE, ZERO_OR_MORE, NO_MODIFIER, 0},						/* 64*/	{RADIUS_TUNNEL_MEDIUM_TYPE, ZERO_OR_MORE, NO_MODIFIER, 0},				/* 65*/	{RADIUS_TUNNEL_CLIENT_ENDPOINT, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 66*/	{RADIUS_TUNNEL_SERVER_ENDPOINT, ZERO_OR_MORE, NO_MODIFIER, 0},			/* 67*/	{RADIUS_ACCT_TUNNEL_CONNECTION, ILLEGAL, NO_MODIFIER, 0},				/* 68*/	{RADIUS_TUNNEL_PASSWORD, ILLEGAL, NO_MODIFIER, 0},						/* 69*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 70*/	{0, ZERO_OR_MORE, NO_MODIFIER, 0},										/* 71*/

⌨️ 快捷键说明

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