#include "support/FileName.h"
#include "support/socktools.h"
-#include <boost/bind.hpp>
+#include "support/bind.h"
#include <cerrno>
#include <ostream>
using namespace std;
using namespace lyx::support;
-using boost::shared_ptr;
namespace lyx {
theApp()->registerSocketCallback(
fd_,
- boost::bind(&ServerSocket::serverCallback, this)
+ bind(&ServerSocket::serverCallback, this)
);
LYXERR(Debug::LYXSERVER, "lyx: New server socket "
shared_ptr<LyXDataSocket>(new LyXDataSocket(client_fd));
theApp()->registerSocketCallback(
client_fd,
- boost::bind(&ServerSocket::dataCallback,
+ bind(&ServerSocket::dataCallback,
this, client_fd)
);
}
// 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);