release all formerly-pending tcap_components after sending them
This commit is contained in:
parent
d62e881f9d
commit
2631e7adcd
|
@ -41,6 +41,16 @@ static ComponentPortion_t *assemble_components(ComponentPortion_t *cp, struct tc
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void release_components(struct tcap_dialogue *td)
|
||||
{
|
||||
struct tcap_component *tcomp, *tcomp2;
|
||||
|
||||
llist_for_each_entry_safe(tcomp, tcomp2, &td->pend_comp_list, list) {
|
||||
llist_del(&tcomp->list);
|
||||
talloc_free(tcomp);
|
||||
}
|
||||
}
|
||||
|
||||
/* Extract the Application Context Name and User Info from a DialoguePDU */
|
||||
static int extract_appctx_uinfo(OBJECT_IDENTIFIER_t **app_ctx_name, struct user_information **user_info,
|
||||
struct DialoguePDU *dial_pdu)
|
||||
|
@ -170,6 +180,8 @@ int tcap_csl_tc_begin_req(struct tcap_dialogue *td, OBJECT_IDENTIFIER_t *app_ctx
|
|||
|
||||
tcap_trans_set_state(&td->trans, TCAP_TS_INIT_SENT);
|
||||
|
||||
release_components(td);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -386,6 +398,8 @@ int tcap_csl_tc_cont_req(struct tcap_dialogue *td, OBJECT_IDENTIFIER_t *app_ctx,
|
|||
|
||||
tcap_trans_set_state(&td->trans, TCAP_TS_ACTIVE);
|
||||
|
||||
release_components(td);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue