void *opaque;
void (*free_opaque)(void *opaque);
+ void *inst_holder;
int status;
return handler;
}
+void eap_opaque_free(EAP_HANDLER *handler)
+{
+ if (!handler)
+ return;
+
+ eap_handler_free(handler->inst_holder, handler);
+}
+
void eap_handler_free(rlm_eap_t *inst, EAP_HANDLER *handler)
{
if (!handler)
* can retrieve it in the post-proxy stage, and
* send a response.
*/
+ handler->inst_holder = inst;
rcode = request_data_add(request,
inst, REQUEST_DATA_EAP_HANDLER,
handler,
- (void *) eap_handler_free);
+ (void *) eap_opaque_free);
rad_assert(rcode == 0);
return RLM_MODULE_HANDLED;
* can retrieve it in the post-proxy stage, and
* send a response.
*/
+ handler->inst_holder = inst;
rcode = request_data_add(request,
inst, REQUEST_DATA_EAP_HANDLER,
handler,
- (void *) eap_handler_free);
+ (void *) eap_opaque_free);
rad_assert(rcode == 0);
/*
EAP_HANDLER *eap_handler_alloc(rlm_eap_t *inst);
void eap_packet_free(EAP_PACKET **eap_packet);
void eap_ds_free(EAP_DS **eap_ds);
+void eap_opaque_free(EAP_HANDLER *handler);
void eap_handler_free(rlm_eap_t *inst, EAP_HANDLER *handler);
int eaplist_add(rlm_eap_t *inst, EAP_HANDLER *handler);
request->proxy = fake->packet;
memset(&request->proxy->src_ipaddr, 0,
sizeof(request->proxy->src_ipaddr));
- memset(&request->proxy->src_ipaddr, 0,
- sizeof(request->proxy->src_ipaddr));
+ memset(&request->proxy->dst_ipaddr, 0,
+ sizeof(request->proxy->dst_ipaddr));
request->proxy->src_port = 0;
request->proxy->dst_port = 0;
fake->packet = NULL;