]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Create coa / disconnect when it's referenced
authorAlan T. DeKok <aland@freeradius.org>
Wed, 7 Nov 2012 20:36:51 +0000 (15:36 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 7 Nov 2012 20:37:08 +0000 (15:37 -0500)
src/main/evaluate.c

index 0122871e586f3dbaff8e91ae5087374930a9b86f..042528ede87404453a4cb78e6e2cdd9a344d563c 100644 (file)
@@ -1151,8 +1151,17 @@ int radius_update_attrlist(REQUEST *request, CONF_SECTION *cs,
        
        output_vps = radius_list(update_request, list);
        if (!output_vps) {
-               RDEBUG("WARNING: List '%s' doesn't exist for this packet", name);
-               return RLM_MODULE_INVALID;
+               if (!((list == PAIR_LIST_COA) || (list == PAIR_LIST_DM))) {
+                       RDEBUG("WARNING: List '%s' doesn't exist for this packet", name);
+                       return RLM_MODULE_INVALID;
+               }
+
+               request_alloc_coa(update_request);
+               if (list == PAIR_LIST_COA) {
+                       update_request->coa->proxy->code = PW_COA_REQUEST;
+               } else {
+                       update_request->coa->proxy->code = PW_DISCONNECT_REQUEST;
+               }
        }
 
        newlist = paircopy(input_vps);