WOrk on the proper pointer (bug #1773)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3136 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Mark Spencer 22 years ago
parent 8f9ace9228
commit 8f5498177e

@ -918,7 +918,7 @@ zapretry:
outrun: outrun:
if (user->user_no) { /* Only cleanup users who really joined! */ if (user->user_no) { /* Only cleanup users who really joined! */
manager_event(EVENT_FLAG_CALL, "MeetmeLeave", manager_event(EVENT_FLAG_CALL, "MeetmeLeave",
"Channel: %s\r\n" "Channel: %s\r\n"
"Uniqueid: %s\r\n" "Uniqueid: %s\r\n"
"Meetme: %s\r\n", "Meetme: %s\r\n",
@ -926,34 +926,34 @@ outrun:
ast_mutex_lock(&conflock); ast_mutex_lock(&conflock);
conf->users--; conf->users--;
cur = confs; cur = confs;
if (!conf->users) { if (!conf->users) {
/* No more users -- close this one out */ /* No more users -- close this one out */
while(cur) { while(cur) {
if (cur == conf) { if (cur == conf) {
if (prev) if (prev)
prev->next = conf->next; prev->next = conf->next;
else else
confs = conf->next; confs = conf->next;
break; break;
}
prev = cur;
cur = cur->next;
} }
prev = cur; if (!cur)
cur = cur->next; ast_log(LOG_WARNING, "Conference not found\n");
} if (conf->chan)
if (!cur) ast_hangup(conf->chan);
ast_log(LOG_WARNING, "Conference not found\n"); else
if (conf->chan) close(conf->fd);
ast_hangup(conf->chan); free(conf);
else
close(conf->fd);
free(conf);
} else { } else {
/* Remove the user struct */ /* Remove the user struct */
if (user == cur->firstuser) { if (user == conf->firstuser) {
cur->firstuser->nextuser->prevuser = NULL; user->nextuser->prevuser = NULL;
cur->firstuser = cur->firstuser->nextuser; conf->firstuser = user->nextuser;
} else if (user == cur->lastuser){ } else if (user == conf->lastuser){
cur->lastuser->prevuser->nextuser = NULL; user->prevuser->nextuser = NULL;
cur->lastuser = cur->lastuser->prevuser; conf->lastuser = user->prevuser;
} else { } else {
user->nextuser->prevuser = user->prevuser; user->nextuser->prevuser = user->prevuser;
user->prevuser->nextuser = user->nextuser; user->prevuser->nextuser = user->nextuser;

Loading…
Cancel
Save