summaryrefslogtreecommitdiffstats
path: root/mbbsd/user.c
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd/user.c')
-rw-r--r--mbbsd/user.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mbbsd/user.c b/mbbsd/user.c
index e67d4c68..b8fc5d77 100644
--- a/mbbsd/user.c
+++ b/mbbsd/user.c
@@ -200,11 +200,12 @@ void
kick_all(char *user)
{
userinfo_t *ui;
- int num = searchuser(user, NULL);
- while(!(ui = (userinfo_t *) search_ulist(num)))
+ int num = searchuser(user, NULL), i=1;
+ while((ui = (userinfo_t *) search_ulistn(num, i))>0)
{
- if(ui == currutmp) continue;
- kill(ui->pid, SIGHUP);
+ if(ui == currutmp) i++;
+ if ((ui->pid <= 0 || kill(ui->pid, SIGHUP) == -1))
+ purge_utmp(ui);
log_usies("KICK ALL", user);
}
}