Add a missing unlock and properly handle the 'maxusers' setting on MeetMe
authorSean Bright <sean@malleable.com>
Thu, 15 Jan 2009 15:33:18 +0000 (15:33 +0000)
committerSean Bright <sean@malleable.com>
Thu, 15 Jan 2009 15:33:18 +0000 (15:33 +0000)
conferences.  We were using the 'user number' field to compare against the
maximum allowed users, which works assuming users with lower user numbers
didn't leave the conference.

(closes issue #14117)
Reported by: sergedevorop
Patches:
      20090114__bug14117-2.diff.txt uploaded by seanbright (license 71)
Tested by: sergedevorop

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

apps/app_meetme.c

index 0c49064..f4ed6a8 100644 (file)
@@ -2187,10 +2187,12 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
                user->user_no = AST_LIST_LAST(&conf->userlist)->user_no + 1;
 
        if (rt_schedule && conf->maxusers)
-               if (user->user_no > conf->maxusers) {
+               if (conf->users >= conf->maxusers) {
                        /* Sorry, but this confernce has reached the participant limit! */      
                        if (!ast_streamfile(chan, "conf-full", chan->language))
                                ast_waitstream(chan, "");
+                       ast_mutex_unlock(&conf->playlock);
+                       user->user_no = 0;
                        goto outrun;
                }