char *func_checksimul;
char *func_detach;
char *func_xlat;
+#ifdef WITH_PROXY
char *func_pre_proxy;
char *func_post_proxy;
+#endif
char *func_post_auth;
#ifdef WITH_COA
char *func_recv_coa;
offsetof(PERL_INST,func_detach), NULL, "detach"},
{ "func_xlat", PW_TYPE_STRING_PTR,
offsetof(PERL_INST,func_xlat), NULL, "xlat"},
+#ifdef WITH_PROXY
{ "func_pre_proxy", PW_TYPE_STRING_PTR,
offsetof(PERL_INST,func_pre_proxy), NULL, "pre_proxy"},
{ "func_post_proxy", PW_TYPE_STRING_PTR,
offsetof(PERL_INST,func_post_proxy), NULL, "post_proxy"},
+#endif
{ "func_post_auth", PW_TYPE_STRING_PTR,
offsetof(PERL_INST,func_post_auth), NULL, "post_auth"},
#ifdef WITH_COA
HV *rad_check_hv;
HV *rad_config_hv;
HV *rad_request_hv;
+#ifdef WITH_PROXY
HV *rad_request_proxy_hv;
HV *rad_request_proxy_reply_hv;
+#endif
AV *end_AV;
char **embed;
rad_check_hv = newHV();
rad_config_hv = newHV();
rad_request_hv = newHV();
+#ifdef WITH_PROXY
rad_request_proxy_hv = newHV();
rad_request_proxy_reply_hv = newHV();
+#endif
rad_reply_hv = get_hv("RAD_REPLY",1);
rad_check_hv = get_hv("RAD_CHECK",1);
rad_config_hv = get_hv("RAD_CONFIG",1);
rad_request_hv = get_hv("RAD_REQUEST",1);
+#ifdef WITH_PROXY
rad_request_proxy_hv = get_hv("RAD_REQUEST_PROXY",1);
rad_request_proxy_reply_hv = get_hv("RAD_REQUEST_PROXY_REPLY",1);
+#endif
xlat_name = cf_section_name2(conf);
if (xlat_name == NULL)
HV *rad_check_hv;
HV *rad_config_hv;
HV *rad_request_hv;
+#ifdef WITH_PROXY
HV *rad_request_proxy_hv;
HV *rad_request_proxy_reply_hv;
+#endif
#ifdef USE_ITHREADS
PerlInterpreter *interp;
rad_check_hv = get_hv("RAD_CHECK",1);
rad_config_hv = get_hv("RAD_CONFIG",1);
rad_request_hv = get_hv("RAD_REQUEST",1);
+#ifdef WITH_PROXY
rad_request_proxy_hv = get_hv("RAD_REQUEST_PROXY",1);
rad_request_proxy_reply_hv = get_hv("RAD_REQUEST_PROXY_REPLY",1);
-
+#endif
perl_store_vps(request->reply->vps, rad_reply_hv);
perl_store_vps(request->config_items, rad_check_hv);
perl_store_vps(request->packet->vps, rad_request_hv);
perl_store_vps(request->config_items, rad_config_hv);
+#ifdef WITH_PROXY
if (request->proxy != NULL) {
perl_store_vps(request->proxy->vps, rad_request_proxy_hv);
} else {
} else {
hv_undef(rad_request_proxy_reply_hv);
}
+#endif
PUSHMARK(SP);
/*
vp = NULL;
}
+#ifdef WITH_PROXY
if (request->proxy &&
(get_hv_content(rad_request_proxy_hv, &vp) > 0)) {
pairfree(&request->proxy->vps);
request->proxy_reply->vps = vp;
vp = NULL;
}
+#endif
}
return exitstatus;
return rlmperl_call(instance, request,
((PERL_INST *)instance)->func_checksimul);
}
+
+#ifdef WITH_PROXY
/*
* Pre-Proxy request
*/
return rlmperl_call(instance, request,
((PERL_INST *)instance)->func_post_proxy);
}
+#endif
+
/*
* Pre-Auth request
*/
perl_preacct, /* preacct */
perl_accounting, /* accounting */
perl_checksimul, /* check simul */
+#ifdef WITH_PROXY
perl_pre_proxy, /* pre-proxy */
perl_post_proxy, /* post-proxy */
+#else
+ NULL, NULL,
+#endif
perl_post_auth /* post-auth */
#ifdef WITH_COA
, perl_recv_coa,