diff options
author | Christian Richter <christian.richter@beronet.com> | 2007-06-11 17:05:48 +0000 |
---|---|---|
committer | Christian Richter <christian.richter@beronet.com> | 2007-06-11 17:05:48 +0000 |
commit | c2b4e6cef69172716e332e9db78dea8983378f17 (patch) | |
tree | 41e9d4aa6a9525a40733658d0fc5aae888452b8f /channels/chan_misdn.c | |
parent | a9043635ed24055e523e2632be34fd07dea0e7c3 (diff) |
Merged revisions 68733 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r68733 | crichter | 2007-06-11 18:57:59 +0200 (Mo, 11 Jun 2007) | 9 lines
Merged revisions 68732 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r68732 | crichter | 2007-06-11 18:49:00 +0200 (Mo, 11 Jun 2007) | 1 line
added check for NULL Pointer when calling misdn_new. Asterisk does not allow us to create channels anymore when stop gracefully is used :). also modified the restart_indicator to 0
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@68740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r-- | channels/chan_misdn.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index d47eb3ce0..450ee6cc3 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -3057,7 +3057,12 @@ static struct ast_channel *misdn_request(const char *type, int format, void *dat cl->bc = newbc; tmp = misdn_new(cl, AST_STATE_RESERVED, ext, NULL, format, port, channel); - cl->ast = tmp; + if (!tmp) { + ast_log(LOG_ERROR,"Could not create Asterisk object\n"); + return NULL; + } + + cl->ast=tmp; /* register chan in local list */ cl_queue_chan(&cl_te, cl) ; @@ -3959,6 +3964,13 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) ch->originator = ORG_MISDN; chan = misdn_new(ch, AST_STATE_RESERVED, bc->dad, bc->oad, AST_FORMAT_ALAW, bc->port, bc->channel); + + if (!chan) { + misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE); + ast_log(LOG_ERROR, "cb_events: misdn_new failed !\n"); + return 0; + } + ch->ast = chan; if ((exceed = add_in_calls(bc->port))) { |