summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-11-05 23:25:37 +0000
committerBenny Prijono <bennylp@teluu.com>2007-11-05 23:25:37 +0000
commit156648a692cd9147563c4983bf41699d25402f50 (patch)
tree79fa4d3e0a5691417c9037e68062514695c22d23 /pjsip
parent64d35f1ec59ac48d81207b04b15020691f075845 (diff)
SIP TCP and TLS transports may call send completion callback with bytes_set=0 when send operation fails because outgoing connection is cancelled (for example, application quits). This will trigger assertion error in transaction because transaction only expects positive or negative bytes_set number, but not zero
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1551 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_transport_tcp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c
index 94eb61da..4a8024d2 100644
--- a/pjsip/src/pjsip/sip_transport_tcp.c
+++ b/pjsip/src/pjsip/sip_transport_tcp.c
@@ -1078,6 +1078,9 @@ static void on_write_complete(pj_ioqueue_key_t *key,
/*
* Notify sip_transport.c that packet has been sent.
*/
+ if (bytes_sent == 0)
+ bytes_sent = -PJ_RETURN_OS_ERROR(OSERR_ENOTCONN);
+
tdata_op_key->callback(&tcp->base, tdata_op_key->token, bytes_sent);
/* Mark last activity time */