ike: Use a struct to store retransmission settings

The calculation of the timeout is also shared now and the total
timeout in seconds is corrected in case retransmit_base is <= 1.

This could make it easier in the future to apply different retransmission
settings to messages/exchanges.
This commit is contained in:
Tobias Brunner
2023-05-17 15:58:28 +02:00
parent 5f8eb09dd6
commit 6ceb39b1da
5 changed files with 165 additions and 183 deletions
@@ -56,15 +56,17 @@ METHOD(plugin_t, get_features, int,
METHOD(plugin_t, reload, bool,
private_kernel_netlink_plugin_t *this)
{
retransmission_t settings;
u_int timeout;
FILE *f;
f = fopen("/proc/sys/net/core/xfrm_acq_expires", "w");
if (f)
{
retransmission_parse_default(&settings);
timeout = lib->settings->get_int(lib->settings,
"%s.plugins.kernel-netlink.xfrm_acq_expires",
task_manager_total_retransmit_timeout(), lib->ns);
retransmission_timeout_total(&settings), lib->ns);
fprintf(f, "%u", timeout);
fclose(f);
}