Changeset 2646 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
- Timestamp:
- Apr 26, 2009 11:02:04 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
r2442 r2646 1504 1504 1505 1505 /* 1506 * Start a timer to terminate transaction after the specified time 1507 * has elapsed. 1508 */ 1509 PJ_DEF(pj_status_t) pjsip_tsx_set_timeout( pjsip_transaction *tsx, 1510 unsigned millisec) 1511 { 1512 struct tsx_lock_data lck; 1513 pj_time_val timeout; 1514 1515 PJ_ASSERT_RETURN(tsx != NULL, PJ_EINVAL); 1516 PJ_ASSERT_RETURN(tsx->role == PJSIP_ROLE_UAC && 1517 tsx->method.id == PJSIP_INVITE_METHOD, 1518 PJ_EINVALIDOP); 1519 1520 lock_tsx(tsx, &lck); 1521 1522 /* Transaction must not have got final response */ 1523 PJ_ASSERT_ON_FAIL(tsx->status_code < 200, 1524 { unlock_tsx(tsx, &lck); return PJ_EINVALIDOP; }); 1525 1526 if (tsx->timeout_timer.id != 0) { 1527 pjsip_endpt_cancel_timer(tsx->endpt, &tsx->timeout_timer); 1528 tsx->timeout_timer.id = 0; 1529 } 1530 1531 timeout.sec = 0; 1532 timeout.msec = millisec; 1533 pj_time_val_normalize(&timeout); 1534 1535 tsx->timeout_timer.id = TIMER_ACTIVE; 1536 pjsip_endpt_schedule_timer(tsx->endpt, &tsx->timeout_timer, 1537 &timeout); 1538 1539 1540 unlock_tsx(tsx, &lck); 1541 1542 return PJ_SUCCESS; 1543 } 1544 1545 1546 /* 1506 1547 * This function is called by TU to send a message. 1507 1548 */
Note: See TracChangeset
for help on using the changeset viewer.