Module: kamailio Branch: master Commit: 851a839b50296669523947e1a0d73f1b602f0819 URL: https://github.com/kamailio/kamailio/commit/851a839b50296669523947e1a0d73f1b602f0819
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2024-06-10T13:09:26+02:00 dispatcher: compare time interval validity for oveload control --- Modified: src/modules/dispatcher/dispatch.c --- Diff: https://github.com/kamailio/kamailio/commit/851a839b50296669523947e1a0d73f1b602f0819.diff Patch: https://github.com/kamailio/kamailio/commit/851a839b50296669523947e1a0d73f1b602f0819.patch --- diff --git a/src/modules/dispatcher/dispatch.c b/src/modules/dispatcher/dispatch.c index c7722acb32e..6e13987a4da 100644 --- a/src/modules/dispatcher/dispatch.c +++ b/src/modules/dispatcher/dispatch.c @@ -498,18 +498,26 @@ int ds_oc_set_attrs(sip_msg_t *msg, int setid, str *duri, int irval, int itval) */ static inline int ds_oc_skip(ds_set_t *dsg, int alg, int n) { - int ret = 0; + struct timeval tnow; if(alg != DS_ALG_OVERLOAD) { return 0; } + gettimeofday(&tnow, NULL); + + if(timercmp(&dsg->dlist[n].octime, &tnow, <)) { + /* over the time interval validity - use it */ + return 0; + } if(dsg->dlist[n].ocdist[dsg->dlist[n].ocidx] == 1) { - ret = 0; + /* use it */ + return 0; } dsg->dlist[n].ocidx = (dsg->dlist[n].ocidx + 1) % 100; - return ret; + /* skip it */ + return 1; } /** _______________________________________________ Kamailio (SER) - Development Mailing List To unsubscribe send an email to [email protected]
