diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-09-18 03:11:00 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-09-18 03:11:00 +0800 |
commit | e40bc38c422493c1c703ead9ee5d38ae4699e5e4 (patch) | |
tree | d4903f395734dda3c1d3f8cfba213d73f5301e94 | |
parent | 33cdb7e027086f4eb1bb2c3c24072370e1641962 (diff) |
mgcp: Merge the realloc_cb from OpenBSC here.
-rw-r--r-- | include/mgcp/mgcp.h | 2 | ||||
-rw-r--r-- | src/mgcp/mgcp_protocol.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/include/mgcp/mgcp.h b/include/mgcp/mgcp.h index 8271c7f..e7464c6 100644 --- a/include/mgcp/mgcp.h +++ b/include/mgcp/mgcp.h @@ -75,6 +75,7 @@ struct mgcp_config; #define MGCP_POLICY_REJECT 5 #define MGCP_POLICY_DEFER 6 +typedef int (*mgcp_realloc)(struct mgcp_config *cfg, int endpoint); typedef int (*mgcp_change)(struct mgcp_config *cfg, int endpoint, int state, int local_rtp); typedef int (*mgcp_policy)(struct mgcp_config *cfg, int endpoint, int state, const char *transactio_id); typedef int (*mgcp_reset)(struct mgcp_config *cfg); @@ -104,6 +105,7 @@ struct mgcp_config { mgcp_change change_cb; mgcp_policy policy_cb; mgcp_reset reset_cb; + mgcp_realloc realloc_cb; void *data; struct mgcp_endpoint *endpoints; diff --git a/src/mgcp/mgcp_protocol.c b/src/mgcp/mgcp_protocol.c index e4d1996..59abcb8 100644 --- a/src/mgcp/mgcp_protocol.c +++ b/src/mgcp/mgcp_protocol.c @@ -390,6 +390,8 @@ static struct msgb *handle_create_con(struct mgcp_config *cfg, struct msgb *msg) LOGP(DMGCP, LOGL_NOTICE, "Endpoint 0x%x already allocated. Forcing realloc.\n", ENDPOINT_NUMBER(endp)); mgcp_free_endp(endp); + if (cfg->realloc_cb) + cfg->realloc_cb(cfg, ENDPOINT_NUMBER(endp)); } else { LOGP(DMGCP, LOGL_ERROR, "Endpoint is already used. 0x%x\n", ENDPOINT_NUMBER(endp)); |