manager: Make challenge work with allowmultiplelogin=no
authorJonathan Rose <jrose@digium.com>
Wed, 28 Nov 2012 16:47:44 +0000 (16:47 +0000)
committerJonathan Rose <jrose@digium.com>
Wed, 28 Nov 2012 16:47:44 +0000 (16:47 +0000)
Prior to this patch, challenge would yield a multiple logins error if used
without providing the username (which isn't really supposed to be an argument
to challenge) if allowmultiplelogin was set to no because allowmultiplelogin
finds a user with a zero length login name. This check is simply disabled for
the challenge action when the username is empty by this patch.

(closes issue ASTERISK-20677)
Reported by: Vladimir
Patches:
    challenge_action_nomultiplelogin.diff uploaded by Jonathan Rose (license 6182)
........

Merged revisions 376725 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 376726 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 376727 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@376728 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/manager.c

index d089825..011ae10 100644 (file)
@@ -5127,7 +5127,7 @@ static int process_message(struct mansession *s, const struct message *m)
                        || !strcasecmp(action, "Challenge"))) {
                user = astman_get_header(m, "Username");
 
-               if (check_manager_session_inuse(user)) {
+               if (!ast_strlen_zero(user) && check_manager_session_inuse(user)) {
                        report_session_limit(s);
                        sleep(1);
                        mansession_lock(s);