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