]> git.pond.sub.org Git - empserver/blobdiff - src/lib/player/recvclient.c
Reimplement max_idle without a separate thread
[empserver] / src / lib / player / recvclient.c
index 467deedf007e7307847303526d678387dbfe8c82..20e7d314840ff0d06b6840e7f0df325299fa9593 100644 (file)
@@ -84,10 +84,13 @@ recvclient(char *cmd, int size)
        if (player->aborted)
            break;
 
        if (player->aborted)
            break;
 
-       /* Await more input */
-       io_input(player->iop, IO_WAIT);
-       if (io_error(player->iop) || io_eof(player->iop))
+       if (io_input(player->iop, IO_WAIT) <= 0) {
+           if (!io_error(player->iop) && !io_eof(player->iop)) {
+               pr_flash(player, "idle connection terminated\n");
+               player->state = PS_SHUTDOWN;
+           }
            player->aborted = player->eof = 1;
            player->aborted = player->eof = 1;
+       }
     }
 
     if (player->aborted) {
     }
 
     if (player->aborted) {