# error Reverse CoA requests requires TLS
# endif
#endif
+
+#ifdef WITH_RADIUSV11_ONLY
+# define WITH_RADIUSV11
+#else
+# ifndef WITHOUT_RADIUSV11
+# define WITH_RADIUSV11
+#endif
+#endif
+
+#ifdef WITH_RADIUSV11
+# ifndef WITH_TLS
+# error RADIUSv11 requires TLS
+# endif
+#endif
size_t partial;
int proto;
#endif
+#ifdef WITH_RADIUSV11
+ bool radiusv11;
+#endif
} RADIUS_PACKET;
typedef enum {
DECODE_FAIL_MAX
} decode_fail_t;
+#ifdef WITH_RADIUSV11
+typedef enum {
+ FR_RADIUSV11_FORBID = 0,
+ FR_RADIUSV11_ALLOW,
+ FR_RADIUSV11_REQUIRE,
+} fr_radiusv11_t;
+#endif
+
/*
* Version check.
*/
RADIUS_PACKET *rad_copy_packet(TALLOC_CTX *ctx, RADIUS_PACKET const *in);
void rad_free(RADIUS_PACKET **);
+
+#ifndef WITH_RADIUSV11_ONLY
int rad_pwencode(char *encpw, size_t *len, char const *secret,
uint8_t const *vector);
int rad_pwdecode(char *encpw, size_t len, char const *secret,
char const *secret, uint8_t const *vector);
int rad_chap_encode(RADIUS_PACKET *packet, uint8_t *output,
int id, VALUE_PAIR *password);
+#endif
int rad_attr_ok(RADIUS_PACKET const *packet, RADIUS_PACKET const *original,
DICT_ATTR *da, uint8_t const *data, size_t length);
bool check_client_connections;
bool nonblock;
bool blocked;
+#ifdef WITH_RADIUSV11
+ fr_radiusv11_t radiusv11;
+#endif
#ifdef WITH_COA_TUNNEL
char const *key; /* Originating-Realm-Key */