diff options
Diffstat (limited to 'pjsip/src/pjsip/sip_transport_tcp.c')
-rw-r--r-- | pjsip/src/pjsip/sip_transport_tcp.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c index 59f33e49..14842484 100644 --- a/pjsip/src/pjsip/sip_transport_tcp.c +++ b/pjsip/src/pjsip/sip_transport_tcp.c @@ -1067,6 +1067,19 @@ static void on_write_complete(pj_ioqueue_key_t *key, tdata_op_key->tdata = NULL; + if (tdata_op_key->callback) { + /* + * 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 */ + pj_gettimeofday(&tcp->last_activity); + } + /* Check for error/closure */ if (bytes_sent <= 0) { pj_status_t status; @@ -1080,18 +1093,6 @@ static void on_write_complete(pj_ioqueue_key_t *key, pjsip_transport_shutdown(&tcp->base); } - if (tdata_op_key->callback) { - /* - * 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 */ - pj_gettimeofday(&tcp->last_activity); - } } |