aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-11 16:49:00 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-11 16:49:00 +0000
commitff4e79f673dd7452ca70cd0c221b89bd91e96c14 (patch)
treead811d80aa79cff794f25a33010c7a3901974c4d /channels
parentde3ad8cac3edf96a86ade3d678fbbac26a600d8f (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.2@68732 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_misdn.c12
-rw-r--r--channels/misdn/isdn_msg_parser.c2
2 files changed, 13 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index addc59a9b..2c7bf1ef3 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2913,6 +2913,11 @@ 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);
+ if (!tmp) {
+ ast_log(LOG_ERROR,"Could not create Asterisk object\n");
+ return NULL;
+ }
+
cl->ast=tmp;
/* register chan in local list */
@@ -3804,6 +3809,13 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
ch->orginator = 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;
read_config(ch, ORG_MISDN);
diff --git a/channels/misdn/isdn_msg_parser.c b/channels/misdn/isdn_msg_parser.c
index 5af067cd1..e205023bf 100644
--- a/channels/misdn/isdn_msg_parser.c
+++ b/channels/misdn/isdn_msg_parser.c
@@ -803,7 +803,7 @@ msg_t *build_restart (struct isdn_msg msgs[], struct misdn_bchannel *bc, int nt)
printf("Building RESTART Msg\n");
#endif
enc_ie_channel_id(&restart->CHANNEL_ID, msg, 1,bc->channel, nt,bc);
- enc_ie_restart_ind(&restart->RESTART_IND, msg, 0x80, nt, bc);
+ enc_ie_restart_ind(&restart->RESTART_IND, msg, 0, nt, bc);
cb_log(0,bc->port, "Restarting channel %d\n", bc->channel);