From: Alan T. DeKok Date: Fri, 30 Jun 2017 15:43:17 +0000 (-0400) Subject: add fr_request_async_bootstrap() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7da129c85b53daf073cd4f073cf87e143efb98b;p=thirdparty%2Ffreeradius-server.git add fr_request_async_bootstrap() which bootstraps an async listener (ONE ONLY) for unit_test_module --- diff --git a/src/include/modules.h b/src/include/modules.h index 9f4743a5565..dcd8e6b5212 100644 --- a/src/include/modules.h +++ b/src/include/modules.h @@ -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. diff --git a/src/main/virtual_servers.c b/src/main/virtual_servers.c index 533e0668912..22cc8bc9be0 100644 --- a/src/main/virtual_servers.c +++ b/src/main/virtual_servers.c @@ -32,6 +32,7 @@ RCSID("$Id$") #include #include #include +#include #include #include @@ -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); +}