From: Alan T. DeKok Date: Thu, 28 May 2015 16:07:46 +0000 (-0400) Subject: Be more careful when originating CoA requests X-Git-Tag: release_3_0_9~314 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2429ea3b5613706a7bb6da4e6eb830232da7c7bb;p=thirdparty%2Ffreeradius-server.git Be more careful when originating CoA requests And document the process a bit more --- diff --git a/src/main/process.c b/src/main/process.c index 83acc46a83b..a20ea982504 100644 --- a/src/main/process.c +++ b/src/main/process.c @@ -4109,8 +4109,6 @@ static void request_coa_originate(REQUEST *request) child_state_names[REQUEST_PROXIED]); #endif - if (we_are_master()) coa_separate(request->coa); - /* * Set the state function, then the state, no child, and * send the packet. @@ -4127,7 +4125,7 @@ static void request_coa_originate(REQUEST *request) */ coa->proxy_listener->send(coa->proxy_listener, coa); - request_queue_or_run(coa, coa->process); + if (we_are_master()) coa_separate(request->coa); } @@ -4323,6 +4321,11 @@ static void coa_separate(REQUEST *request) (void) talloc_steal(NULL, request); request->parent->coa = NULL; request->parent = NULL; + + if (we_are_master()) { + request->delay = 0; + coa_retransmit(request); + } }