aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_misdn.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index c6dc75920..69aad49c1 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -1952,9 +1952,9 @@ static int misdn_hangup(struct ast_channel *ast)
struct chan_list *p;
struct misdn_bchannel *bc=NULL;
- if (!ast || ! (p=MISDN_ASTERISK_TECH_PVT(ast) ) ) return -1;
-
ast_log(LOG_DEBUG, "misdn_hangup(%s)\n", ast->name);
+
+ if (!ast || ! (p=MISDN_ASTERISK_TECH_PVT(ast) ) ) return -1;
if (!p) {
chan_misdn_log(3, 0, "misdn_hangup called, without chan_list obj.\n");
@@ -1976,11 +1976,15 @@ static int misdn_hangup(struct ast_channel *ast)
if (ast->_state == AST_STATE_RESERVED) {
/* between request and call */
+ ast_log(LOG_DEBUG, "State Reserved => chanIsAvail\n");
MISDN_ASTERISK_TECH_PVT(ast)=NULL;
cl_dequeue_chan(&cl_te, p);
- free(p);
+ close(p->pipe[0]);
+ close(p->pipe[1]);
+
+ free(p);
if (bc)
misdn_lib_release(bc);