From: Maxim Mamontov <faust@faust-desktop.(none)>
Date: Wed, 17 Nov 2010 17:00:09 +0000 (+0200)
Subject: Множественные мелкие хаки для того чтобы rlm_stg собирался для FreeRADIUS-2.*
X-Git-Tag: 2.407-rc3~361
X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/dabab7c78d2a621f1a6c22b14ec29b7fa7f4ad6e?ds=inline

Множественные мелкие хаки для того чтобы rlm_stg собирался для FreeRADIUS-2.*
---

diff --git a/projects/rlm_stg/conffile.h b/projects/rlm_stg/conffile.h
index e940e115..8998c36d 100644
--- a/projects/rlm_stg/conffile.h
+++ b/projects/rlm_stg/conffile.h
@@ -8,11 +8,12 @@
  *
  */
 
-#include <freeradius/ident.h>
-RCSIDH(conffile_h, "$Id: conffile.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(conffile_h, "$Id: conffile.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
 #include <stddef.h>
-#include <freeradius/token.h>
+//#include <freeradius/token.h>
+#include "libradius.h"
 
 /*
  * Export the minimum amount of information about these structs
diff --git a/projects/rlm_stg/event.h b/projects/rlm_stg/event.h
index 704f13cc..83a72d01 100644
--- a/projects/rlm_stg/event.h
+++ b/projects/rlm_stg/event.h
@@ -24,8 +24,8 @@
  * Copyright 2007 Alan DeKok <aland@deployingradius.com>
  */
 
-#include <freeradius/ident.h>
-RCSIDH(event_h, "$Id: event.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(event_h, "$Id: event.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
 typedef struct fr_event_list_t fr_event_list_t;
 typedef struct fr_event_t fr_event_t;
diff --git a/projects/rlm_stg/libradius.h b/projects/rlm_stg/libradius.h
index b184a75a..ea35a2a7 100644
--- a/projects/rlm_stg/libradius.h
+++ b/projects/rlm_stg/libradius.h
@@ -24,8 +24,8 @@
  * Copyright 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008  The FreeRADIUS server project
  */
 
-#include <freeradius/ident.h>
-RCSIDH(libradius_h, "$Id: libradius.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(libradius_h, "$Id: libradius.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
 #include <errno.h>
 
@@ -37,9 +37,10 @@ RCSIDH(libradius_h, "$Id: libradius.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 #include <netinet/in.h>
 #include <sys/socket.h>
 
-#include <freeradius/radius.h>
-#include <freeradius/token.h>
-#include <freeradius/hash.h>
+/*#include <freeradius/radius.h>
+#include <freeradius/hash.h>*/
+
+#include "token.h"
 
 #ifdef SIZEOF_UNSIGNED_INT
 #if SIZEOF_UNSIGNED_INT != 4
@@ -50,8 +51,8 @@ RCSIDH(libradius_h, "$Id: libradius.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 /*
  *  Include for modules.
  */
-#include <freeradius/sha1.h>
-#include <freeradius/md4.h>
+/*#include <freeradius/sha1.h>
+#include <freeradius/md4.h>*/
 
 #define EAP_START               2
 
@@ -465,6 +466,6 @@ void *fr_fifo_pop(fr_fifo_t *fi);
 void *fr_fifo_peek(fr_fifo_t *fi);
 int fr_fifo_num_elements(fr_fifo_t *fi);
 
-#include <freeradius/packet.h>
+//#include <freeradius/packet.h>
 
 #endif /*LIBRADIUS_H*/
diff --git a/projects/rlm_stg/modules.h b/projects/rlm_stg/modules.h
index e241ca80..cb49f478 100644
--- a/projects/rlm_stg/modules.h
+++ b/projects/rlm_stg/modules.h
@@ -8,10 +8,11 @@
 #ifndef RADIUS_MODULES_H
 #define RADIUS_MODULES_H
 
-#include <freeradius/ident.h>
-RCSIDH(modules_h, "$Id: modules.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(modules_h, "$Id: modules.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
-#include "conffile.h"
+//#include "conffile.h"
+#include "radiusd.h"
 
 typedef int (*packetmethod)(void *instance, REQUEST *request);
 
diff --git a/projects/rlm_stg/radius.h b/projects/rlm_stg/radius.h
new file mode 100644
index 00000000..3cf50282
--- /dev/null
+++ b/projects/rlm_stg/radius.h
@@ -0,0 +1,346 @@
+/*
+ * radius.h	Constants of the radius protocol.
+ *
+ * Version:	$Id$
+ *
+ */
+
+
+#define PW_TYPE_STRING			0
+#define PW_TYPE_INTEGER			1
+#define PW_TYPE_IPADDR			2
+#define PW_TYPE_DATE			3
+#define PW_TYPE_ABINARY			4
+#define PW_TYPE_OCTETS			5
+#define PW_TYPE_IFID			6
+#define PW_TYPE_IPV6ADDR		7
+#define PW_TYPE_IPV6PREFIX		8
+#define PW_TYPE_BYTE			9
+#define PW_TYPE_SHORT			10
+#define PW_TYPE_ETHERNET	       	11
+#define PW_TYPE_SIGNED			12
+#define PW_TYPE_COMBO_IP	       	13
+#define PW_TYPE_TLV	       		14
+
+#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
+#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
+#define PW_DISCONNECT_REQUEST		40
+#define PW_DISCONNECT_ACK		41
+#define PW_DISCONNECT_NAK		42
+#define PW_COA_REQUEST			43
+#define PW_COA_ACK			44
+#define PW_COA_NAK			45
+
+#define PW_AUTH_UDP_PORT                1812
+#define PW_ACCT_UDP_PORT                1813
+#define PW_POD_UDP_PORT			1700
+#define PW_COA_UDP_PORT			3799
+
+#define	PW_USER_NAME			1
+#define	PW_USER_PASSWORD		2
+#define	PW_PASSWORD			2
+#define	PW_CHAP_PASSWORD		3
+#define	PW_NAS_IP_ADDRESS		4
+#define	PW_NAS_PORT			5
+#define	PW_SERVICE_TYPE			6
+#define	PW_FRAMED_PROTOCOL		7
+#define	PW_FRAMED_IP_ADDRESS		8
+#define	PW_FRAMED_IP_NETMASK		9
+#define	PW_FRAMED_ROUTING		10
+#define	PW_FILTER_ID			11
+#define	PW_FRAMED_MTU			12
+#define	PW_FRAMED_COMPRESSION		13
+#define	PW_LOGIN_IP_HOST		14
+#define	PW_LOGIN_SERVICE		15
+#define	PW_LOGIN_TCP_PORT		16
+#define PW_OLD_PASSWORD			17
+#define PW_REPLY_MESSAGE		18
+#define PW_CALLBACK_NUMBER		19
+#define PW_CALLBACK_ID			20
+#if 0
+/*
+ *  Deprecated, and no longer used.
+ */
+#define PW_EXPIRATION			21
+#endif
+#define PW_FRAMED_ROUTE			22
+#define PW_FRAMED_IPXNET		23
+#define PW_STATE			24
+#define PW_CLASS			25
+#define PW_VENDOR_SPECIFIC		26
+#define PW_SESSION_TIMEOUT		27
+#define PW_IDLE_TIMEOUT			28
+#define PW_CALLED_STATION_ID		30
+#define PW_CALLING_STATION_ID		31
+#define PW_NAS_IDENTIFIER		32
+#define PW_PROXY_STATE			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_ACCT_INPUT_PACKETS		47
+#define PW_ACCT_OUTPUT_PACKETS		48
+#define PW_ACCT_TERMINATE_CAUSE		49
+
+#define PW_EVENT_TIMESTAMP		55
+
+#define PW_CHAP_CHALLENGE		60
+#define PW_NAS_PORT_TYPE		61
+#define PW_PORT_LIMIT			62
+
+#define PW_ARAP_PASSWORD		70
+#define PW_ARAP_FEATURES		71
+#define PW_ARAP_ZONE_ACCESS		72
+#define PW_ARAP_SECURITY		73
+#define PW_ARAP_SECURITY_DATA		74
+#define PW_PASSWORD_RETRY		75
+#define PW_PROMPT			76
+#define PW_CONNECT_INFO			77
+#define PW_CONFIGURATION_TOKEN		78
+#define PW_EAP_MESSAGE                  79
+#define PW_MESSAGE_AUTHENTICATOR        80
+
+#define PW_ARAP_CHALLENGE_RESPONSE	84
+#define PW_NAS_PORT_ID_STRING  		87
+#define PW_FRAMED_POOL			88
+#define PW_CHARGEABLE_USER_IDENTITY	89
+#define PW_NAS_IPV6_ADDRESS		95
+
+#define PW_EXTENDED_ATTRIBUTE		192
+
+#define PW_DIGEST_RESPONSE		206
+#define PW_DIGEST_ATTRIBUTES		207
+
+#define PW_FALL_THROUGH			500
+#define PW_EXEC_PROGRAM			502
+#define PW_EXEC_PROGRAM_WAIT		503
+
+#define PW_AUTH_TYPE			1000
+#define PW_PREFIX			1003
+#define PW_SUFFIX			1004
+#define PW_GROUP			1005
+#define PW_CRYPT_PASSWORD		1006
+#define PW_CONNECT_RATE			1007
+#define PW_ADD_PREFIX			1008
+#define PW_ADD_SUFFIX			1009
+#define PW_EXPIRATION			1010
+#define PW_AUTZ_TYPE			1011
+#define PW_ACCT_TYPE			1012
+#define PW_SESSION_TYPE			1013
+#define PW_POST_AUTH_TYPE		1014
+#define PW_PRE_PROXY_TYPE		1015
+#define PW_POST_PROXY_TYPE		1016
+#define PW_PRE_ACCT_TYPE		1017
+#define PW_EAP_TYPE			1018
+#define PW_EAP_TLS_REQUIRE_CLIENT_CERT	1019
+#define PW_CLIENT_SHORTNAME		1024
+#define PW_LOAD_BALANCE_KEY		1025
+#define PW_RAW_ATTRIBUTE		1026
+#define PW_TNC_VLAN_ACCESS		1027
+#define PW_TNC_VLAN_ISOLATE		1028
+#define PW_USER_CATEGORY		1029
+#define PW_GROUP_NAME			1030
+#define PW_HUNTGROUP_NAME		1031
+#define PW_SIMULTANEOUS_USE		1034
+#define PW_STRIP_USER_NAME		1035
+#define PW_HINT				1040
+#define PAM_AUTH_ATTR			1041
+#define PW_LOGIN_TIME			1042
+#define PW_STRIPPED_USER_NAME		1043
+#define PW_CURRENT_TIME			1044
+#define PW_REALM			1045
+#define PW_NO_SUCH_ATTRIBUTE		1046
+#define PW_PACKET_TYPE			1047
+#define PW_PROXY_TO_REALM      		1048
+#define PW_REPLICATE_TO_REALM  		1049
+#define PW_ACCT_SESSION_START_TIME	1050
+#define PW_ACCT_UNIQUE_SESSION_ID	1051
+#define PW_CLIENT_IP_ADDRESS		1052
+#define PW_LDAP_USERDN			1053
+#define PW_NS_MTA_MD5_PASSWORD		1054
+#define PW_SQL_USER_NAME  		1055
+#define PW_LM_PASSWORD			1057
+#define PW_NT_PASSWORD			1058
+#define PW_SMB_ACCOUNT_CTRL		1059
+#define PW_SMB_ACCOUNT_CTRL_TEXT	1061
+#define PW_USER_PROFILE			1062
+#define PW_DIGEST_REALM			1063
+#define PW_DIGEST_NONCE			1064
+#define PW_DIGEST_METHOD		1065
+#define PW_DIGEST_URI			1066
+#define PW_DIGEST_QOP			1067
+#define PW_DIGEST_ALGORITHM		1068
+#define PW_DIGEST_BODY_DIGEST		1069
+#define PW_DIGEST_CNONCE		1070
+#define PW_DIGEST_NONCE_COUNT		1071
+#define PW_DIGEST_USER_NAME		1072
+#define PW_POOL_NAME			1073
+#define PW_LDAP_GROUP			1074
+#define PW_MODULE_SUCCESS_MESSAGE	1075
+#define PW_MODULE_FAILURE_MESSAGE	1076
+#if 0 /* no longer used */
+#define PW_X99_FAST			1077
+#endif
+#define PW_REWRITE_RULE			1078
+#define PW_SQL_GROUP			1079
+#define PW_RESPONSE_PACKET_TYPE		1080
+#define PW_DIGEST_HA1			1081
+#define PW_MS_CHAP_USE_NTLM_AUTH	1082
+#define PW_MS_CHAP_USER_NAME		1083
+#define PW_PACKET_SRC_IP_ADDRESS	1084
+#define PW_PACKET_DST_IP_ADDRESS	1085
+#define PW_PACKET_SRC_PORT		1086
+#define PW_PACKET_DST_PORT		1087
+#define PW_PACKET_AUTHENTICATION_VECTOR	1088
+#define PW_TIME_OF_DAY			1089
+#define PW_REQUEST_PROCESSING_STAGE	1090
+#define PW_CACHE_NO_CACHING		1091
+#define PW_CACHE_DELETE_CACHE		1092
+
+#define PW_SHA_PASSWORD			1093
+#define PW_SSHA_PASSWORD		1094
+#define PW_MD5_PASSWORD			1095
+#define PW_SMD5_PASSWORD		1096
+
+#define PW_PACKET_SRC_IPV6_ADDRESS	1097
+#define PW_PACKET_DST_IPV6_ADDRESS	1098
+#define PW_VIRTUAL_SERVER		1099
+#define PW_CLEARTEXT_PASSWORD		1100
+#define PW_PASSWORD_WITH_HEADER		1101
+#define PW_SEND_COA_REQUEST		1107
+#define PW_MODULE_RETURN_CODE		1108
+#define PW_PACKET_ORIGINAL_TIMESTAMP   	1109
+#define PW_HOME_SERVER_POOL		1111
+#define PW_RECV_COA_TYPE   		1131
+#define PW_SEND_COA_TYPE   		1132
+#define PW_MSCHAP_PASSWORD		1133
+#define PW_PACKET_TRANSMIT_COUNTER     	1134
+#define PW_CACHED_SESSION_POLICY     	1135
+
+/*
+ *	Integer Translations
+ */
+
+/*	User Types	*/
+
+#define	PW_LOGIN_USER			1
+#define	PW_FRAMED_USER			2
+#define	PW_CALLBACK_LOGIN_USER		3
+#define	PW_CALLBACK_FRAMED_USER		4
+#define PW_OUTBOUND_USER		5
+#define PW_ADMINISTRATIVE_USER		6
+#define PW_NAS_PROMPT_USER		7
+#define PW_AUTHENTICATE_ONLY		8
+#define PW_CALLBACK_NAS_PROMPT		9
+
+/*	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_JACOBSEN_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_AUTHTYPE_LOCAL		0
+#define PW_AUTHTYPE_SYSTEM		1
+#define PW_AUTHTYPE_SECURID		2
+#define PW_AUTHTYPE_CRYPT		3
+#define PW_AUTHTYPE_REJECT		4
+#define PW_AUTHTYPE_ACTIVCARD		5
+#define PW_AUTHTYPE_EAP                 6
+#define PW_AUTHTYPE_ACCEPT		254
+#define PW_AUTHTYPE_MS_CHAP		1028
+
+/*	Port Types		*/
+
+#define PW_NAS_PORT_ASYNC		0
+#define PW_NAS_PORT_SYNC		1
+#define PW_NAS_PORT_ISDN		2
+#define PW_NAS_PORT_ISDN_V120		3
+#define PW_NAS_PORT_ISDN_V110		4
+
+/*	Status Types	*/
+
+#define PW_STATUS_START			1
+#define PW_STATUS_STOP			2
+#define PW_STATUS_ALIVE			3
+#define PW_STATUS_ACCOUNTING_ON		7
+#define PW_STATUS_ACCOUNTING_OFF	8
+
+/*
+ *  Vendor Private Enterprise Codes
+ */
+#define VENDORPEC_FREERADIUS	11344
+
+
+/*
+ * Vendor specific attributes
+ */
+#define PW_FREERADIUS_PROXIED_TO	((VENDORPEC_FREERADIUS<<16)|1)
+
+/*
+ *  Microsoft has vendor code 311.
+ */
+#define PW_MSCHAP_RESPONSE	((311 << 16) | 1)
+#define PW_MSCHAP_ERROR		((311 << 16) | 2)
+#define PW_MSCHAP_CHALLENGE	((311 << 16) | 11)
+#define PW_MSCHAP2_RESPONSE	((311 << 16) | 25)
+#define PW_MSCHAP2_SUCCESS	((311 << 16) | 26)
+
+
+/*
+ *  Old nonsense.  Will be deleted ASAP
+ */
+#define PW_AUTHTYPE			1000
+#define PW_AUTZTYPE			1011
+#define PW_ACCTTYPE			1012
+#define PW_SESSTYPE			1013
+#define PW_POSTAUTHTYPE			1014
+
+/*
+ *	Cisco's VLAN Query Protocol.
+ */
+#define PW_VQP_PACKET_TYPE		0x2b00
+#define PW_VQP_ERROR_CODE		0x2b01
+#define PW_VQP_SEQUENCE_NUMBER		0x2b02
+
+#define PW_VQP_CLIENT_IP_ADDRESS        0x2c01
+#define PW_VQP_PORT_NAME		0x2c02
+#define PW_VQP_VLAN_NAME		0x2c03
+#define PW_VQP_DOMAIN_NAME		0x2c04
+#define PW_VQP_ETHERNET_FRAME		0x2c05
+#define PW_VQP_MAC			0x2c06
+#define PW_VQP_UNKNOWN			0x2c07
+#define PW_VQP_COOKIE			0x2c08
diff --git a/projects/rlm_stg/radiusd.h b/projects/rlm_stg/radiusd.h
index 2b93ee3a..16fab301 100644
--- a/projects/rlm_stg/radiusd.h
+++ b/projects/rlm_stg/radiusd.h
@@ -24,12 +24,12 @@
  *
  */
 
-#include <freeradius/ident.h>
-RCSIDH(radiusd_h, "$Id: radiusd.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(radiusd_h, "$Id: radiusd.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
 #include "libradius.h"
-#include <freeradius/radpaths.h>
-#include "conf.h"
+//#include <freeradius/radpaths.h>
+//#include "conf.h"
 #include "conffile.h"
 #include "event.h"
 
@@ -100,7 +100,7 @@ typedef struct auth_req REQUEST;
 #endif
 
 #include "stats.h"
-#include "realms.h"
+/*#include "realms.h"*/
 
 
 /*
@@ -119,7 +119,7 @@ typedef struct radclient {
 	char			*login;
 	char			*password;
 	char			*server;
-	int			number;	/* internal use only */
+	int			number;
 	const CONF_SECTION	*cs;
 #ifdef WITH_STATS
 	fr_stats_t		*auth;
@@ -130,7 +130,7 @@ typedef struct radclient {
 
 #ifdef WITH_DYNAMIC_CLIENTS
 	int			lifetime;
-	int			dynamic; /* was dynamically defined */
+	int			dynamic;
 	time_t			created;
 	time_t			last_new_client;
 	char			*client_server;
diff --git a/projects/rlm_stg/realms.h b/projects/rlm_stg/realms.h
deleted file mode 100644
index 6b03bcd5..00000000
--- a/projects/rlm_stg/realms.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef REALMS_H
-#define REALMS_H
-
-/*
- * realms.h	Structures, prototypes and global variables
- *		for realms
- *
- * Version:	$Id: realms.h,v 1.1 2010/08/14 04:13:52 faust Exp $
- *
- */
-
-#include <freeradius/ident.h>
-RCSIDH(realms_h, "$Id: realms.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
-
-#define HOME_TYPE_INVALID (0)
-#define HOME_TYPE_AUTH    (1)
-#define HOME_TYPE_ACCT    (2)
-#ifdef WITH_COA
-#define HOME_TYPE_COA     (3)
-#endif
-
-#define HOME_PING_CHECK_NONE		(0)
-#define HOME_PING_CHECK_STATUS_SERVER	(1)
-#define HOME_PING_CHECK_REQUEST		(2)
-
-#define HOME_STATE_ALIVE		(0)
-#define HOME_STATE_ZOMBIE		(1)
-#define HOME_STATE_IS_DEAD		(2)
-
-typedef struct home_server {
-	const char	*name;
-
-	const char	*hostname;
-	const char	*server; /* for internal proxying */
-
-	fr_ipaddr_t	ipaddr;
-
-	int		port;
-	int		type;		/* auth/acct */
-
-	/*
-	 *	Maybe also have list of source IP/ports, && socket?
-	 */
-
-	const char	*secret;
-
-	fr_event_t	*ev;
-	struct timeval	when;
-
-	int		response_window;
-	int		no_response_fail;
-	int		max_outstanding; /* don't overload it */
-	int		currently_outstanding;
-	int		message_authenticator;
-
-	struct timeval	revive_time;
-	struct timeval	zombie_period_start;
-	int		zombie_period; /* unresponsive for T, mark it dead */
-
-	int		state;
-
-	int		ping_check;
-	const char	*ping_user_name;
-	const char	*ping_user_password;
-
-	int		ping_interval;
-	int		num_pings_to_alive;
-	int		num_received_pings;
-	int		ping_timeout;
-
-	int		revive_interval; /* if it doesn't support pings */
-	CONF_SECTION	*cs;
-#ifdef WITH_COA
-	int			coa_irt;
-	int			coa_mrc;
-	int			coa_mrt;
-	int			coa_mrd;
-#endif
-#ifdef WITH_STATS
-	int		number;
-
-	fr_ipaddr_t	src_ipaddr; /* preferred source IP address */
-
-	fr_stats_t	stats;
-
-	fr_stats_ema_t  ema;
-#endif
-} home_server;
-
-
-typedef enum home_pool_type_t {
-	HOME_POOL_INVALID = 0,
-	HOME_POOL_LOAD_BALANCE,
-	HOME_POOL_FAIL_OVER,
-	HOME_POOL_CLIENT_BALANCE,
-	HOME_POOL_CLIENT_PORT_BALANCE,
-	HOME_POOL_KEYED_BALANCE
-} home_pool_type_t;
-
-
-typedef struct home_pool_t {
-	const char		*name;
-	home_pool_type_t	type;
-
-	int			server_type;
-	CONF_SECTION		*cs;
-
-	const char		*virtual_server; /* for pre/post-proxy */
-	
-	home_server		*fallback;
-
-	int			num_home_servers;
-	home_server		*servers[1];
-} home_pool_t;
-
-
-typedef struct _realm {
-	const char		*name;
-
-	int			striprealm;
-
-	home_pool_t		*auth_pool;
-	home_pool_t		*acct_pool;
-} REALM;
-
-int realms_init(CONF_SECTION *config);
-void realms_free(void);
-REALM *realm_find(const char *name); /* name is from a packet */
-REALM *realm_find2(const char *name); /* ... with name taken from realm_find */
-
-home_server *home_server_ldb(const char *realmname, home_pool_t *pool, REQUEST *request);
-home_server *home_server_find(fr_ipaddr_t *ipaddr, int port);
-int	home_server_create_listeners(void *head);
-#ifdef WITH_COA
-home_server *home_server_byname(const char *name, int type);
-#endif
-#ifdef WITH_STATS
-home_server *home_server_bynumber(int number);
-#endif
-home_pool_t *home_pool_byname(const char *name, int type);
-
-#endif /* REALMS_H */
diff --git a/projects/rlm_stg/rlm_stg.cpp b/projects/rlm_stg/rlm_stg.cpp
index f3860cf4..c5b5d7d9 100644
--- a/projects/rlm_stg/rlm_stg.cpp
+++ b/projects/rlm_stg/rlm_stg.cpp
@@ -31,10 +31,8 @@
 #include <cstring>
 
 extern "C" {
-//#include <freeradius/libradius.h>
-#include "radiusd.h"
+#include "radius.h"
 #include "modules.h"
-//#include <freeradius/conffile.h>
 }
 
 #include "stg_client.h"
diff --git a/projects/rlm_stg/stats.h b/projects/rlm_stg/stats.h
index f584cba6..88ef1730 100644
--- a/projects/rlm_stg/stats.h
+++ b/projects/rlm_stg/stats.h
@@ -23,8 +23,8 @@
  * Copyright 2005,2006,2007,2008  The FreeRADIUS server project
  */
 
-#include <freeradius/ident.h>
-RCSIDH(stats_h, "$Id: stats.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
+//#include <freeradius/ident.h>
+//RCSIDH(stats_h, "$Id: stats.h,v 1.1 2010/08/14 04:13:52 faust Exp $")
 
 #ifdef WITH_STATS_64BIT
 typedef uint64_t fr_uint_t;
diff --git a/projects/rlm_stg/token.h b/projects/rlm_stg/token.h
new file mode 100644
index 00000000..0f553788
--- /dev/null
+++ b/projects/rlm_stg/token.h
@@ -0,0 +1,79 @@
+#ifndef FR_TOKEN_H
+#define FR_TOKEN_H
+
+/*
+ * token.h	Special tokens.
+ *
+ * $Id$
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ * Copyright 2001,2006  The FreeRADIUS server project
+ */
+
+//#include <freeradius-devel/ident.h>
+//RCSIDH(token_h, "$Id$")
+
+typedef enum fr_token_t {
+  T_OP_INVALID = 0,		/* invalid token */
+  T_EOL,			/* end of line */
+  T_LCBRACE,			/* { */
+  T_RCBRACE,			/* } */
+  T_LBRACE,			/* ( */
+  T_RBRACE,			/* ) 		 5 */
+  T_COMMA,			/* , */
+  T_SEMICOLON,			/* ; */
+
+  T_OP_ADD,			/* += */
+  T_OP_SUB,			/* -= */
+  T_OP_SET,			/* := 		10 */
+  T_OP_EQ,			/* = */
+  T_OP_NE,			/* != */
+  T_OP_GE,			/* >= */
+  T_OP_GT,			/* > */
+  T_OP_LE,			/* <= 		15 */
+  T_OP_LT,			/* < */
+  T_OP_REG_EQ,			/* =~ */
+  T_OP_REG_NE,			/* !~ */
+  T_OP_CMP_TRUE,                /* =* */
+  T_OP_CMP_FALSE,               /* !* 		20 */
+  T_OP_CMP_EQ,			/* == */
+  T_HASH,			/* # */
+  T_BARE_WORD,			/* bare word */
+  T_DOUBLE_QUOTED_STRING,	/* "foo" */
+  T_SINGLE_QUOTED_STRING,	/* 'foo' 	25 */
+  T_BACK_QUOTED_STRING,		/* `foo` */
+  T_TOKEN_LAST
+} FR_TOKEN;
+
+#define T_EQSTART	T_OP_ADD
+#define	T_EQEND		(T_OP_CMP_EQ + 1)
+
+typedef struct FR_NAME_NUMBER {
+	const char	*name;
+	int		number;
+} FR_NAME_NUMBER;
+
+int fr_str2int(const FR_NAME_NUMBER *table, const char *name, int def);
+const char *fr_int2str(const FR_NAME_NUMBER *table, int number,
+			 const char *def);
+
+
+int		getword (const char **ptr, char *buf, int buflen);
+int		getbareword (const char **ptr, char *buf, int buflen);
+FR_TOKEN	gettoken(const char **ptr, char *buf, int buflen);
+FR_TOKEN	getstring(const char **ptr, char *buf, int buflen);
+
+#endif /* FR_TOKEN_H */