rad_listen_send_t send;
rad_listen_encode_t encode;
rad_listen_decode_t decode;
+ rad_listen_encode_t proxy_encode;
+ rad_listen_decode_t proxy_decode;
rad_listen_print_t print;
CONF_SECTION const *cs;
this->recv = master_listen[this->type].recv;
this->send = master_listen[this->type].send;
this->print = master_listen[this->type].print;
- this->encode = master_listen[this->type].encode;
- this->decode = master_listen[this->type].decode;
+
+ if (type != RAD_LISTEN_PROXY) {
+ this->encode = master_listen[this->type].encode;
+ this->decode = master_listen[this->type].decode;
+ } else {
+ this->proxy_encode = master_listen[this->type].encode;
+ this->proxy_decode = master_listen[this->type].decode;
+ }
talloc_set_destructor(this, _listener_free);
* Decode the packet if required.
*/
if (request->proxy_listener) {
- rcode = request->proxy_listener->decode(request->proxy_listener, request);
+ rcode = request->proxy_listener->proxy_decode(request->proxy_listener, request);
debug_packet(request, reply, true);
/*
/*
* Encode the packet before we do anything else.
*/
- request->proxy_listener->encode(request->proxy_listener, request);
+ request->proxy_listener->proxy_encode(request->proxy_listener, request);
debug_packet(request, request->proxy, false);
/*
/*
* Encode the packet before we do anything else.
*/
- coa->proxy_listener->encode(coa->proxy_listener, coa);
+ coa->proxy_listener->proxy_encode(coa->proxy_listener, coa);
debug_packet(coa, coa->proxy, false);
#ifdef DEBUG_STATE_MACHINE