From: Nick Porter Date: Thu, 2 Feb 2023 09:58:54 +0000 (+0000) Subject: Define and parse config for libcurl connections X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59e442bb2e83b330fd47b1d351891136944c93e5;p=thirdparty%2Ffreeradius-server.git Define and parse config for libcurl connections --- diff --git a/src/lib/curl/base.c b/src/lib/curl/base.c index 081ebeeb060..34195701e88 100644 --- a/src/lib/curl/base.c +++ b/src/lib/curl/base.c @@ -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; diff --git a/src/lib/curl/base.h b/src/lib/curl/base.h index 788dbfa1c1c..89d12fe168a 100644 --- a/src/lib/curl/base.h +++ b/src/lib/curl/base.h @@ -36,6 +36,7 @@ extern "C" { #include #include #include +#include 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,