#ifndef RADIUSCLIENT_H
#define RADIUSCLIENT_H
-#include <sys/types.h>
-#include <stdio.h>
-#include <time.h>
-#include "pppd.h"
+#include <sys/types.h>
+#include <stdio.h>
+#include <time.h>
+#include <stdbool.h>
+
+#include <pppd/pppd.h>
+#include <pppd/options.h>
#ifndef _UINT4_T
/* This works for all machines that Linux runs on... */
#define AUTH_VECTOR_LEN 16
#define AUTH_PASS_LEN (3 * 16) /* multiple of 16 */
#define AUTH_ID_LEN 64
-#define AUTH_STRING_LEN 128 /* maximum of 253 */
+#define AUTH_STRING_LEN 253 /* maximum of 253 */
#define BUFFER_LEN 8192
#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
/* standard RADIUS codes */
#define PW_ACCT_LINK_COUNT 51 /* integer */
/* From RFC 2869 */
+#define PW_ACCT_INPUT_GIGAWORDS 52 /* integer */
+#define PW_ACCT_OUTPUT_GIGAWORDS 53 /* integer */
#define PW_ACCT_INTERIM_INTERVAL 85 /* integer */
/* Merit Experimental Extensions */
/* avpair.c */
-VALUE_PAIR *rc_avpair_add(VALUE_PAIR **, int, void *, int, int);
-int rc_avpair_assign(VALUE_PAIR *, void *, int);
-VALUE_PAIR *rc_avpair_new(int, void *, int, int);
+VALUE_PAIR *rc_avpair_add(VALUE_PAIR **, int, const void *, int, int);
+int rc_avpair_assign(VALUE_PAIR *, const void *, int);
+VALUE_PAIR *rc_avpair_new(int, const void *, int, int);
VALUE_PAIR *rc_avpair_gen(AUTH_HDR *);
VALUE_PAIR *rc_avpair_get(VALUE_PAIR *, UINT4);
VALUE_PAIR *rc_avpair_copy(VALUE_PAIR *);
/* clientid.c */
int rc_read_mapfile(char *);
-UINT4 rc_map2id(char *);
+UINT4 rc_map2id(const char *);
/* config.c */
/* ip_util.c */
-UINT4 rc_get_ipaddr(char *);
-int rc_good_ipaddr(char *);
+UINT4 rc_get_ipaddr(const char *);
+int rc_good_ipaddr(const char *);
const char *rc_ip_hostname(UINT4);
UINT4 rc_own_ipaddress(void);
UINT4 rc_own_bind_ipaddress(void);
/* md5.c */
-void rc_md5_calc(unsigned char *, unsigned char *, unsigned int);
+int rc_md5_calc(unsigned char *out, const unsigned char *in, unsigned int inl);
#endif /* RADIUSCLIENT_H */