aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-12 18:13:50 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-12 18:13:50 +0000
commit451d1a2d55b2e5efcbb7bd34b76972a447d59734 (patch)
tree65d82af7a9fd4f6ddf5cd7f534b39a140e2b08d2 /main
parent9b1dfc49c666f0186333f9d74db3f10e275b0700 (diff)
Exit from session loop upon error (ie: they disconnected) and don't do any buffer manipulation in do_message. get_input will handle it.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@50629 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/manager.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/main/manager.c b/main/manager.c
index 53b34dd19..88d8e26e2 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2139,10 +2139,6 @@ static int do_message(struct mansession *s)
if (res == 0) {
continue;
} else if (res > 0) {
- /* Strip trailing \r\n */
- if (strlen(header_buf) < 2)
- continue;
- header_buf[strlen(header_buf) - 2] = '\0';
if (ast_strlen_zero(header_buf))
return process_message(s, &m) ? -1 : 0;
else if (m.hdrcount < (AST_MAX_MANHEADERS - 1))
@@ -2200,8 +2196,7 @@ static void *session_do(void *data)
ast_mutex_unlock(&s->__lock);
for (;;) {
res = do_message(s);
-
- if (process_events(s))
+ if ((res < 0) || (process_events(s)))
break;
}
/* session is over, explain why and terminate */