Ignore:
Timestamp:
Aug 1, 2010 9:48:51 AM (14 years ago)
Author:
bennylp
Message:

Implemented core multipart support and support in the invite session (re #1070)

  • incoming multipart message will be handled automatically
  • for testing, enable HAVE_MULTIPART_TEST in pjsua_app.c
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_core.c

    r3216 r3243  
    143143    pj_bzero(msg_data, sizeof(*msg_data)); 
    144144    pj_list_init(&msg_data->hdr_list); 
     145    pjsip_media_type_init(&msg_data->multipart_ctype, NULL, NULL); 
     146    pj_list_init(&msg_data->multipart_parts); 
    145147} 
    146148 
     
    22262228        tdata->msg->body = body; 
    22272229    } 
     2230 
     2231    /* Multipart */ 
     2232    if (!pj_list_empty(&msg_data->multipart_parts) && 
     2233        msg_data->multipart_ctype.type.slen) 
     2234    { 
     2235        pjsip_msg_body *bodies; 
     2236        pjsip_multipart_part *part; 
     2237        pj_str_t *boundary = NULL; 
     2238 
     2239        bodies = pjsip_multipart_create(tdata->pool, 
     2240                                        &msg_data->multipart_ctype, 
     2241                                        boundary); 
     2242        part = msg_data->multipart_parts.next; 
     2243        while (part != &msg_data->multipart_parts) { 
     2244            pjsip_multipart_part *part_copy; 
     2245 
     2246            part_copy = pjsip_multipart_clone_part(tdata->pool, part); 
     2247            pjsip_multipart_add_part(tdata->pool, bodies, part_copy); 
     2248            part = part->next; 
     2249        } 
     2250 
     2251        if (tdata->msg->body) { 
     2252            part = pjsip_multipart_create_part(tdata->pool); 
     2253            part->body = tdata->msg->body; 
     2254            pjsip_multipart_add_part(tdata->pool, bodies, part); 
     2255 
     2256            tdata->msg->body = NULL; 
     2257        } 
     2258 
     2259        tdata->msg->body = bodies; 
     2260    } 
    22282261} 
    22292262 
Note: See TracChangeset for help on using the changeset viewer.