Module: kamailio Branch: master Commit: b9d55d73d28a16f1663e7c14594cde433cbff0a1 URL: https://github.com/kamailio/kamailio/commit/b9d55d73d28a16f1663e7c14594cde433cbff0a1
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2026-03-11T21:29:28+01:00 evapi: added send_data_timeout parameter - specify timeout to send data to evapi clients --- Modified: src/modules/evapi/evapi_dispatch.c Modified: src/modules/evapi/evapi_dispatch.h Modified: src/modules/evapi/evapi_mod.c --- Diff: https://github.com/kamailio/kamailio/commit/b9d55d73d28a16f1663e7c14594cde433cbff0a1.diff Patch: https://github.com/kamailio/kamailio/commit/b9d55d73d28a16f1663e7c14594cde433cbff0a1.patch --- diff --git a/src/modules/evapi/evapi_dispatch.c b/src/modules/evapi/evapi_dispatch.c index c6802a4989f..fcddfb7f6e7 100644 --- a/src/modules/evapi/evapi_dispatch.c +++ b/src/modules/evapi/evapi_dispatch.c @@ -55,6 +55,7 @@ extern int _evapi_max_clients; extern int _evapi_wait_idle; extern int _evapi_wait_increase; extern int _evapi_send_task_timeout; +extern int _evapi_send_data_timeout; #define EVAPI_IPADDR_SIZE 64 #define EVAPI_TAG_SIZE 64 @@ -419,8 +420,10 @@ int evapi_dispatch_notify(evapi_msg_t *emsg) return 0; } - tv.tv_sec = EAVPI_SEND_DATA_TIMEOUT_US / 1000000; - tv.tv_usec = EAVPI_SEND_DATA_TIMEOUT_US % 1000000; + if(_evapi_send_data_timeout > 0) { + tv.tv_sec = _evapi_send_data_timeout / 1000000; + tv.tv_usec = _evapi_send_data_timeout % 1000000; + } n = 0; for(i = 0; i < EVAPI_MAX_CLIENTS; i++) { if(_evapi_clients[i].connected == 1 && _evapi_clients[i].sock >= 0) { @@ -429,8 +432,10 @@ int evapi_dispatch_notify(evapi_msg_t *emsg) && strncmp(_evapi_clients[i].stag.s, emsg->tag.s, emsg->tag.len) == 0)) { - setsockopt(_evapi_clients[i].sock, SOL_SOCKET, SO_SNDTIMEO, &tv, - sizeof(struct timeval)); + if(_evapi_send_data_timeout > 0) { + setsockopt(_evapi_clients[i].sock, SOL_SOCKET, SO_SNDTIMEO, + &tv, sizeof(struct timeval)); + } wlen = write( _evapi_clients[i].sock, emsg->data.s, emsg->data.len); if(wlen != emsg->data.len) { diff --git a/src/modules/evapi/evapi_dispatch.h b/src/modules/evapi/evapi_dispatch.h index 6e393facad1..744a1dc2712 100644 --- a/src/modules/evapi/evapi_dispatch.h +++ b/src/modules/evapi/evapi_dispatch.h @@ -26,7 +26,7 @@ #include "../../core/pvar.h" #define EAVPI_SEND_TASK_TIMEOUT_US 0 -#define EAVPI_SEND_DATA_TIMEOUT_US 500000 +#define EAVPI_SEND_DATA_TIMEOUT_US 0 int evapi_init_notify_sockets(void); diff --git a/src/modules/evapi/evapi_mod.c b/src/modules/evapi/evapi_mod.c index 30b27e0b883..4b6249c1c4b 100644 --- a/src/modules/evapi/evapi_mod.c +++ b/src/modules/evapi/evapi_mod.c @@ -56,6 +56,7 @@ int _evapi_max_clients = 8; int _evapi_wait_idle = 500000; int _evapi_wait_increase = 3; int _evapi_send_task_timeout = EAVPI_SEND_TASK_TIMEOUT_US; +int _evapi_send_data_timeout = EAVPI_SEND_DATA_TIMEOUT_US; static str _evapi_data = STR_NULL; static int _evapi_data_size = 0; @@ -100,6 +101,7 @@ static param_export_t params[] = { {"wait_idle", PARAM_INT, &_evapi_wait_idle}, {"wait_increase", PARAM_INT, &_evapi_wait_increase}, {"send_task_timeout", PARAM_INT, &_evapi_send_task_timeout}, + {"send_data_timeout", PARAM_INT, &_evapi_send_data_timeout}, {0, 0, 0} }; _______________________________________________ Kamailio - Development Mailing List -- [email protected] To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender!
