Module: kamailio Branch: master Commit: ffef03ec9b0bb974c82dec694675999d62411461 URL: https://github.com/kamailio/kamailio/commit/ffef03ec9b0bb974c82dec694675999d62411461
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2026-03-03T10:30:40+01:00 evapi: added timeout for writing to client sockets --- Modified: src/modules/evapi/evapi_dispatch.c Modified: src/modules/evapi/evapi_dispatch.h --- Diff: https://github.com/kamailio/kamailio/commit/ffef03ec9b0bb974c82dec694675999d62411461.diff Patch: https://github.com/kamailio/kamailio/commit/ffef03ec9b0bb974c82dec694675999d62411461.patch --- diff --git a/src/modules/evapi/evapi_dispatch.c b/src/modules/evapi/evapi_dispatch.c index e8e099eedd7..01bd7dce579 100644 --- a/src/modules/evapi/evapi_dispatch.c +++ b/src/modules/evapi/evapi_dispatch.c @@ -412,11 +412,14 @@ int evapi_dispatch_notify(evapi_msg_t *emsg) int i; int n; int wlen; + struct timeval tv; if(_evapi_clients == NULL) { return 0; } + tv.tv_sec = EAVPI_CLIENT_SEND_TIMEOUT_US / 1000000; + tv.tv_usec = EAVPI_CLIENT_SEND_TIMEOUT_US % 1000000; n = 0; for(i = 0; i < EVAPI_MAX_CLIENTS; i++) { if(_evapi_clients[i].connected == 1 && _evapi_clients[i].sock >= 0) { @@ -425,6 +428,8 @@ 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)); 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 37d7c088c30..7f20ba1d00c 100644 --- a/src/modules/evapi/evapi_dispatch.h +++ b/src/modules/evapi/evapi_dispatch.h @@ -26,6 +26,7 @@ #include "../../core/pvar.h" #define EAVPI_TASK_SEND_TIMEOUT_US 200000 +#define EAVPI_CLIENT_SEND_TIMEOUT_US 500000 int evapi_init_notify_sockets(void); _______________________________________________ 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!
