The FIXME in rlm_eap_gtc.c has gone on so long unloved. God said, let
there be xlat'ing and so there was...
This patch shamelessly steals the xlat functionality in
rlm_eap_tls.c and slaps it into rlm_eap_gtc.c, thus lettings
you do handy things such as:
----
challenge = "%{reply:Reply-Message}"
----
Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
*/
static int gtc_initiate(void *type_data, EAP_HANDLER *handler)
{
*/
static int gtc_initiate(void *type_data, EAP_HANDLER *handler)
{
+ char challenge_str[1024];
int length;
EAP_DS *eap_ds = handler->eap_ds;
rlm_eap_gtc_t *inst = (rlm_eap_gtc_t *) type_data;
int length;
EAP_DS *eap_ds = handler->eap_ds;
rlm_eap_gtc_t *inst = (rlm_eap_gtc_t *) type_data;
- /*
- * FIXME: call radius_xlat on the challenge
- */
- length = strlen(inst->challenge);
+ if (!radius_xlat(challenge_str, sizeof(challenge_str), inst->challenge, handler->request, NULL)) {
+ radlog(L_ERR, "rlm_eap_gtc: xlat failed.", inst->challenge);
+ return 0;
+ }
+
+ length = strlen(challenge_str);
/*
* We're sending a request...
/*
* We're sending a request...
- memcpy(eap_ds->request->type.data, inst->challenge, length);
+ memcpy(eap_ds->request->type.data, challenge_str, length);
eap_ds->request->type.length = length;
/*
eap_ds->request->type.length = length;
/*