[sr-dev] git:5.6:1d03d9e8: usrloc: fix sending keepalive messages for IPv6, it was missing the brackets

Henning Westerholt hw at gilawa.com
Tue Aug 2 10:52:56 CEST 2022


Module: kamailio
Branch: 5.6
Commit: 1d03d9e8312e6e9b494f6d243fe9b2b4ea890eaf
URL: https://github.com/kamailio/kamailio/commit/1d03d9e8312e6e9b494f6d243fe9b2b4ea890eaf

Author: Henning Westerholt <hw at gilawa.com>
Committer: Henning Westerholt <hw at gilawa.com>
Date: 2022-08-02T08:52:48Z

usrloc: fix sending keepalive messages for IPv6, it was missing the brackets

(cherry picked from commit bd40f0d08f5d0f14b301cb492d1082c71be91c50)

---

Modified: src/modules/usrloc/ul_keepalive.c

---

Diff:  https://github.com/kamailio/kamailio/commit/1d03d9e8312e6e9b494f6d243fe9b2b4ea890eaf.diff
Patch: https://github.com/kamailio/kamailio/commit/1d03d9e8312e6e9b494f6d243fe9b2b4ea890eaf.patch

---

diff --git a/src/modules/usrloc/ul_keepalive.c b/src/modules/usrloc/ul_keepalive.c
index a69a76d8b9..5b1572483b 100644
--- a/src/modules/usrloc/ul_keepalive.c
+++ b/src/modules/usrloc/ul_keepalive.c
@@ -61,7 +61,7 @@ Content-Length: 0\r\n\r\n"
 #define ULKA_CALLID_PREFIX_LEN (sizeof(ULKA_CALLID_PREFIX) - 1)
 
 #define ULKA_MSG "%.*s %.*s SIP/2.0\r\n" \
-  "Via: SIP/2.0/%.*s %.*s:%.*s;branch=z9hG4bKx.%u.%u.0\r\n" \
+  "Via: SIP/2.0/%.*s %s%.*s%s:%.*s;branch=z9hG4bKx.%u.%u.0\r\n" \
   "%s%.*s%.*s" \
   "From: <%.*s>;tag=%.*s-%x-%lx-%lx-%x.%x\r\n" \
   "To: <sip:%.*s%s%.*s>\r\n" \
@@ -101,6 +101,7 @@ int ul_ka_urecord(urecord_t *ur)
 	socket_info_t *ssock;
 	dest_info_t idst;
 	unsigned int bcnt = 0;
+	unsigned int via_ipv6 = 0;
 	int aortype = 0;
 	int i;
 	struct timeval tv;
@@ -195,8 +196,14 @@ int ul_ka_urecord(urecord_t *ur)
 		idst.send_sock = ssock;
 
 		if(ssock->useinfo.name.len > 0) {
+			if (ssock->useinfo.address.af == AF_INET6) {
+				via_ipv6 = 1;
+			}
 			vaddr = ssock->useinfo.name;
 		} else {
+			if (ssock->address.af == AF_INET6) {
+				via_ipv6 = 1;
+			}
 			vaddr = ssock->address_str;
 		}
 		if(ssock->useinfo.port_no > 0) {
@@ -212,7 +219,9 @@ int ul_ka_urecord(urecord_t *ur)
 				ul_ka_method.len, ul_ka_method.s,
 				uc->c.len, uc->c.s,
 				sproto.len, sproto.s,
+				(via_ipv6==1)?"[":"",
 				vaddr.len, vaddr.s,
+				(via_ipv6==1)?"]":"",
 				vport.len, vport.s,
 				_ul_ka_counter, bcnt,
 				(uc->path.len>0)?"Route: ":"",




More information about the sr-dev mailing list