]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Define and parse config for libcurl connections
authorNick Porter <nick@portercomputing.co.uk>
Thu, 2 Feb 2023 09:58:54 +0000 (09:58 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Wed, 15 Feb 2023 16:11:32 +0000 (16:11 +0000)
src/lib/curl/base.c
src/lib/curl/base.h

index 081ebeeb0603870fc40cc6026f7dc65d1c912218..34195701e88bfcd24368d5aaad8d520030f94593 100644 (file)
@@ -72,6 +72,19 @@ CONF_PARSER fr_curl_tls_config[] = {
        CONF_PARSER_TERMINATOR
 };
 
+static CONF_PARSER reuse_curl_conn_config[] = {
+       { FR_CONF_OFFSET("min", FR_TYPE_UINT32, fr_slab_config_t, min_elements), .dflt = "10" },
+       { FR_CONF_OFFSET("max", FR_TYPE_UINT32, fr_slab_config_t, max_elements), .dflt = "100" },
+       { FR_CONF_OFFSET("cleanup_interval", FR_TYPE_TIME_DELTA, fr_slab_config_t, interval), .dflt = "30s" },
+       CONF_PARSER_TERMINATOR
+};
+
+CONF_PARSER fr_curl_conn_config[] = {
+       { FR_CONF_OFFSET("reuse", FR_TYPE_SUBSECTION, fr_curl_conn_config_t, reuse), .subcs = (void const *) reuse_curl_conn_config },
+       { FR_CONF_OFFSET("connect_timeout", FR_TYPE_TIME_DELTA, fr_curl_conn_config_t, connect_timeout), .dflt = "3.0" },
+       CONF_PARSER_TERMINATOR
+};
+
 int fr_curl_easy_tls_init(fr_curl_io_request_t *randle, fr_curl_tls_t const *conf)
 {
        request_t *request = randle->request;
index 788dbfa1c1c9094063ff98e1839f0f9c7947eb40..89d12fe168a058214863ac440dae2446f1d0fd51 100644 (file)
@@ -36,6 +36,7 @@ extern "C" {
 #include <freeradius-devel/server/module.h>
 #include <freeradius-devel/server/request.h>
 #include <freeradius-devel/util/event.h>
+#include <freeradius-devel/util/slab.h>
 
 DIAG_OFF(DIAG_UNKNOWN_PRAGMAS)
 DIAG_OFF(disabled-macro-expansion)
@@ -117,7 +118,13 @@ typedef struct {
        bool                    extract_cert_attrs;
 } fr_curl_tls_t;
 
+typedef struct {
+       fr_slab_config_t        reuse;
+       fr_time_delta_t         connect_timeout;
+} fr_curl_conn_config_t;
+
 extern CONF_PARSER             fr_curl_tls_config[];
+extern CONF_PARSER             fr_curl_conn_config[];
 extern global_lib_autoinst_t   fr_curl_autoinst;
 
 int                    fr_curl_io_request_enqueue(fr_curl_handle_t *mhandle,