Changeset 4258 for pjproject/trunk
- Timestamp:
- Sep 18, 2012 8:39:46 AM (12 years ago)
- Location:
- pjproject/trunk/pjsip/src/pjsip
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transport_tcp.c
r3553 r4258 74 74 PJ_DECL_LIST_MEMBER(struct delayed_tdata); 75 75 pjsip_tx_data_op_key *tdata_op_key; 76 pj_time_val timeout; 76 77 }; 77 78 … … 650 651 static void tcp_flush_pending_tx(struct tcp_transport *tcp) 651 652 { 653 pj_time_val now; 654 655 pj_gettickcount(&now); 652 656 pj_lock_acquire(tcp->base.lock); 653 657 while (!pj_list_empty(&tcp->delayed_list)) { … … 663 667 tdata = pending_tx->tdata_op_key->tdata; 664 668 op_key = (pj_ioqueue_op_key_t*)pending_tx->tdata_op_key; 669 670 if (pending_tx->timeout.sec > 0 && 671 PJ_TIME_VAL_GT(now, pending_tx->timeout)) 672 { 673 on_data_sent(tcp->asock, op_key, -PJ_ETIMEDOUT); 674 continue; 675 } 665 676 666 677 /* send! */ … … 1123 1134 * connect() is still in progress. Put the transmit data to 1124 1135 * the delayed list. 1136 * Starting from #1583 (https://trac.pjsip.org/repos/ticket/1583), 1137 * we also add timeout value for the transmit data. When the 1138 * connect() is completed, the timeout value will be checked to 1139 * determine whether the transmit data needs to be sent. 1125 1140 */ 1126 delayed_tdata = PJ_POOL_ ALLOC_T(tdata->pool,1127 struct delayed_tdata);1141 delayed_tdata = PJ_POOL_ZALLOC_T(tdata->pool, 1142 struct delayed_tdata); 1128 1143 delayed_tdata->tdata_op_key = &tdata->op_key; 1144 if (tdata->msg && tdata->msg->type == PJSIP_REQUEST_MSG) { 1145 pj_gettickcount(&delayed_tdata->timeout); 1146 delayed_tdata->timeout.msec += pjsip_cfg()->tsx.td; 1147 pj_time_val_normalize(&delayed_tdata->timeout); 1148 } 1129 1149 1130 1150 pj_list_push_back(&tcp->delayed_list, delayed_tdata); -
pjproject/trunk/pjsip/src/pjsip/sip_transport_tls.c
r4146 r4258 72 72 PJ_DECL_LIST_MEMBER(struct delayed_tdata); 73 73 pjsip_tx_data_op_key *tdata_op_key; 74 pj_time_val timeout; 74 75 }; 75 76 … … 648 649 static void tls_flush_pending_tx(struct tls_transport *tls) 649 650 { 651 pj_time_val now; 652 653 pj_gettickcount(&now); 650 654 pj_lock_acquire(tls->base.lock); 651 655 while (!pj_list_empty(&tls->delayed_list)) { … … 661 665 tdata = pending_tx->tdata_op_key->tdata; 662 666 op_key = (pj_ioqueue_op_key_t*)pending_tx->tdata_op_key; 667 668 if (pending_tx->timeout.sec > 0 && 669 PJ_TIME_VAL_GT(now, pending_tx->timeout)) 670 { 671 on_data_sent(tls->ssock, op_key, -PJ_ETIMEDOUT); 672 continue; 673 } 663 674 664 675 /* send! */ … … 1218 1229 * connect() is still in progress. Put the transmit data to 1219 1230 * the delayed list. 1231 * Starting from #1583 (https://trac.pjsip.org/repos/ticket/1583), 1232 * we also add timeout value for the transmit data. When the 1233 * connect() is completed, the timeout value will be checked to 1234 * determine whether the transmit data needs to be sent. 1220 1235 */ 1221 delayed_tdata = PJ_POOL_ ALLOC_T(tdata->pool,1222 struct delayed_tdata);1236 delayed_tdata = PJ_POOL_ZALLOC_T(tdata->pool, 1237 struct delayed_tdata); 1223 1238 delayed_tdata->tdata_op_key = &tdata->op_key; 1239 if (tdata->msg && tdata->msg->type == PJSIP_REQUEST_MSG) { 1240 pj_gettickcount(&delayed_tdata->timeout); 1241 delayed_tdata->timeout.msec += pjsip_cfg()->tsx.td; 1242 pj_time_val_normalize(&delayed_tdata->timeout); 1243 } 1224 1244 1225 1245 pj_list_push_back(&tls->delayed_list, delayed_tdata);
Note: See TracChangeset
for help on using the changeset viewer.