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!

Reply via email to