On Aug 20, 2010 at 12:32, Andrei Pelinescu-Onciul <and...@iptel.org> wrote: > On Aug 20, 2010 at 10:18, Couprie Geoffroy <geoffroy.coup...@atosorigin.com> > wrote: > > Hello, > > > > I am testing TLS communication with Kamailio 3.0.2, and I encounter a > > strange problem. My setup is like this: > > > > Client <-UDP-> Proxy server <- TLS with client certificate > > authentication -> Authentication server > > 192.168.24.1 192.168.24.128 > > 192.168.24.129 > > > > The two servers are instance of Kamailio 3.0.2 > > > > When the client sends a REGISTER, the proxy retransmits the message to the > > authentication server, which sends back a 401 Unauthorized. But it seems > > the proxy closes the TLS connexion right after forwarding the REGISTER, and > > doesn't receive the 401 message. The TLS handshake is OK, and the client > > certificate is required (I didn't add the verification part yet). The > > REGISTER message goes through TLS, and is received by the authentication > > server. Then, the proxy sends a TLS alert (Close-notify), and after that > > message, the authentication server sends back the 401, and the proxy > > ignores that message. > > > > Could it be caused by a timeout? Is there a way to keep the TLS connection > > opened? > > It looks like a bug. > Could you try the attached patch and report back if it fixes the > problem?
Sorry, forgot to actually attach it. Here it is. Andrei
>From 513c21f67f88484dd12dd6adce6d6ddc7fb60c31 Mon Sep 17 00:00:00 2001 From: Andrei Pelinescu-Onciul <and...@iptel.org> Date: Fri, 20 Aug 2010 12:22:56 +0200 Subject: [PATCH] tls: fix state change while waiting for lock return tls_h_fix_read_conn() did not return the right thing if the state changed while waiting for the lock (the fall-through return was error instead of success). Reported-by: Couprie Geoffroy geoffroy couprie atosorigin com --- modules/tls/tls_server.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/modules/tls/tls_server.c b/modules/tls/tls_server.c index 6d32af6..52b62e3 100644 --- a/modules/tls/tls_server.c +++ b/modules/tls/tls_server.c @@ -971,7 +971,7 @@ int tls_h_fix_read_conn(struct tcp_connection *c) int ret; struct tls_extra_data* tls_c; - ret = -1; + ret = 1; tls_c = 0; if (unlikely(c->extra_data==0)){ lock_get(&c->write_lock); -- 1.7.2.1
_______________________________________________ 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