X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FServerSocket.cpp;h=fb6e3bf75c6abe24c62e7c7b05ad683041b6df74;hb=fb90076e9065018ee0ef9e16bae2a5d9dcc9436d;hp=3d73a67ed6d955c08318323357856f5ec10aa8f9;hpb=aafd52f44167d5510be1ddcb974daa9dae486933;p=lyx.git diff --git a/src/ServerSocket.cpp b/src/ServerSocket.cpp index 3d73a67ed6..fb6e3bf75c 100644 --- a/src/ServerSocket.cpp +++ b/src/ServerSocket.cpp @@ -97,6 +97,11 @@ string const ServerSocket::address() const // is OK and if the number of clients does not exceed MAX_CLIENTS void ServerSocket::serverCallback() { + if (clients.size() >= MAX_CLIENTS) { + writeln("BYE:Too many clients connected"); + return; + } + int const client_fd = socktools::accept(fd_); if (fd_ == -1) { @@ -104,11 +109,6 @@ void ServerSocket::serverCallback() return; } - if (clients.size() >= MAX_CLIENTS) { - writeln("BYE:Too many clients connected"); - return; - } - // Register the new client. clients[client_fd] = shared_ptr(new LyXDataSocket(client_fd)); @@ -129,11 +129,11 @@ void ServerSocket::dataCallback(int fd) return; shared_ptr client = it->second; string line; - size_t pos; bool saidbye = false; while (!saidbye && client->readln(line)) { // The protocol must be programmed here // Split the key and the data + size_t pos; if ((pos = line.find(':')) == string::npos) { client->writeln("ERROR:" + line + ":malformed message"); continue;