i build sip proxy from latest master and got this kind of crash during
startup:
(gdb) where
#0 0x00297265 in ?? ()
#1 0x080961fd in fixup_free_pvar_all (param=0x297265, param_no=1)
at mod_fix.c:307
#2 0x080bb035 in fix_actions (a=0x82d4de8) at route.c:956
#3 0x080d0f8b in fix_rval_expr (p=0x82d7608) at rvalue.c:3719
#4 0x080bb1b6 in fix_actions (a=0x82d1520) at route.c:750
#5 0x080bb635 in fix_actions (a=0x8274870) at route.c:754
#6 0x080bd869 in fix_rl (rt=0x82541f8) at route.c:2096
#7 0x080bd890 in fix_rls () at route.c:2112
#8 0x08092839 in main (argc=15, argv=0xbfd731b4) at main.c:2430
-- juha
i built latest sip router from master on debian squeeze and got warning
CC (cc) [M tm.so] tm_load.o
tm_load.c: In function ‘load_tm’:
tm_load.c:112: warning: assignment from incompatible pointer type
-- juha
Module: sip-router
Branch: andrei/tcp_tls_changes
Commit: 4f2a8e0cf2878fc53953b48761858bdf9a397857
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=4f2a8e0…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Mon Aug 16 01:12:41 2010 +0200
tls: fix partial write on write-wants-read queue flush
When flushing the queue the SSL_write() should be retried until
the queue is empty or there is an error (SSL_WANT_READ or
SSL_WANT_WRITE), since it is possible to have partial writes
smaller then the block size (SSL_write() will write at most 1
record when partial writes are enabled and with the
ssl_max_send_fragment option it is possible to set/have record
sizes smaller then typical writes).
---
modules/tls/sbufq.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/modules/tls/sbufq.h b/modules/tls/sbufq.h
index cd29ecb..d50a1a4 100644
--- a/modules/tls/sbufq.h
+++ b/modules/tls/sbufq.h
@@ -265,7 +265,8 @@ inline static int sbufq_flush(struct sbuffer_queue* q, int* flags,
}else{
q->offset+=n;
q->queued-=n;
- break;
+ /* no break: if we are here n < block_size => partial write
+ => the write should be retried */
}
}else{
if (unlikely(n<0))