Changeset 1387 for pjproject/trunk/pjsip/src/pjsip/sip_transport.c
- Timestamp:
- Jun 23, 2007 4:22:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transport.c
r1310 r1387 602 602 return status; 603 603 } 604 605 606 /* Send raw data */ 607 PJ_DEF(pj_status_t) pjsip_transport_send_raw(pjsip_transport *tr, 608 const void *raw_data, 609 pj_size_t data_len, 610 const pj_sockaddr_t *addr, 611 int addr_len, 612 void *token, 613 pjsip_tp_send_callback cb) 614 { 615 pjsip_tx_data *tdata; 616 pj_status_t status; 617 618 status = pjsip_endpt_create_tdata(tr->endpt, &tdata); 619 if (status != PJ_SUCCESS) 620 return status; 621 622 /* Add reference counter. */ 623 pjsip_tx_data_add_ref(tdata); 624 625 /* Allocate buffer */ 626 tdata->buf.start = (char*) pj_pool_alloc(tdata->pool, data_len); 627 tdata->buf.end = tdata->buf.start + data_len; 628 629 /* Copy data */ 630 pj_memcpy(tdata->buf.start, raw_data, data_len); 631 tdata->buf.cur = tdata->buf.start + data_len; 632 633 /* Save callback data. */ 634 tdata->token = token; 635 tdata->cb = cb; 636 637 /* Mark as pending. */ 638 tdata->is_pending = 1; 639 640 /* Send to transoprt */ 641 status = tr->send_msg(tr, tdata, addr, addr_len, 642 tdata, &transport_send_callback); 643 644 if (status != PJ_EPENDING) { 645 /* callback will not be called, so destroy tdata now. */ 646 pjsip_tx_data_dec_ref(tdata); 647 } 648 649 return status; 650 } 651 604 652 605 653 static void transport_idle_callback(pj_timer_heap_t *timer_heap,
Note: See TracChangeset
for help on using the changeset viewer.