]> git.pond.sub.org Git - empserver/blobdiff - src/lib/player/accept.c
Separate max_idle_visitor from max_idle
[empserver] / src / lib / player / accept.c
index 8d459182d019aa12c37806fe9c4513da9dfc8975..92b5456e5f019f2cdf4a44d389332d789c47bd3b 100644 (file)
@@ -99,7 +99,7 @@ player_delete(struct player *lp)
 
     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;
@@ -152,6 +152,17 @@ getplayer(natid cnum)
     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)