Yes, I found you commit. That's why now I'm using latest master.
tcl_list shows 200+ tcp connections and only a few of them have ref_count bigger that 1. netstat shows the same number of established connections. If lost tcp_conn structures are not shown in tcp_list how can I check if it is my problem and there are lost chunks of memory somewhere ?
When I was searching for the way how correctly decrement ref_count in tcp_conn I decided to call tcpconn_put(), as you did for webcoskets. I found that there are several function to decrement it: - tcpconn_put() - tcpconn_chld_put() - atomic_dec_and_test().
When I was looking for examples in other modules I saw that tcp_read.c uses tcpconn_chld_put(), but forward.h and msg_translator.c uses only tcpconn_get() without decrementing ref counter at all.
I hope someone who knows tcp implementation in kamailio can shed light on this question.