X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FServerSocket.cpp;h=3d73a67ed6d955c08318323357856f5ec10aa8f9;hb=6de3c19fd63f810eed90ef3bc4469faf28e949c2;hp=9b19a57315ae8a117363ea243c2c4e0d6e6ad1a2;hpb=c9b9748cee687e709e9e48dd2c78e054d8ea29a3;p=lyx.git diff --git a/src/ServerSocket.cpp b/src/ServerSocket.cpp index 9b19a57315..3d73a67ed6 100644 --- a/src/ServerSocket.cpp +++ b/src/ServerSocket.cpp @@ -41,7 +41,6 @@ using namespace std; using namespace lyx::support; - namespace lyx { // Address is the unix address for the socket. @@ -125,8 +124,10 @@ void ServerSocket::serverCallback() // if the connection has been closed void ServerSocket::dataCallback(int fd) { - shared_ptr client = clients[fd]; - + map >::const_iterator it = clients.find(fd); + if (it == clients.end()) + return; + shared_ptr client = it->second; string line; size_t pos; bool saidbye = false; @@ -141,8 +142,10 @@ void ServerSocket::dataCallback(int fd) 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);