]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add fr_request_async_bootstrap()
authorAlan T. DeKok <aland@freeradius.org>
Fri, 30 Jun 2017 15:43:17 +0000 (11:43 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 30 Jun 2017 15:43:17 +0000 (11:43 -0400)
which bootstraps an async listener (ONE ONLY) for
unit_test_module

src/include/modules.h
src/main/virtual_servers.c

index 9f4743a55655b67cc926b6d2b1b4f8ed94e240e9..dcd8e6b5212b7e36d359756f21b7b1d607024154 100644 (file)
@@ -210,6 +210,7 @@ int         virtual_servers_open(fr_schedule_t *sc);
 int            virtual_servers_instantiate(CONF_SECTION *config);
 int            virtual_servers_bootstrap(CONF_SECTION *config);
 CONF_SECTION   *virtual_server_find(char const *name);
+void           fr_request_async_bootstrap(REQUEST *request, fr_event_list_t *el); /* for unit_test_module */
 
 /*
  *     In unlang_interpret.c, but here for public consumption.
index 533e06689127829a8d18693edb80c5a6a1aea32a..22cc8bc9be0028a32afb35c580f42231e28ad39d 100644 (file)
@@ -32,6 +32,7 @@ RCSID("$Id$")
 #include <freeradius-devel/interpreter.h>
 #include <freeradius-devel/parser.h>
 #include <freeradius-devel/protocol.h>
+#include <freeradius-devel/io/listen.h>
 #include <freeradius-devel/dl.h>
 #include <freeradius-devel/io/application.h>
 
@@ -789,3 +790,35 @@ CONF_SECTION *virtual_server_find(char const *name)
 {
        return cf_section_find(main_config.config, "server", name);
 }
+
+/*
+ *     Hack for unit_test_module.c
+ */
+void fr_request_async_bootstrap(REQUEST *request, fr_event_list_t *el)
+{
+       size_t server_cnt, listen_cnt;
+       fr_virtual_listen_t     **listener;
+
+       if (!virtual_servers) return; /* let it crash! */
+
+       server_cnt = talloc_array_length(virtual_servers);
+
+       listener = virtual_servers[0]->listener;
+       listen_cnt = talloc_array_length(listener);
+
+       if (!listen_cnt) return;
+
+       /*
+        *      New async listeners
+        */
+       request->async = talloc_zero(request, fr_async_t);
+
+       request->async->channel = NULL;
+       request->async->original_recv_time = NULL;
+       request->async->recv_time = fr_time();
+       request->async->el = el;
+
+       request->async->listen = NULL;
+       request->async->packet_ctx = NULL;
+       listener[0]->app->process_set(listener[0]->proto_module->data, request);
+}