Module: kamailio Branch: master Commit: 4e91363d645489369a51ec0c9f8ea12c0cb5c1c8 URL: https://github.com/kamailio/kamailio/commit/4e91363d645489369a51ec0c9f8ea12c0cb5c1c8
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2026-01-21T09:52:13+01:00 corex: add_tcp_alias() replacement for force_tcp_alias() - extended support for var parameter and ws/wss --- Modified: src/modules/corex/corex_mod.c --- Diff: https://github.com/kamailio/kamailio/commit/4e91363d645489369a51ec0c9f8ea12c0cb5c1c8.diff Patch: https://github.com/kamailio/kamailio/commit/4e91363d645489369a51ec0c9f8ea12c0cb5c1c8.patch --- diff --git a/src/modules/corex/corex_mod.c b/src/modules/corex/corex_mod.c index d8feb9ac8ad..b7c445db999 100644 --- a/src/modules/corex/corex_mod.c +++ b/src/modules/corex/corex_mod.c @@ -84,6 +84,8 @@ static int w_msg_vbflag_reset(sip_msg_t *msg, char *pflag, char *p2); static int w_msg_vbflag_is_set(sip_msg_t *msg, char *pflag, char *p2); static int w_msg_vbflag_parse(sip_msg_t *msg, char *p1, char *p2); +static int w_add_tcp_alias(sip_msg_t *msg, char *pport, char *s2); + static int fixup_file_op(void **param, int param_no); static int fixup_free_file_op(void **param, int param_no); @@ -198,7 +200,8 @@ static cmd_export_t cmds[] = { fixup_igp_null, fixup_free_igp_null, ANY_ROUTE}, {"msg_vbflag_parse", (cmd_function)w_msg_vbflag_parse, 1, 0, 0, ANY_ROUTE}, - + {"add_tcp_alias", (cmd_function)w_add_tcp_alias, 1, + fixup_igp_null, fixup_free_igp_null, ANY_ROUTE}, {0, 0, 0, 0, 0, 0} }; @@ -877,6 +880,48 @@ static int w_msg_vbflag_parse(sip_msg_t *msg, char *p1, char *p2) return ki_msg_vbflag_parse(msg); } +/** + * + */ +static int ki_add_tcp_alias(sip_msg_t *msg, int port) +{ + if(!(msg->rcv.proto == PROTO_TCP || msg->rcv.proto == PROTO_TLS + || msg->rcv.proto == PROTO_WS || msg->rcv.proto == PROTO_WSS)) { + return -1; + } + + if(port <= 0) { + if(parse_headers(msg, HDR_VIA1_F, 0) < 0) { + LM_DBG("failed to parse sip headers\n"); + return -1; + } + if(msg->via1 == NULL) { + LM_DBG("no via headers\n"); + return -1; + } + port = msg->via1->port; + } + if(tcpconn_add_alias(msg->rcv.proto_reserved1, port, msg->rcv.proto) != 0) { + LM_ERR("adding tcp alias failed\n"); + return -1; + } + + return 1; +} + +/** + * + */ +static int w_add_tcp_alias(sip_msg_t *msg, char *pport, char *s2) +{ + int pval = 0; + if(fixup_get_ivalue(msg, (gparam_t *)pport, &pval) != 0) { + LM_ERR("no port value\n"); + return -1; + } + return ki_add_tcp_alias(msg, pval); +} + /** * */ _______________________________________________ Kamailio - Development Mailing List -- [email protected] To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender!
