X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Flib%2Fplayer%2Flogin.c;h=fc002149dfbecface3bf4e023222a71e31c4553f;hp=d6a2b5424c99dc9e360499ac883aaa90f18f2b21;hb=8549efbc;hpb=0a7306a5ac9e207727ef38892c88cba4323a0deb diff --git a/src/lib/player/login.c b/src/lib/player/login.c index d6a2b5424..fc002149d 100644 --- a/src/lib/player/login.c +++ b/src/lib/player/login.c @@ -86,7 +86,7 @@ player_login(void *ud) pr_id(player, C_INIT, "Empire server ready\n"); - while (player->state != PS_SHUTDOWN) { + for (;;) { io_output(player->iop, 1); if (io_gets(player->iop, buf, sizeof(buf)) < 0) { res = io_input(player->iop, 1); @@ -355,9 +355,11 @@ play_cmd(void) empth_set_name(empth_self(), buf); logerror("%s logged in as country #%d", praddr(player), player->cnum); pr_id(player, C_INIT, "%d\n", CLIENTPROTO); + player->state = PS_PLAYING; player_main(player); logerror("%s logged out, country #%d", praddr(player), player->cnum); - player->state = PS_SHUTDOWN; + if (CANT_HAPPEN(!io_eof(player->iop))) + io_set_eof(player->iop); return RET_OK; }