nat: Keep the state (CRCX,MDCX,DLCX) of the operation..

This will allow to have additional debug information and to
use the state inside the forwarding code.
This commit is contained in:
Holger Hans Peter Freyther 2010-08-06 09:05:05 +08:00
parent b84b5f61ac
commit 5b2726e6b5
2 changed files with 6 additions and 0 deletions

View File

@ -121,6 +121,8 @@ struct bsc_config {
* BSCs point of view of endpoints
*/
struct bsc_endpoint {
/* the operation that is carried out */
int transaction_state;
/* the pending transaction id */
char *transaction_id;
/* the bsc we are talking to */

View File

@ -94,6 +94,7 @@ static void bsc_mgcp_free_endpoint(struct bsc_nat *nat, int i)
nat->bsc_endpoints[i].transaction_id = NULL;
}
nat->bsc_endpoints[i].transaction_state = 0;
nat->bsc_endpoints[i].bsc = NULL;
}
@ -202,6 +203,7 @@ int bsc_mgcp_policy_cb(struct mgcp_config *cfg, int endpoint, int state, const c
endpoint, bsc_endp->transaction_id);
talloc_free(bsc_endp->transaction_id);
bsc_endp->transaction_id = NULL;
bsc_endp->transaction_state = 0;
}
bsc_endp->bsc = NULL;
@ -237,6 +239,7 @@ int bsc_mgcp_policy_cb(struct mgcp_config *cfg, int endpoint, int state, const c
bsc_endp->transaction_id = talloc_strdup(nat, transaction_id);
bsc_endp->transaction_state = state;
bsc_endp->bsc = sccp->bsc;
/* we need to update some bits */
@ -325,6 +328,7 @@ void bsc_mgcp_forward(struct bsc_connection *bsc, struct msgb *msg)
/* free some stuff */
talloc_free(bsc_endp->transaction_id);
bsc_endp->transaction_id = NULL;
bsc_endp->transaction_state = 0;
/*
* rewrite the information. In case the endpoint was deleted