]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Do pass2 compilation on conditions. Fixes #1632
authorAlan T. DeKok <aland@freeradius.org>
Thu, 30 Jun 2016 00:10:25 +0000 (20:10 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 30 Jun 2016 00:10:25 +0000 (20:10 -0400)
src/include/modcall.h
src/main/command.c
src/main/modcall.c

index ac927776482348a128d3794c02bfbec9d9e99365..7486ef168b56ce0943cde8670fc15932f47b62a0 100644 (file)
@@ -46,6 +46,8 @@ void add_to_modcallable(modcallable *parent, modcallable *this);
 
 void modcall_debug(modcallable *mc, int depth);
 
+int modcall_pass2_condition(fr_cond_t *c);
+
 #ifdef __cplusplus
 }
 #endif
index 3e04539dcbeaf6abc7d95a02097a4910e282e411..d3b729f9a5a5237cbec15e658b24a06b67198da0 100644 (file)
@@ -24,6 +24,7 @@
 #ifdef WITH_COMMAND_SOCKET
 
 #include <freeradius-devel/parser.h>
+#include <freeradius-devel/modcall.h>
 #include <freeradius-devel/md5.h>
 #include <freeradius-devel/channel.h>
 
@@ -1350,6 +1351,8 @@ static int command_debug_condition(rad_listen_t *listener, int argc, char *argv[
                return CMD_FAIL;
        }
 
+       (void) modcall_pass2_condition(new_condition);
+
        /*
         *      Delete old condition.
         *
index 5b4b99ab2ee48842849759db7b81d52509bd5e01..af74b94e5a4fb3fd5f6dbaea4fe680373138b304 100644 (file)
@@ -4008,3 +4008,10 @@ void modcall_debug(modcallable *mc, int depth)
                }
        }
 }
+
+int modcall_pass2_condition(fr_cond_t *c)
+{
+       if (!fr_condition_walk(c, pass2_callback, NULL)) return -1;
+
+       return 0;
+}