diff options
author | Vincent Petithory <vincent.petithory@gmail.com> | 2014-07-06 23:32:57 +0200 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-07-19 18:20:39 +0300 |
commit | 3160d63c696612f460e5d0ebe1eb4dfb2bb3e5a1 (patch) | |
tree | ccb5f7bdfb2671208b82f81e14d12c7d52af9f63 /src/commands.cpp | |
parent | 79d20c8ca1709a73701a1ffd30c7218fb2579a50 (diff) | |
download | manaplus-3160d63c696612f460e5d0ebe1eb4dfb2bb3e5a1.tar.gz manaplus-3160d63c696612f460e5d0ebe1eb4dfb2bb3e5a1.tar.bz2 manaplus-3160d63c696612f460e5d0ebe1eb4dfb2bb3e5a1.tar.xz manaplus-3160d63c696612f460e5d0ebe1eb4dfb2bb3e5a1.zip |
Add IPC:
Manaplus now accepts connections on the 44007 port.
* Uses SDL_Net/SDL_Thread.
* Port can be changed with envvar IPC_PORT.
* Default port is first checked then incremented until one is available.
* start on demand with /ipctoggle (shuts down server socket)
It has a simple text protocol: TYPE arg1 [args]...
Message types:
* CMD: execs a command supported by manaplus, e.g /emote
* LTALK: talks in general tab
* TALK: talks in current focused tab
* [TODO] KEY: do as if the KEY was pressed on keyboard
Diffstat (limited to 'src/commands.cpp')
-rw-r--r-- | src/commands.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/commands.cpp b/src/commands.cpp index 94781aef5..00da06cbb 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -63,6 +63,7 @@ #include "net/download.h" #include "net/gamehandler.h" #include "net/guildhandler.h" +#include "net/ipc.h" #include "net/net.h" #include "net/uploadcharinfo.h" #include "net/partyhandler.h" @@ -289,6 +290,26 @@ impHandler2(help) helpWindow->requestMoveToTop(); } +impHandler0(ipcToggle) +{ + if (ipc) + { + IPC::stop(); + if (!ipc) + debugChatTab->chatLog("IPC service stopped."); + else + debugChatTab->chatLog("Unable to stop IPC service."); + } + else + { + IPC::start(); + if (ipc) + debugChatTab->chatLog(strprintf("IPC service available on port %d", ipc->port())); + else + debugChatTab->chatLog("Unable to start IPC service"); + } +} + impHandler2(where) { std::ostringstream where; |