Ignore:
Timestamp:
Nov 19, 2005 8:28:08 PM (17 years ago)
Author:
bennylp
Message:

Changed transaction to refrect new transport changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_transaction.c

    r54 r58  
    718718    pjsip_transaction *tsx = token; 
    719719    struct tsx_lock_data lck; 
     720    pjsip_transport *tp; 
    720721 
    721722    PJ_LOG(4, (tsx->obj_name, "resolver job complete, status=%d", status)); 
     
    742743 
    743744    tsx->transport_state = PJSIP_TSX_TRANSPORT_STATE_CONNECTING; 
    744     pjsip_endpt_get_transport(tsx->endpt, tsx->pool, 
    745                               addr->entry[0].type, &addr->entry[0].addr, 
    746                               tsx, 
    747                               &tsx_transport_callback); 
     745    status = pjsip_endpt_alloc_transport( tsx->endpt, addr->entry[0].type, 
     746                                          &addr->entry[0].addr, 
     747                                          &tp); 
     748    tsx_transport_callback(tp, tsx, status); 
    748749 
    749750    /* Unlock transaction */ 
     
    941942        tsx->current_addr = 0; 
    942943        tsx->remote_addr.count = 1; 
    943         tsx->remote_addr.entry[0].type =  
    944                 pjsip_transport_get_type(tsx->transport); 
     944        tsx->remote_addr.entry[0].type = tsx->transport->type; 
    945945        pj_memcpy(&tsx->remote_addr.entry[0].addr,  
    946946                  &rdata->pkt_info.addr, rdata->pkt_info.addr_len); 
     
    11821182 
    11831183/* 
     1184 * Transport send completion callback. 
     1185 */ 
     1186static void tsx_on_send_complete(void *token, pjsip_tx_data *tdata, 
     1187                                 pj_ssize_t bytes_sent) 
     1188{ 
     1189    PJ_UNUSED_ARG(token); 
     1190    PJ_UNUSED_ARG(tdata); 
     1191 
     1192    if (bytes_sent <= 0) { 
     1193        PJ_TODO(HANDLE_TRANSPORT_ERROR); 
     1194    } 
     1195} 
     1196 
     1197/* 
    11841198 * Send message to the transport. 
    11851199 * If transport is not yet available, then do nothing. The message will be 
     
    11941208 
    11951209    if (tsx->transport_state == PJSIP_TSX_TRANSPORT_STATE_FINAL) { 
    1196         pj_ssize_t sent; 
    11971210        pjsip_event before_tx_event; 
    11981211 
     
    12281241 
    12291242        tsx->has_unsent_msg = 0; 
    1230         status = pjsip_transport_send_msg( 
    1231                         tsx->transport, tdata, 
    1232                         &tsx->remote_addr.entry[tsx->current_addr].addr, 
    1233                         &sent); 
    1234         if (status != PJ_SUCCESS) { 
     1243        status = pjsip_transport_send(tsx->transport, tdata, 
     1244                        &tsx->remote_addr.entry[tsx->current_addr].addr, 
     1245                        tsx, &tsx_on_send_complete); 
     1246        if (status != PJ_SUCCESS && status != PJ_EPENDING) { 
     1247            PJ_TODO(HANDLE_TRANSPORT_ERROR); 
    12351248            goto on_error; 
    12361249        } 
Note: See TracChangeset for help on using the changeset viewer.