using namespace lyx::support;
-
namespace lyx {
// Address is the unix address for the socket.
// if the connection has been closed
void ServerSocket::dataCallback(int fd)
{
- shared_ptr<LyXDataSocket> client = clients[fd];
-
+ map<int, shared_ptr<LyXDataSocket> >::const_iterator it = clients.find(fd);
+ if (it == clients.end())
+ return;
+ shared_ptr<LyXDataSocket> client = it->second;
string line;
size_t pos;
bool saidbye = false;
string const key = line.substr(0, pos);
if (key == "LYXCMD") {
string const cmd = line.substr(pos + 1);
+ FuncRequest fr(lyxaction.lookupFunc(cmd));
+ fr.setOrigin(FuncRequest::LYXSERVER);
DispatchResult dr;
- theApp()->dispatch(lyxaction.lookupFunc(cmd), dr);
+ theApp()->dispatch(fr, dr);
string const rval = to_utf8(dr.message());
if (dr.error())
client->writeln("ERROR:" + cmd + ':' + rval);