Changeset 2724 for pjproject/trunk/pjsip/src/pjsip/sip_transport.c
- Timestamp:
- May 29, 2009 1:04:03 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transport.c
r2394 r2724 435 435 } 436 436 437 /* 438 * Print the SIP message to transmit data buffer's internal buffer. 439 */ 440 PJ_DEF(pj_status_t) pjsip_tx_data_encode(pjsip_tx_data *tdata) 441 { 442 /* Allocate buffer if necessary. */ 443 if (tdata->buf.start == NULL) { 444 PJ_USE_EXCEPTION; 445 446 PJ_TRY { 447 tdata->buf.start = (char*) 448 pj_pool_alloc(tdata->pool, PJSIP_MAX_PKT_LEN); 449 } 450 PJ_CATCH_ANY { 451 return PJ_ENOMEM; 452 } 453 PJ_END 454 455 tdata->buf.cur = tdata->buf.start; 456 tdata->buf.end = tdata->buf.start + PJSIP_MAX_PKT_LEN; 457 } 458 459 /* Do we need to reprint? */ 460 if (!pjsip_tx_data_is_valid(tdata)) { 461 pj_ssize_t size; 462 463 size = pjsip_msg_print( tdata->msg, tdata->buf.start, 464 tdata->buf.end - tdata->buf.start); 465 if (size < 0) { 466 return PJSIP_EMSGTOOLONG; 467 } 468 pj_assert(size != 0); 469 tdata->buf.cur[size] = '\0'; 470 tdata->buf.cur += size; 471 } 472 473 return PJ_SUCCESS; 474 } 475 437 476 PJ_DEF(pj_bool_t) pjsip_tx_data_is_valid( pjsip_tx_data *tdata ) 438 477 { … … 568 607 static pj_status_t mod_on_tx_msg(pjsip_tx_data *tdata) 569 608 { 570 /* Allocate buffer if necessary. */ 571 if (tdata->buf.start == NULL) { 572 PJ_USE_EXCEPTION; 573 574 PJ_TRY { 575 tdata->buf.start = (char*) 576 pj_pool_alloc(tdata->pool, PJSIP_MAX_PKT_LEN); 577 } 578 PJ_CATCH_ANY { 579 return PJ_ENOMEM; 580 } 581 PJ_END 582 583 tdata->buf.cur = tdata->buf.start; 584 tdata->buf.end = tdata->buf.start + PJSIP_MAX_PKT_LEN; 585 } 586 587 /* Do we need to reprint? */ 588 if (!pjsip_tx_data_is_valid(tdata)) { 589 pj_ssize_t size; 590 591 size = pjsip_msg_print( tdata->msg, tdata->buf.start, 592 tdata->buf.end - tdata->buf.start); 593 if (size < 0) { 594 return PJSIP_EMSGTOOLONG; 595 } 596 pj_assert(size != 0); 597 tdata->buf.cur[size] = '\0'; 598 tdata->buf.cur += size; 599 } 600 601 return PJ_SUCCESS; 609 return pjsip_tx_data_encode(tdata); 602 610 } 603 611
Note: See TracChangeset
for help on using the changeset viewer.