]> git.pond.sub.org Git - empserver/blobdiff - src/lib/player/login.c
Base idle timeout on player->curup again, not current time
[empserver] / src / lib / player / login.c
index fd56f531dfa6e34c5a2f11a622779545b108772b..61e011d9bb17d6d0e101a95dbd16a1ea1a180008 100644 (file)
@@ -76,6 +76,7 @@ static struct cmndstr login_coms[] = {
 void
 player_login(void *ud)
 {
+    struct timeval timeout;
     char buf[128];
     char space[128];
     int ac;
@@ -89,7 +90,8 @@ player_login(void *ud)
     for (;;) {
        io_output(player->iop, 1);
        if (io_gets(player->iop, buf, sizeof(buf)) < 0) {
-           res = io_input(player->iop, 1);
+           io_timeout(&timeout, player->curup + minutes(max_idle));
+           res = io_input(player->iop, &timeout);
            if (res <= 0) {
                if (res == 0 && !io_eof(player->iop))
                    pr_id(player, C_DATA, "idle connection terminated\n");