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:
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.
(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.