usrloc: set last keepalive value to current time on new records
authorDaniel-Constantin Mierla <miconda@gmail.com>
Fri, 25 Sep 2020 07:38:39 +0000 (09:38 +0200)
committerDaniel-Constantin Mierla <miconda@gmail.com>
Fri, 25 Sep 2020 07:41:38 +0000 (09:41 +0200)
- do not rely on last modified value, can be loaded from db and be too
old

(cherry picked from commit 60f04b6d6f51b55294d22722df3f351a76cbfb9b)

src/modules/usrloc/ucontact.c

index 256d953..95ed8d5 100644 (file)
@@ -26,8 +26,8 @@
  * - Module: \ref usrloc
  */
 
  * - Module: \ref usrloc
  */
 
-#include "ucontact.h"
-#include <string.h>             /* memcpy */
+#include <string.h>
+#include <time.h>
 #include "../../core/mem/shm_mem.h"
 #include "../../core/ut.h"
 #include "../../core/ip_addr.h"
 #include "../../core/mem/shm_mem.h"
 #include "../../core/ut.h"
 #include "../../core/ip_addr.h"
@@ -129,7 +129,7 @@ ucontact_t* new_ucontact(str* _dom, str* _aor, str* _contact, ucontact_info_t* _
        c->methods = _ci->methods;
        c->reg_id = _ci->reg_id;
        c->last_modified = _ci->last_modified;
        c->methods = _ci->methods;
        c->reg_id = _ci->reg_id;
        c->last_modified = _ci->last_modified;
-       c->last_keepalive = _ci->last_modified;
+       c->last_keepalive = time(NULL);
        c->tcpconn_id = _ci->tcpconn_id;
        c->server_id = _ci->server_id;
        c->keepalive = (_ci->cflags & ul_nat_bflag)?1:0;
        c->tcpconn_id = _ci->tcpconn_id;
        c->server_id = _ci->server_id;
        c->keepalive = (_ci->cflags & ul_nat_bflag)?1:0;
@@ -295,7 +295,7 @@ int mem_update_ucontact(ucontact_t* _c, ucontact_info_t* _ci)
        _c->cseq = _ci->cseq;
        _c->methods = _ci->methods;
        _c->last_modified = _ci->last_modified;
        _c->cseq = _ci->cseq;
        _c->methods = _ci->methods;
        _c->last_modified = _ci->last_modified;
-       _c->last_keepalive = _ci->last_modified;
+       _c->last_keepalive = time(NULL);
        _c->flags = _ci->flags;
        _c->cflags = _ci->cflags;
        _c->server_id = _ci->server_id;
        _c->flags = _ci->flags;
        _c->cflags = _ci->cflags;
        _c->server_id = _ci->server_id;