ChristianBergerSipgate created an issue (kamailio/kamailio#4167)

Hi,

we have found a potential bug. The pseudo variables return null for WSS 
connections.

Example config:
`xlog("L_INFO", "<mainLogic> REGISTER: TLS or WSS detected: fU=$fU 
tls_version=$tls_version tls_cipher_info=$tls_cipher_info ua=$ua\n");`

Log output:
`Mar  7 08:37:28 sip-tcploadbalancer01 /usr/sbin/kamailio[1268940]: { "level": 
"ERROR", "module": "tls", "file": "tls_select.c", "line": 131, "function": 
"get_cur_connection", "message": "Transport protocol is not TLS (bug in 
config)\n" }
Mar  7 08:37:28 sip-tcploadbalancer01 /usr/sbin/kamailio[1268940]: { "level": 
"INFO", "module": "tls", "file": "tls_select.c", "line": 310, "function": 
"get_version", "message": "TLS connection not found in select_version\n" }
Mar  7 08:37:28 sip-tcploadbalancer01 /usr/sbin/kamailio[1268940]: { "level": 
"ERROR", "module": "tls", "file": "tls_select.c", "line": 131, "function": 
"get_cur_connection", "message": "Transport protocol is not TLS (bug in 
config)\n" }
Mar  7 08:37:28 sip-tcploadbalancer01 /usr/sbin/kamailio[1268940]: { "level": 
"INFO", "module": "tls", "file": "tls_select.c", "line": 201, "function": 
"get_cipher", "message": "TLS connection not found in select_cipher\n" }
Mar  7 08:37:28 sip-tcploadbalancer01 /usr/sbin/kamailio[1268940]: { "level": 
"INFO", "module": "xlog", "file": "xlog.c", "line": 278, "function": "", 
"message": "<mainLogic> REGISTER: TLS or WSS detected: fU=1125411e0 
tls_version=<null> tls_cipher_info=<null> ua=webphone\n" }`

As you can see both tls_version and tls_cipher_info return <null> even though 
the underlying connection is via WSS.

We have looked into it, and it seems like `get_cur_connection` in 
`modules/tls/tls_select.c` only checks for TLS, but not WSS.

```
struct tcp_connection *get_cur_connection(struct sip_msg *msg)
{
        struct tcp_connection *c;

        if(_tls_pv_con != 0)
                return _tls_pv_con;

        if(msg->rcv.proto != PROTO_TLS) {
                ERR("Transport protocol is not TLS (bug in config)\n");
                return 0;
        }

        c = tcpconn_get(msg->rcv.proto_reserved1, 0, 0, 0,
                        cfg_get(tls, tls_cfg, con_lifetime));
        if(c && c->type != PROTO_TLS) {
                ERR("Connection found but is not TLS\n");
                tcpconn_put(c);
                return 0;
        }
        return c;
}
```

We think that checking for `PROTO_WSS` might solve the issue.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4167
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/issues/4...@github.com>
_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to