]> git.pond.sub.org Git - empserver/commit - src/lib/player/player.c
Disable nested execute. The execute protocol is flawed and cannot be
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 9 Dec 2007 17:24:30 +0000 (17:24 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 9 Dec 2007 17:24:30 +0000 (17:24 +0000)
commitadfab4344ebcaa53c3111392395495e58af59176
treef454f30df4cd58d5e69435b413ba44bdc5b78f99
parented8e0cd55272bb5c400a8efa1e8eec062ad3892d
Disable nested execute.  The execute protocol is flawed and cannot be
implemented correctly by asynchronous clients --- unless a client
waits for a prompt after sending the execute command and its argument,
it is prone to send more input before the C_EXECUTE arrives.  That
input overtakes the contents of the script file.  This is almost
certain to happen when the execute is in a script file.  Disabling
that is probably more useful and certainly less painful than
documenting this mess.  The client rejects nested execute since
servcmd.c rev. 1.42.
(EXEC): new.
(player_coms): Require it for execute.
(player_set_nstat): Set it in nstat.
(execute): Clear it in nstat.
include/player.h
src/lib/player/empmod.c
src/lib/player/init_nats.c
src/lib/player/player.c