Module: sip-router
Branch: master
Commit: 9ee44c6079c8d30138ece619295974e17993aa04
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9ee44c6079c8d30138ece619295974e17993aa04

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Wed Sep 18 22:17:55 2013 +0200

pua_reginfo: add ruid for location records

- patch by Wonbin Cho, FS#339

---

 modules/pua_reginfo/Makefile      |    3 +++
 modules/pua_reginfo/notify.c      |   13 ++++++++++++-
 modules/pua_reginfo/pua_reginfo.c |    6 ++++++
 3 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/modules/pua_reginfo/Makefile b/modules/pua_reginfo/Makefile
index b6d8e40..532f159 100644
--- a/modules/pua_reginfo/Makefile
+++ b/modules/pua_reginfo/Makefile
@@ -24,4 +24,7 @@ endif
 
 DEFS+=-DKAMAILIO_MOD_INTERFACE
 
+SERLIBPATH=../../lib
+SER_LIBS+=$(SERLIBPATH)/srutils/srutils
+
 include ../../Makefile.modules
diff --git a/modules/pua_reginfo/notify.c b/modules/pua_reginfo/notify.c
index 176c16c..1187e34 100644
--- a/modules/pua_reginfo/notify.c
+++ b/modules/pua_reginfo/notify.c
@@ -26,6 +26,7 @@
 #include "../../parser/parse_content.h"
 #include "../../parser/parse_uri.h"
 #include "../../modules/usrloc/usrloc.h"
+#include "../../lib/srutils/sruid.h"
 #include <libxml/parser.h>
 #include "pua_reginfo.h"
 
@@ -62,7 +63,10 @@
 #define RESULT_CONTACTS_FOUND 1
 #define RESULT_NO_CONTACTS 2
 
-int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str 
callid, int cseq, int expires, int event, str contact_uri) {
+extern sruid_t _reginfo_sruid;
+
+int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str 
callid,
+               int cseq, int expires, int event, str contact_uri) {
        str no_str = {0, 0};
        static str no_ua = str_init("n/a");
        static ucontact_info_t ci;
@@ -102,6 +106,13 @@ int process_contact(udomain_t * domain, urecord_t ** 
ul_record, str aor, str cal
        /* set expire time */
        ci.expires = time(0) + expires;
 
+       /* set ruid */
+       if(sruid_next(&_reginfo_sruid) < 0) {
+               LM_ERR("failed to generate ruid");
+       } else {
+               ci.ruid = _reginfo_sruid.uid;
+       }
+
        /* Now we start looking for the contact: */
        if (((*ul_record)->contacts == 0)
                || (ul.get_ucontact(*ul_record, &contact_uri, &callid, &no_str, 
cseq+1, &ul_contact) != 0)) {
diff --git a/modules/pua_reginfo/pua_reginfo.c 
b/modules/pua_reginfo/pua_reginfo.c
index a9ffe76..73d7113 100644
--- a/modules/pua_reginfo/pua_reginfo.c
+++ b/modules/pua_reginfo/pua_reginfo.c
@@ -25,6 +25,7 @@
 #include "../pua/pua_bind.h"
 /* Bindings to usrloc */
 #include "../usrloc/usrloc.h"
+#include "../../lib/srutils/sruid.h"
 
 #include "pua_reginfo.h"
 #include "subscribe.h"
@@ -43,6 +44,7 @@ str server_address = {NULL, 0};
 
 int publish_reginfo = 1;
 
+sruid_t _reginfo_sruid;
 
 /** Fixup functions */
 static int domain_fixup(void** param, int param_no);
@@ -161,6 +163,10 @@ static int mod_init(void)
                        return -1;
                }
        }
+
+       if(sruid_init(&_reginfo_sruid, (char)'-', "regi", SRUID_INC)<0)
+               return -1;
+
        return 0;
 }
 


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to