diff options
author | Matthew Nicholson <mnicholson@digium.com> | 2011-03-17 15:02:12 +0000 |
---|---|---|
committer | Matthew Nicholson <mnicholson@digium.com> | 2011-03-17 15:02:12 +0000 |
commit | 581bfad2f3206978e7c813ea5b44f196747a2734 (patch) | |
tree | aa2e6f2498275304e32b64e89237cebf5fd34b2c | |
parent | 08828045b1d950a4af0f1e3f6117843228092d88 (diff) |
Merged revisions 311141 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r311141 | mnicholson | 2011-03-17 10:00:33 -0500 (Thu, 17 Mar 2011) | 11 lines
Merged revisions 311140 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r311140 | mnicholson | 2011-03-17 09:58:52 -0500 (Thu, 17 Mar 2011) | 4 lines
Don't write items to the manager socket twice.
AST-2011-003
(closes issue 0018987)
Reported by: ks-steven
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@311142 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | main/manager.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/main/manager.c b/main/manager.c index 36478edb7..74f9eccac 100644 --- a/main/manager.c +++ b/main/manager.c @@ -1837,6 +1837,9 @@ int ast_hook_send_action(struct manager_custom_hook *hook, const char *msg) static int send_string(struct mansession *s, char *string) { int res; + FILE *f = s->f ? s->f : s->session->f; + int fd = s->f ? s->fd : s->session->fd; + /* It's a result from one of the hook's action invocation */ if (s->hook) { /* @@ -1845,9 +1848,9 @@ static int send_string(struct mansession *s, char *string) */ s->hook->helper(EVENT_FLAG_HOOKRESPONSE, "HookResponse", string); return 0; - } else if (s->f && (res = ast_careful_fwrite(s->f, s->fd, string, strlen(string), s->session->writetimeout))) { - s->write_error = 1; - } else if ((res = ast_careful_fwrite(s->session->f, s->session->fd, string, strlen(string), s->session->writetimeout))) { + } + + if ((res = ast_careful_fwrite(f, fd, string, strlen(string), s->session->writetimeout))) { s->write_error = 1; } |