]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use the standard instantiate functions for listen and process modules
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 12 May 2024 23:04:00 +0000 (17:04 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 13 May 2024 13:42:00 +0000 (07:42 -0600)
src/lib/server/virtual_servers.c

index 5a7e2faae47b1ad6df6a479079a7d8684675aba7..96754dea61ebdf4d39c97505f0594b29a9377d4e 100644 (file)
@@ -1449,36 +1449,18 @@ int virtual_servers_instantiate(void)
        }
 
        for (i = 0; i < server_cnt; i++) {
-               fr_virtual_listen_t             **listeners;
-               size_t                          j, listener_cnt;
                CONF_ITEM                       *ci = NULL;
                CONF_SECTION                    *server_cs = virtual_servers[i]->server_cs;
                fr_dict_t const                 *dict;
                fr_virtual_server_t const       *vs = virtual_servers[i];
                fr_process_module_t const       *process = (fr_process_module_t const *)
                                                            vs->process_mi->module->exported;
-               listeners = virtual_servers[i]->listeners;
-               listener_cnt = talloc_array_length(listeners);
 
                dict = virtual_server_local_dict(server_cs, *(process)->dict);
                if (!dict) return -1;
 
                DEBUG("Compiling policies in server %s { ... }", cf_section_name2(server_cs));
 
-               for (j = 0; j < listener_cnt; j++) {
-                       fr_virtual_listen_t *listener = listeners[j];
-
-                       fr_assert(listener != NULL);
-                       fr_assert(listener->proto_mi != NULL);
-                       fr_assert(listener->proto_module != NULL);
-
-                       if (module_instantiate(listener->proto_mi) < 0) {
-                               cf_log_perr(listener->proto_mi->conf,
-                                           "Failed instantiating listener");
-                               return -1;
-                       }
-               }
-
                fr_assert(virtual_servers[i]->process_mi);
 
                /*
@@ -1503,15 +1485,6 @@ int virtual_servers_instantiate(void)
                        }
                }
 
-               /*
-                *      Complete final instantiation of the process module
-                */
-               if (module_instantiate(virtual_servers[i]->process_mi) < 0) {
-                       cf_log_perr(virtual_servers[i]->process_mi->conf,
-                                   "Failed instantiating process module");
-                       return -1;
-               }
-
                /*
                 *      Print out warnings for unused "recv" and
                 *      "send" sections.
@@ -1548,6 +1521,15 @@ int virtual_servers_instantiate(void)
                }
        }
 
+       if (modules_instantiate(process_modules) < 0) {
+               PERROR("Failed instantiating process modules");
+               return -1;
+       }
+       if (modules_instantiate(proto_modules) < 0) {
+               PERROR("Failed instantiating protocol modules");
+               return -1;
+       }
+
        return 0;
 }
 
@@ -1567,8 +1549,14 @@ int virtual_servers_bootstrap(CONF_SECTION *config)
         */
        global_lib_instantiate();
 
-       if (modules_bootstrap(process_modules) < 0) return -1;
-       if (modules_bootstrap(proto_modules) < 0) return -1;
+       if (modules_bootstrap(process_modules) < 0) {
+               PERROR("Failed instantiating process modules");
+               return -1;
+       }
+       if (modules_bootstrap(proto_modules) < 0) {
+               PERROR("Failed instantiating protocol modules");
+               return -1;
+       }
 
        return 0;
 }