#
# allowed values: {no, yes}
use_tunneled_reply = no
+
+ #
+ # The inner tunneled request can be sent
+ # through a virtual server constructed
+ # specifically for this purpose.
+ #
+ # If this entry is commented out, the inner
+ # tunneled request will be sent through
+ # the virtual server that processed the
+ # outer requests.
+ #
+ #virtual_server = "inner-tunnel"
}
##################################################
# Set this entry to "no" to proxy the tunneled
# EAP-MSCHAP-V2 as normal MSCHAPv2.
# proxy_tunneled_request_as_eap = yes
+
+ #
+ # The inner tunneled request can be sent
+ # through a virtual server constructed
+ # specifically for this purpose.
+ #
+ # If this entry is commented out, the inner
+ # tunneled request will be sent through
+ # the virtual server that processed the
+ # outer requests.
+ #
+ #virtual_server = "inner-tunnel"
}
#
int copy_request_to_tunnel;
int use_tunneled_reply;
int proxy_tunneled_request_as_eap;
+ const char *virtual_server;
} peap_tunnel_t;
#define PEAP_STATUS_START_PART2 0
if ((vp = pairfind(request->config_items, PW_VIRTUAL_SERVER)) != NULL) {
fake->server = vp->vp_strvalue;
- }
+
+ } else if (t->virtual_server) {
+ fake->server = t->virtual_server;
+
+ } /* else fake->server == request->server */
#ifndef NDEBUG
if (debug_flag > 0) {
* protocol.
*/
int proxy_tunneled_request_as_eap;
+
+ /*
+ * Virtual server for inner tunnel session.
+ */
+ char *virtual_server;
} rlm_eap_peap_t;
{ "proxy_tunneled_request_as_eap", PW_TYPE_BOOLEAN,
offsetof(rlm_eap_peap_t, proxy_tunneled_request_as_eap), NULL, "yes" },
+ { "virtual_server", PW_TYPE_STRING_PTR,
+ offsetof(rlm_eap_peap_t, virtual_server), NULL, NULL },
+
{ NULL, -1, 0, NULL, NULL } /* end the list */
};
t->copy_request_to_tunnel = inst->copy_request_to_tunnel;
t->use_tunneled_reply = inst->use_tunneled_reply;
t->proxy_tunneled_request_as_eap = inst->proxy_tunneled_request_as_eap;
+ t->virtual_server = inst->virtual_server;
return t;
}
int default_eap_type;
int copy_request_to_tunnel;
int use_tunneled_reply;
+ const char *virtual_server;
} ttls_tunnel_t;
/*
* tunneled session in the tunneled request
*/
int copy_request_to_tunnel;
+
+ /*
+ * Virtual server for inner tunnel session.
+ */
+ char *virtual_server;
} rlm_eap_ttls_t;
{ "use_tunneled_reply", PW_TYPE_BOOLEAN,
offsetof(rlm_eap_ttls_t, use_tunneled_reply), NULL, "no" },
+ { "virtual_server", PW_TYPE_STRING_PTR,
+ offsetof(rlm_eap_ttls_t, virtual_server), NULL, NULL },
+
{ NULL, -1, 0, NULL, NULL } /* end the list */
};
t->default_eap_type = inst->default_eap_type;
t->copy_request_to_tunnel = inst->copy_request_to_tunnel;
t->use_tunneled_reply = inst->use_tunneled_reply;
+ t->virtual_server = inst->virtual_server;
return t;
}
if ((vp = pairfind(request->config_items, PW_VIRTUAL_SERVER)) != NULL) {
fake->server = vp->vp_strvalue;
- }
+
+ } else if (t->virtual_server) {
+ fake->server = t->virtual_server;
+
+ } /* else fake->server == request->server */
+
#ifndef NDEBUG
if (debug_flag > 0) {