AFAIK the commits from Herle Supreeth from its fork https://github.com/herlesupreeth/kamailio were migrated manually (not via PR) to upstream at the end of last year. While reviewing the migration I have found two discrepancies:

  1. 8b9a297 vs. a6a3bd0
herlesupreeth/kamailio (fork)
commit 8b9a2977e111d9adb8595d98ab59f8c8eb033120
Author: herlesupreeth <herlesupreeth@gmail.com>
Date:   Mon Jun 7 14:01:54 2021 +0200

    IPSec fixes

diff --git a/src/modules/ims_ipsec_pcscf/cmd.c b/src/modules/ims_ipsec_pcscf/cmd.c
index 8e0cabcb80..9de3cf7331 100644
--- a/src/modules/ims_ipsec_pcscf/cmd.c
+++ b/src/modules/ims_ipsec_pcscf/cmd.c
@@ -937,7 +939,14 @@ int ipsec_forward(struct sip_msg* m, udomain_t* d)
         dst_port = s->port_us;
     }

-    int buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d", ci.via_host.len, ci.via_host.s, dst_port);
+    int buf_len = 0;
+    if (dst_proto == PROTO_TCP) {
+        buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d;transport=tcp", ci.via_host.len, ci.via_host.s, dst_port);
+    } else if (dst_proto == PROTO_TLS) {
+        buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d;transport=tls", ci.via_host.len, ci.via_host.s, dst_port);
+    } else {
+        buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d", ci.via_host.len, ci.via_host.s, dst_port);
+    }

     if((m->dst_uri.s = pkg_malloc(buf_len + 1)) == NULL) {
         LM_ERR("Error allocating memory for dst_uri\n");

vs.

kamailio/kamailio (upstream)
commit a6a3bd088368fbf65c283ae27e999d315db0844b
Author: Daniel-Constantin Mierla <miconda@gmail.com>
Date:   Wed Jun 1 18:11:22 2022 +0200

    ims_ipsec_pcscf: new option for ipsec_forward() to set trasport for tcp dst uri

diff --git a/src/modules/ims_ipsec_pcscf/cmd.c b/src/modules/ims_ipsec_pcscf/cmd.c
index 5aa208d334..6f6c15e21b 100644
--- a/src/modules/ims_ipsec_pcscf/cmd.c
+++ b/src/modules/ims_ipsec_pcscf/cmd.c
@@ -947,8 +949,14 @@ int ipsec_forward(struct sip_msg *m, udomain_t *d, int _cflags)

        if(!(_cflags & IPSEC_NODSTURI_RESET)) {
                char buf[1024];
-               int buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d", ci.via_host.len,
-                               ci.via_host.s, dst_port);
+               int buf_len;
+               if((_cflags & IPSEC_SETDSTURI_FULL) && (dst_proto == PROTO_TCP)) {
+                       buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d;transport=tcp",
+                                       ci.via_host.len, ci.via_host.s, dst_port);
+               } else {
+                       buf_len = snprintf(buf, sizeof(buf) - 1, "sip:%.*s:%d", ci.via_host.len,
+                                       ci.via_host.s, dst_port);
+               }

                if((m->dst_uri.s = pkg_malloc(buf_len + 1)) == NULL) {
                        LM_ERR("Error allocating memory for dst_uri\n");

To me it seems the handling of the case dst_proto == PROTO_TLS is missing upstream.

  1. The commit bfb0a17 seems to be absent in upstream.

(From my point of view all the other commits are migrated fine, thanks for the good work!)


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/3772@github.com>