From: Matthew Newton Date: Tue, 8 Aug 2023 22:15:40 +0000 (+0100) Subject: permit sending CoA after proxying to an internal virtual server X-Git-Tag: release_3_2_4~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7eaee8b710e3a54e0508c9eb71ef5c27958ec6ac;p=thirdparty%2Ffreeradius-server.git permit sending CoA after proxying to an internal virtual server --- diff --git a/src/main/process.c b/src/main/process.c index c18894cc098..e1465287fb7 100644 --- a/src/main/process.c +++ b/src/main/process.c @@ -1486,7 +1486,7 @@ static void request_finish(REQUEST *request, int action) /* * Maybe originate a CoA request. */ - if ((action == FR_ACTION_RUN) && !request->proxy && request->coa) { + if ((action == FR_ACTION_RUN) && (!request->proxy || request->proxy->dst_port == 0) && request->coa) { request_coa_originate(request); } #endif @@ -4562,9 +4562,9 @@ static void request_coa_originate(REQUEST *request) VERIFY_REQUEST(request); rad_assert(request->coa != NULL); - rad_assert(request->proxy == NULL); + rad_assert(request->proxy == NULL || request->proxy->dst_port == 0); rad_assert(!request->in_proxy_hash); - rad_assert(request->proxy_reply == NULL); + rad_assert(request->proxy_reply == NULL || request->proxy_reply->src_port == 0); /* * Check whether we want to originate one, or cancel one.