I found one place where tcpconn_put() never called after tcpconn_get():
--- a/msg_translator.c
+++ b/msg_translator.c
@@ -2509,9 +2509,11 @@ char* via_builder( unsigned int *len,
                } else if (con->rcv.proto==PROTO_WSS) {
                        memcpy(line_buf+MY_VIA_LEN-4, "WSS ", 4);
                } else {
+                       tcpconn_put(con);
LOG(L_CRIT, "BUG: via_builder: unknown proto %d\n", con->rcv.proto);
                        return 0;
                }
+               tcpconn_put(con);
        }else if (send_info->proto==PROTO_WSS){
                memcpy(line_buf+MY_VIA_LEN-4, "WSS ", 4);
        }else{

I've tried this patch and it fixed my problem with constantly growing ref_count for WSS connections.

Could you please share why nathelper aggregates both WS and WSS transports to "ws" and then msg_translator have to detect the type of a connection to a destination to build correct via ?

modules/nathelper/nathelper.c create_rcv_uri() function :
        case PROTO_WS:
        case PROTO_WSS:
                proto.s = "WS";
                proto.len = 2;
                break;


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to