if (lp->iop) {
/* it's a real player */
- io_close(lp->iop, player->curup + minutes(max_idle));
+ io_close(lp->iop, player->curup + login_grace_time);
lp->iop = NULL;
}
back = (struct player *)lp->queue.q_back;
return NULL;
}
+time_t
+player_io_deadline(struct player *pl, int write)
+{
+ if (pl->may_sleep < (write ? PLAYER_SLEEP_FREELY : PLAYER_SLEEP_ON_INPUT))
+ return 0;
+ if (pl->state != PS_PLAYING)
+ return pl->curup + login_grace_time;
+ return pl->curup
+ + minutes(pl->nstat & NONVIS ? max_idle: max_idle_visitor);
+}
+
/*ARGSUSED*/
void
player_accept(void *unused)