Quellcode durchsuchen

tm: backup xavps before running callbacks

regular avps were being backupped, just not xavps.
Alex Hermann vor 11 Jahren
Ursprung
Commit
e1f96b1137
1 geänderte Dateien mit 9 neuen und 0 gelöschten Zeilen
  1. 9 0
      modules/tm/t_hooks.c

+ 9 - 0
modules/tm/t_hooks.c

@@ -355,6 +355,9 @@ static void run_reqin_callbacks_internal(struct tmcb_head_list* hl,
 	struct tm_callback    *cbp;
 	avp_list_t* backup_from, *backup_to, *backup_dom_from, *backup_dom_to,
 				*backup_uri_from, *backup_uri_to;
+#ifdef WITH_XAVP
+	sr_xavp_t **backup_xavps;
+#endif
 
 	if (hl==0 || hl->first==0) return;
 	backup_uri_from = set_avp_list(AVP_CLASS_URI | AVP_TRACK_FROM,
@@ -369,6 +372,9 @@ static void run_reqin_callbacks_internal(struct tmcb_head_list* hl,
 			&trans->domain_avps_from);
 	backup_dom_to = set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_TO, 
 			&trans->domain_avps_to);
+#ifdef WITH_XAVP
+	backup_xavps = xavp_set_list(&trans->xavps_list);
+#endif
 	for (cbp=(struct tm_callback*)hl->first; cbp; cbp=cbp->next)  {
 		DBG("DBG: trans=%p, callback type %d, id %d entered\n",
 			trans, cbp->types, cbp->id );
@@ -381,6 +387,9 @@ static void run_reqin_callbacks_internal(struct tmcb_head_list* hl,
 	set_avp_list(AVP_CLASS_DOMAIN | AVP_TRACK_FROM, backup_dom_from );
 	set_avp_list(AVP_CLASS_USER | AVP_TRACK_TO, backup_to );
 	set_avp_list(AVP_CLASS_USER | AVP_TRACK_FROM, backup_from );
+#ifdef WITH_XAVP
+	xavp_set_list(backup_xavps);
+#endif
 }