[svn-commits] kmoore: trunk r406022 - in /trunk: ./ res/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jan 21 11:15:36 CST 2014


Author: kmoore
Date: Tue Jan 21 11:15:34 2014
New Revision: 406022

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=406022
Log:
PJSIP: Handle headers in a list appropriately

The PJSIP header parsing function (pjsip_parse_hdr) can generate more
than one header instance from a single header field. These header
instances exist as a list attached to the returned header and must be
handled appropriately when they are added to a message or else only the
first header instance will be used. This changes the linked list
functions used in outbound proxy code to merge the lists properly.
........

Merged revisions 406020 from http://svn.asterisk.org/svn/asterisk/branches/12

Modified:
    trunk/   (props changed)
    trunk/res/res_pjsip.c
    trunk/res/res_pjsip_outbound_registration.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-12-merged' - no diff available.

Modified: trunk/res/res_pjsip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip.c?view=diff&rev=406022&r1=406021&r2=406022
==============================================================================
--- trunk/res/res_pjsip.c (original)
+++ trunk/res/res_pjsip.c Tue Jan 21 11:15:34 2014
@@ -1539,7 +1539,7 @@
 			pjsip_dlg_terminate(dlg);
 			return NULL;
 		}
-		pj_list_push_back(&route_set, route);
+		pj_list_insert_nodes_before(&route_set, route);
 
 		pjsip_dlg_set_route_set(dlg, &route_set);
 	}
@@ -1901,7 +1901,7 @@
 		return -1;
 	}
 
-	pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)route);
+	pj_list_insert_nodes_before(&tdata->msg->hdr, (pjsip_hdr*)route);
 
 	return 0;
 }

Modified: trunk/res/res_pjsip_outbound_registration.c
URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_outbound_registration.c?view=diff&rev=406022&r1=406021&r2=406022
==============================================================================
--- trunk/res/res_pjsip_outbound_registration.c (original)
+++ trunk/res/res_pjsip_outbound_registration.c Tue Jan 21 11:15:34 2014
@@ -776,7 +776,7 @@
 		if (!(route = pjsip_parse_hdr(pjsip_regc_get_pool(registration->state->client_state->client), &ROUTE_HNAME, tmp.ptr, tmp.slen, NULL))) {
 			return -1;
 		}
-		pj_list_push_back(&route_set, route);
+		pj_list_insert_nodes_before(&route_set, route);
 
 		pjsip_regc_set_route_set(registration->state->client_state->client, &route_set);
 	}




More information about the svn-commits mailing list