mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-18 18:58:22 +00:00
Make sure a channel exists before attempting to start or stop channel
autoservice in func_lock and func_shell. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87233 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -257,8 +257,12 @@ static int unlock_read(struct ast_channel *chan, const char *cmd, char *data, ch
|
||||
|
||||
static int lock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
|
||||
{
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
|
||||
ast_copy_string(buf, get_lock(chan, data, 0) ? "0" : "1", len);
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
@@ -266,8 +270,12 @@ static int lock_read(struct ast_channel *chan, const char *cmd, char *data, char
|
||||
|
||||
static int trylock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
|
||||
{
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
|
||||
ast_copy_string(buf, get_lock(chan, data, 1) ? "0" : "1", len);
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
|
@@ -49,6 +49,7 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_start(chan);
|
||||
|
||||
if (len >= 1) {
|
||||
@@ -62,6 +63,7 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data,
|
||||
pclose(ptr);
|
||||
}
|
||||
|
||||
if (chan)
|
||||
ast_autoservice_stop(chan);
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user