| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 | 
							- /*
 
-  * $Id: freeradius-client.h,v 1.18 2010/06/15 09:22:51 aland 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
 
-  * 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
 
-  * and I'll send you a copy.
 
-  *
 
-  */
 
- #ifndef FREERADIUS_CLIENT_H
 
- #define FREERADIUS_CLIENT_H
 
- //#define CP_DEBUG
 
- #ifdef CP_DEBUG
 
- #define		DEBUG(args, ...)	rc_log(## args)
 
- #else
 
- #define		DEBUG(args, ...)	;
 
- #endif
 
- //#include	<sys/types.h>
 
- #include "radius_config.h"
 
- /*
 
-  * Include for C99 uintX_t defines is stdint.h on most systems.  Solaris uses
 
-  * inttypes.h instead.  Comment out the stdint include if you get an error,
 
-  * and uncomment the inttypes.h include.
 
-  */
 
- #include	<stdint.h>
 
- /* #include	<inttypes.h> */
 
- #ifdef PRINTF_STDLIB
 
- #include <stdio.h>
 
- #endif
 
- #ifdef PRINTF_CUSTOM
 
- #include "tinystdio.h"
 
- #endif
 
- #include	<time.h>
 
- /* for struct addrinfo and sockaddr_storage */
 
- //#include <sys/socket.h>
 
- #include <netdb.h>
 
- #undef __BEGIN_DECLS
 
- #undef __END_DECLS
 
- #ifdef __cplusplus
 
- # define __BEGIN_DECLS extern "C" {
 
- # define __END_DECLS }
 
- #else
 
- # define __BEGIN_DECLS /* empty */
 
- # define __END_DECLS /* empty */
 
- #endif
 
- #define AUTH_VECTOR_LEN		16
 
- #define AUTH_PASS_LEN		(3 * 16) /* multiple of 16 */
 
- #define AUTH_ID_LEN		    64
 
- #define AUTH_STRING_LEN		253	 /* maximum of 253 */
 
- #define BUFFER_LEN		    8192
 
- #define NAME_LENGTH		    32
 
- #define GETSTR_LENGTH		128	//!< must be bigger than AUTH_PASS_LEN.
 
- #define MAX_SECRET_LENGTH	(3 * 16) /* MUST be multiple of 16 */
 
- #define VENDOR(x)		(((x) >> 16) & 0xffff)
 
- #define ATTRID(x)		((x) & 0xffff)
 
- #define PW_MAX_MSG_SIZE		256//4096
 
-    
 
- /* codes for radius_buildreq, radius_getport, etc. */
 
- #define AUTH			0
 
- #define ACCT			1
 
- /* defines for config.c */
 
- #define SERVER_MAX 8
 
- #define AUTH_LOCAL_FST	(1<<0)
 
- #define AUTH_RADIUS_FST	(1<<1)
 
- #define AUTH_LOCAL_SND	(1<<2)
 
- #define AUTH_RADIUS_SND	(1<<3)
 
- typedef struct server {
 
- 	int max;
 
- 	char *name[SERVER_MAX];
 
- 	uint16_t port[SERVER_MAX];
 
- 	char *secret[SERVER_MAX];
 
- 	double deadtime_ends[SERVER_MAX];
 
- } SERVER;
 
- typedef struct pw_auth_hdr
 
- {
 
- 	uint8_t		code;
 
- 	uint8_t		id;
 
- 	uint16_t	length;
 
- 	uint8_t		vector[AUTH_VECTOR_LEN];
 
- 	uint8_t		data[2];
 
- } AUTH_HDR;
 
- struct rc_conf
 
- {
 
- 	struct _option		    *config_options;
 
- 	struct sockaddr_storage	own_bind_addr;
 
- 	unsigned		        own_bind_addr_set;
 
- 	struct map2id_s		    *map2id_list;
 
- 	struct dict_attr	    *dictionary_attributes;
 
- 	struct dict_value	    *dictionary_values;
 
- 	struct dict_vendor	    *dictionary_vendors;
 
- 	char			        buf[GETSTR_LENGTH];
 
-     char    			    buf1[14];
 
- 	char	    		    ifname[512];
 
- };
 
- typedef struct rc_conf rc_handle;
 
- #define AUTH_HDR_LEN			20
 
- #define CHAP_VALUE_LENGTH		16
 
- #define PW_AUTH_UDP_PORT		1645
 
- #define PW_ACCT_UDP_PORT		1646
 
- #define PW_TYPE_STRING			0
 
- #define PW_TYPE_INTEGER			1
 
- #define PW_TYPE_IPADDR			2
 
- #define PW_TYPE_DATE			3
 
- #define PW_TYPE_IPV6ADDR		4
 
- #define PW_TYPE_IPV6PREFIX		5
 
- /* standard RADIUS codes */
 
- #define PW_ACCESS_REQUEST		1
 
- #define PW_ACCESS_ACCEPT		2
 
- #define PW_ACCESS_REJECT		3
 
- #define PW_ACCOUNTING_REQUEST	4
 
- #define PW_ACCOUNTING_RESPONSE	5
 
- #define PW_ACCOUNTING_STATUS	6
 
- #define PW_PASSWORD_REQUEST		7
 
- #define PW_PASSWORD_ACK			8
 
- #define PW_PASSWORD_REJECT		9
 
- #define PW_ACCOUNTING_MESSAGE	10
 
- #define PW_ACCESS_CHALLENGE		11
 
- #define PW_STATUS_SERVER		12
 
- #define PW_STATUS_CLIENT		13
 
- /* standard RADIUS attribute-value pairs */
 
- #define PW_ACCESS               244
 
- #define PW_USER_NAME			1	//!< string.
 
- #define PW_USER_PASSWORD		2	//!< string.
 
- #define PW_CHAP_PASSWORD		3	//!< string.
 
- #define PW_NAS_IP_ADDRESS		4	//!< ipaddr.
 
- #define PW_NAS_PORT			    5	//!< integer.
 
- #define PW_SERVICE_TYPE			6	//!< integer.
 
- #define PW_FRAMED_PROTOCOL		7	//!< integer.
 
- #define PW_FRAMED_IP_ADDRESS	8	//!< ipaddr.
 
- #define PW_FRAMED_IP_NETMASK	9	//!< ipaddr.
 
- #define PW_FRAMED_ROUTING		10	//!< integer.
 
- #define PW_FILTER_ID			11	//!< string.
 
- #define PW_FRAMED_MTU			12	//!< integer.
 
- #define PW_FRAMED_COMPRESSION	13	//!< integer.
 
- #define PW_LOGIN_IP_HOST		14	//!< ipaddr.
 
- #define PW_LOGIN_SERVICE		15	//!< integer.
 
- #define PW_LOGIN_PORT			16	//!< integer.
 
- #define PW_OLD_PASSWORD			17	//!< string */ /* deprecated.
 
- #define PW_REPLY_MESSAGE		18	//!< string.
 
- #define PW_LOGIN_CALLBACK_NUMBER    19	//!< string.
 
- #define PW_FRAMED_CALLBACK_ID		20	//!< string.
 
- #define PW_EXPIRATION			21	//!< date */ /* deprecated.
 
- #define PW_FRAMED_ROUTE			22	//!< string.
 
- #define PW_FRAMED_IPX_NETWORK	23	//!< integer.
 
- #define PW_STATE			    24	//!< string.
 
- #define PW_CLASS			    25	//!< string.
 
- #define PW_VENDOR_SPECIFIC	    26	//!< string.
 
- #define PW_SESSION_TIMEOUT		27	//!< integer.
 
- #define PW_IDLE_TIMEOUT			28	//!< integer.
 
- #define PW_TERMINATION_ACTION	29	//!< integer.
 
- #define PW_CALLED_STATION_ID	30	//!< string.
 
- #define PW_CALLING_STATION_ID	31	//!< string.
 
- #define PW_NAS_IDENTIFIER		32	//!< string.
 
- #define PW_PROXY_STATE			33	//!< string.
 
- #define PW_LOGIN_LAT_SERVICE	34	//!< string.
 
- #define PW_LOGIN_LAT_NODE		35	//!< string.
 
- #define PW_LOGIN_LAT_GROUP		36	//!< string.
 
- #define PW_FRAMED_APPLETALK_LINK	37	//!< integer.
 
- #define PW_FRAMED_APPLETALK_NETWORK	38	//!< integer.
 
- #define PW_FRAMED_APPLETALK_ZONE	39	//!< string.
 
- #define PW_ACCT_STATUS_TYPE		    40	//!< integer.
 
- #define PW_ACCT_DELAY_TIME		    41	//!< integer.
 
- #define PW_ACCT_INPUT_OCTETS		42	//!< integer.
 
- #define PW_ACCT_OUTPUT_OCTETS		43	//!< integer.
 
- #define PW_ACCT_SESSION_ID		    44	//!< string.
 
- #define PW_ACCT_AUTHENTIC		    45	//!< integer.
 
- #define PW_ACCT_SESSION_TIME		46	//!< integer.
 
- #define PW_ACCT_INPUT_PACKETS		47	//!< integer.
 
- #define PW_ACCT_OUTPUT_PACKETS		48	//!< integer.
 
- #define PW_ACCT_TERMINATE_CAUSE		49	//!< integer.
 
- #define PW_ACCT_MULTI_SESSION_ID	50	//!< string.
 
- #define PW_ACCT_LINK_COUNT		    51	//!< integer.
 
- #define PW_ACCT_INPUT_GIGAWORDS		52	//!< integer.
 
- #define PW_ACCT_OUTPUT_GIGAWORDS	53	//!< integer.
 
- #define PW_EVENT_TIMESTAMP		    55	//!< integer.
 
- #define PW_EGRESS_VLANID		    56	//!< string.
 
- #define PW_INGRESS_FILTERS		    57	//!< integer.
 
- #define PW_EGRESS_VLAN_NAME		    58	//!< string.
 
- #define PW_USER_PRIORITY_TABLE		59	//!< string.
 
- #define PW_CHAP_CHALLENGE		    60	//!< string.
 
- #define PW_NAS_PORT_TYPE		    61	//!< integer.
 
- #define PW_PORT_LIMIT			    62	//!< integer.
 
- #define PW_LOGIN_LAT_PORT		    63	//!< string.
 
- #define PW_TUNNEL_TYPE			    64	//!< string.
 
- #define PW_TUNNEL_MEDIUM_TYPE		65	//!< integer.
 
- #define PW_TUNNEL_CLIENT_ENDPOINT	66	//!< string.
 
- #define PW_TUNNEL_SERVER_ENDPOINT	67	//!< string.
 
- #define PW_ACCT_TUNNEL_CONNECTION	68	//!< string.
 
- #define PW_TUNNEL_PASSWORD		    69	//!< string.
 
- #define PW_ARAP_PASSWORD		    70	//!< string.
 
- #define PW_ARAP_FEATURES		    71	//!< string.
 
- #define PW_ARAP_ZONE_ACCESS		    72	//!< integer.
 
- #define PW_ARAP_SECURITY		    73	//!< integer.
 
- #define PW_ARAP_SECURITY_DATA		74	//!< string.
 
- #define PW_PASSWORD_RETRY		    75	//!< integer.
 
- #define PW_PROMPT			        76	//!< integer.
 
- #define PW_CONNECT_INFO			    77	//!< string.
 
- #define PW_CONFIGURATION_TOKEN		78	//!< string.
 
- #define PW_EAP_MESSAGE			    79	//!< string.
 
- #define PW_MESSAGE_AUTHENTICATOR	80	//!< string.
 
- #define PW_TUNNEL_PRIVATE_GROUP_ID	81	//!< string.
 
- #define PW_TUNNEL_ASSIGNMENT_ID		82	//!< string.
 
- #define PW_TUNNEL_PREFERENCE		83	//!< string.
 
- #define PW_ARAP_CHALLENGE_RESPONSE	84	//!< string.
 
- #define PW_ACCT_INTERIM_INTERVAL	85	//!< integer.
 
- #define PW_ACCT_TUNNEL_PACKETS_LOST	86	//!< integer.
 
- #define PW_NAS_PORT_ID_STRING		87	//!< string.
 
- #define PW_FRAMED_POOL			    88	//!< string.
 
- #define PW_CHARGEABLE_USER_IDENTITY	89	//!< string.
 
- #define PW_CUI				        89	//!< string.
 
- #define PW_TUNNEL_CLIENT_AUTH_ID	90	//!< string.
 
- #define PW_TUNNEL_SERVER_AUTH_ID	91	//!< string.
 
- #define PW_NAS_FILTER_RULE		    92	//!< string.
 
- #define PW_ORIGINATING_LINE_INFO	94	//!< string.
 
- #define PW_NAS_IPV6_ADDRESS		    95	//!< string.
 
- #define PW_FRAMED_INTERFACE_ID		96	//!< string.
 
- #define PW_FRAMED_IPV6_PREFIX		97	//!< string.
 
- #define PW_LOGIN_IPV6_HOST		    98	//!< string.
 
- #define PW_FRAMED_IPV6_ROUTE		99	//!< string.
 
- #define PW_FRAMED_IPV6_POOL		    100	//!< string.
 
- #define PW_ERROR_CAUSE			    101	//!< integer.
 
- #define PW_EAP_KEY_NAME			    102	//!< string.
 
- #define PW_FRAMED_IPV6_ADDRESS		168	//!< ipaddr6.
 
- #define PW_DNS_SERVER_IPV6_ADDRESS	169	//!< ipaddr6.
 
- #define PW_ROUTE_IPV6_INFORMATION	170	//!< ipv6prefix.
 
- /* Experimental SIP-specific attributes (draft-sterman-aaa-sip-00.txt etc) */
 
- #define PW_DIGEST_RESPONSE		    206	//!< string.
 
- #define PW_DIGEST_ATTRIBUTES		207	//!< string.
 
- #define PW_DIGEST_REALM			    1063	//!< string.
 
- #define PW_DIGEST_NONCE			    1064	//!< string.
 
- #define PW_DIGEST_METHOD		    1065	//!< string.
 
- #define PW_DIGEST_URI			    1066	//!< string.
 
- #define PW_DIGEST_QOP			    1067	//!< string.
 
- #define PW_DIGEST_ALGORITHM		    1068	//!< string.
 
- #define PW_DIGEST_BODY_DIGEST		1069	//!< string.
 
- #define PW_DIGEST_CNONCE		    1070	//!< string.
 
- #define PW_DIGEST_NONCE_COUNT		1071	//!< string.
 
- #define PW_DIGEST_USER_NAME		    1072	//!< string.
 
- /* Integer Translations */
 
- /* SERVICE TYPES */
 
- #define PW_LOGIN			    1
 
- #define PW_FRAMED			    2
 
- #define PW_CALLBACK_LOGIN		3
 
- #define PW_CALLBACK_FRAMED		4
 
- #define PW_OUTBOUND			    5
 
- #define PW_ADMINISTRATIVE		6
 
- #define PW_NAS_PROMPT			7
 
- #define PW_AUTHENTICATE_ONLY	8
 
- #define PW_CALLBACK_NAS_PROMPT	9
 
- /* FRAMED PROTOCOLS */
 
- #define PW_PPP				1
 
- #define PW_SLIP				2
 
- #define PW_ARA				3
 
- #define PW_GANDALF			4
 
- #define PW_XYLOGICS			5
 
- /* 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
 
- #define PW_IPX_HEADER_COMPRESSION	2
 
- /* LOGIN SERVICES */
 
- #define PW_TELNET			0
 
- #define PW_RLOGIN			1
 
- #define PW_TCP_CLEAR		2
 
- #define PW_PORTMASTER		3
 
- #define PW_LAT				4
 
- #define PW_X25_PAD			5
 
- #define PW_X25_T3POS		6
 
- /* TERMINATION ACTIONS */
 
- #define PW_DEFAULT			0
 
- #define PW_RADIUS_REQUEST	1
 
- /* PROHIBIT PROTOCOL */
 
- #define PW_DUMB			    0	//!< 1 and 2 are defined in FRAMED PROTOCOLS.
 
- #define PW_AUTH_ONLY	    3
 
- #define PW_ALL			    255
 
- /* ACCOUNTING STATUS TYPES */
 
- #define PW_STATUS_START		1
 
- #define PW_STATUS_STOP		2
 
- #define PW_STATUS_ALIVE		3
 
- #define PW_STATUS_MODEM_START	4
 
- #define PW_STATUS_MODEM_STOP	5
 
- #define PW_STATUS_CANCEL	6
 
- #define PW_ACCOUNTING_ON	7
 
- #define PW_ACCOUNTING_OFF	8
 
- /* ACCOUNTING TERMINATION CAUSES */
 
- #define PW_USER_REQUEST		1
 
- #define PW_LOST_CARRIER		2
 
- #define PW_LOST_SERVICE		3
 
- #define PW_ACCT_IDLE_TIMEOUT	4
 
- #define PW_ACCT_SESSION_TIMEOUT	5
 
- #define PW_ADMIN_RESET		6
 
- #define PW_ADMIN_REBOOT		7
 
- #define PW_PORT_ERROR		8
 
- #define PW_NAS_ERROR		9
 
- #define PW_NAS_REQUEST		10
 
- #define PW_NAS_REBOOT		11
 
- #define PW_PORT_UNNEEDED	12
 
- #define PW_PORT_PREEMPTED	13
 
- #define PW_PORT_SUSPENDED	14
 
- #define PW_SERVICE_UNAVAILABLE	15
 
- #define PW_CALLBACK		    16
 
- #define PW_USER_ERROR		17
 
- #define PW_HOST_REQUEST		18
 
- /* NAS PORT TYPES */
 
- #define PW_ASYNC		    0
 
- #define PW_SYNC			    1
 
- #define PW_ISDN_SYNC		2
 
- #define PW_ISDN_SYNC_V120	3
 
- #define PW_ISDN_SYNC_V110	4
 
- #define PW_VIRTUAL		    5
 
- /* AUTHENTIC TYPES */
 
- #define PW_RADIUS	1
 
- #define PW_LOCAL	2
 
- #define PW_REMOTE	3
 
- /* Server data structures */
 
- typedef struct dict_attr
 
- {
 
- 	char              name[NAME_LENGTH + 1];	//!< attribute name.
 
- 	int               value;			//!< attribute index.
 
- 	int               type;				//!< string, int, etc..
 
- 	struct dict_attr *next;
 
- } DICT_ATTR;
 
- typedef struct dict_value
 
- {
 
- 	char               attrname[NAME_LENGTH +1];
 
- 	char               name[NAME_LENGTH + 1];
 
- 	int                value;
 
- 	struct dict_value *next;
 
- } DICT_VALUE;
 
- typedef struct dict_vendor
 
- {
 
- 	char               vendorname[NAME_LENGTH +1];
 
- 	int                vendorpec;
 
- 	struct dict_vendor *next;
 
- } DICT_VENDOR;
 
- typedef struct value_pair
 
- {
 
- 	char               name[NAME_LENGTH + 1];
 
- 	int                attribute;
 
- 	int                type;
 
- 	uint32_t           lvalue;
 
- 	char               strvalue[AUTH_STRING_LEN + 1];
 
- 	struct value_pair *next;
 
- } VALUE_PAIR;
 
- /* Define return codes from "SendServer" utility */
 
- #define NET_ERR_RC  -3  // Ошибка создания сокета, соединения/отправки/приема
 
- #define BADRESP_RC	-2  // Неверный пароль
 
- #define ERROR_RC	-1
 
- #define OK_RC		0
 
- #define TIMEOUT_RC	1
 
- #define REJECT_RC	2  // Неверный логин
 
- #define USER_RC     3
 
- #define ADMIN_RC    4
 
- typedef struct send_data /* Used to pass information to sendserver() function */
 
- {
 
- 	uint8_t        code;		//!< RADIUS packet code.
 
- 	uint8_t        seq_nbr;		//!< Packet sequence number.
 
- 	char           *server;		//!< Name/addrress of RADIUS server.
 
- 	int            svc_port;	//!< RADIUS protocol destination port.
 
- 	char           *secret;		//!< Shared secret of RADIUS server.
 
- 	int            timeout;		//!< Session timeout in seconds.
 
- 	int            retries;
 
- 	VALUE_PAIR     *send_pairs;     //!< More a/v pairs to send.
 
- 	VALUE_PAIR     *receive_pairs;  //!< Where to place received a/v pairs.
 
- } SEND_DATA;
 
- #ifndef MIN
 
- #define MIN(a, b)     ((a) < (b) ? (a) : (b))
 
- #endif
 
- #ifndef MAX
 
- #define MAX(a, b)     ((a) > (b) ? (a) : (b))
 
- #endif
 
- #ifndef PATH_MAX
 
- #define PATH_MAX	1024
 
- #endif
 
- typedef struct env
 
- {
 
- 	int maxsize, size;
 
- 	char **env;
 
- } ENV;
 
- #define ENV_SIZE	128
 
- __BEGIN_DECLS
 
- /* Function prototypes */
 
- /* avpair.c */
 
- VALUE_PAIR *rc_avpair_add(rc_handle const *, VALUE_PAIR **, int, void const *, int, int);
 
- int rc_avpair_assign(VALUE_PAIR *, void const *, int);
 
- VALUE_PAIR *rc_avpair_new(rc_handle const *, int, void const *, int, int);
 
- VALUE_PAIR *rc_avpair_gen(rc_handle const *, VALUE_PAIR *, unsigned char const *, int, int);
 
- VALUE_PAIR *rc_avpair_get(VALUE_PAIR *, int, int);
 
- void rc_avpair_insert(VALUE_PAIR **, VALUE_PAIR *, VALUE_PAIR *);
 
- void rc_avpair_free(VALUE_PAIR *);
 
- int rc_avpair_parse(rc_handle const *, char const *, VALUE_PAIR **);
 
- int rc_avpair_tostr(rc_handle const *, VALUE_PAIR *, char *, int, char *, int);
 
- char *rc_avpair_log(rc_handle const *, VALUE_PAIR *, char *buf, size_t buf_len);
 
- //VALUE_PAIR *rc_avpair_readin(rc_handle const *, FILE *);
 
- /* buildreq.c */
 
- void rc_buildreq(rc_handle const *, SEND_DATA *, int, char *, unsigned short, char *, int, int);
 
- unsigned char rc_get_id();
 
- int rc_auth(rc_handle *, uint32_t, VALUE_PAIR *, VALUE_PAIR **, char *);
 
- int rc_auth_proxy(rc_handle *, VALUE_PAIR *, VALUE_PAIR **, char *);
 
- int rc_acct(rc_handle *, uint32_t, VALUE_PAIR *);
 
- int rc_acct_proxy(rc_handle *, VALUE_PAIR *);
 
- int rc_check(rc_handle *, char *, char *, unsigned short, char *);
 
- int rc_aaa(rc_handle *rh, uint32_t client_port, VALUE_PAIR *send, VALUE_PAIR **received,
 
-     char *msg, int add_nas_port, int request_type);
 
- /* clientid.c */
 
- int rc_read_mapfile(rc_handle *, char const *);
 
- uint32_t rc_map2id(rc_handle const *, char const *);
 
- void rc_map2id_free(rc_handle *);
 
- /* config.c */
 
- //rc_handle *rc_read_config(char const *);
 
- void rc_read_config(rc_handle* rh);
 
- char *rc_conf_str(rc_handle const *, char const *);
 
- int rc_conf_int(rc_handle const *, char const *);
 
- SERVER *rc_conf_srv(rc_handle const *, char const *);
 
- void rc_config_free(rc_handle *);
 
- int rc_add_config(rc_handle *, char const *, char const *, char const *, int);
 
- rc_handle *rc_config_init(rc_handle *);
 
- int test_config(rc_handle const *, char const *);
 
- /* dict.c */
 
- int rc_read_dictionary(rc_handle *, char const *);
 
- DICT_ATTR *rc_dict_getattr(rc_handle const *, int);
 
- DICT_ATTR *rc_dict_findattr(rc_handle const *, char const *);
 
- DICT_VALUE *rc_dict_findval(rc_handle const *, char const *);
 
- DICT_VENDOR *rc_dict_findvend(rc_handle const *, char const *);
 
- DICT_VENDOR *rc_dict_getvend(rc_handle const *, int);
 
- DICT_VALUE * rc_dict_getval(rc_handle const *, uint32_t, char const *);
 
- void rc_dict_free(rc_handle *);
 
- /* ip_util.c */
 
- int rc_good_ipaddr(char const *);
 
- unsigned short rc_getport(int);
 
- int rc_own_hostname(char *, int);
 
- struct sockaddr;
 
- int rc_get_srcaddr(struct sockaddr *, const struct sockaddr *);
 
- /* log.c */
 
- void rc_openlog(char const *);
 
- void rc_log(int, char const *, ...);
 
- /* sendserver.c */
 
- int rc_send_server(rc_handle *, SEND_DATA *, char *, unsigned flags);
 
- /* util.c */
 
- void rc_str2tm(char const *, struct tm *);
 
- char *rc_getifname(rc_handle *, char const *);
 
- char *rc_getstr(rc_handle *, char const *, int);
 
- void rc_mdelay(int);
 
- char *rc_mksid(rc_handle *);
 
- rc_handle *rc_new(void);
 
- void rc_destroy(rc_handle *);
 
- //char *rc_fgetln(FILE *, size_t *);
 
- double rc_getctime(void);
 
- /* env.c */
 
- struct env *rc_new_env(int);
 
- void rc_free_env(struct env *);
 
- int rc_add_env(struct env *, char const *, char const *);
 
- int rc_import_env(struct env *, char const **);
 
- /* md5.c */
 
- void rc_md5_calc(unsigned char *, unsigned char const *, unsigned int);
 
- __END_DECLS
 
- #endif /* FREERADIUS_CLIENT_H */
 
 
  |