diff options
author | Richard Mudgett <rmudgett@digium.com> | 2013-07-17 22:30:28 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2013-07-17 22:30:28 +0000 |
commit | 40ce5e0d18520cd7a440cd8849e3e920be68f471 (patch) | |
tree | 5499af489ac45954318119e4294811be3da06dff /main/channel.c | |
parent | da1902cdc060763a712bb1586cfca5ec1e9a2c49 (diff) |
Change ast_hangup() to return void and be NULL safe.
Since ast_hangup() is effectively a channel destructor, it should be a
void function.
* Make the few silly callers checking the return value no longer do so.
Only the CDR and CEL unit tests checked the return value.
* Make all callers take advantage of the NULL safe change and remove the
NULL check before the call.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/main/channel.c b/main/channel.c index c6df5f8b0..9932642c3 100644 --- a/main/channel.c +++ b/main/channel.c @@ -2640,8 +2640,13 @@ static void destroy_hooks(struct ast_channel *chan) } /*! \brief Hangup a channel */ -int ast_hangup(struct ast_channel *chan) +void ast_hangup(struct ast_channel *chan) { + /* Be NULL safe for RAII_VAR() usage. */ + if (!chan) { + return; + } + ast_autoservice_stop(chan); ast_channel_lock(chan); @@ -2669,7 +2674,7 @@ int ast_hangup(struct ast_channel *chan) ast_set_flag(ast_channel_flags(chan), AST_FLAG_ZOMBIE); destroy_hooks(chan); ast_channel_unlock(chan); - return 0; + return; } /* Mark as a zombie so a masquerade cannot be setup on this channel. */ @@ -2733,8 +2738,6 @@ int ast_hangup(struct ast_channel *chan) ast_cc_offer(chan); ast_channel_unref(chan); - - return 0; } int ast_raw_answer(struct ast_channel *chan) |