diff --git a/server/src/hardware/protocol/loconet/iohandler/lbserveriohandler.cpp b/server/src/hardware/protocol/loconet/iohandler/lbserveriohandler.cpp index e9d08651..48d389ca 100644 --- a/server/src/hardware/protocol/loconet/iohandler/lbserveriohandler.cpp +++ b/server/src/hardware/protocol/loconet/iohandler/lbserveriohandler.cpp @@ -145,8 +145,11 @@ void LBServerIOHandler::read() m_version = line.substr(7); } - pos += line.size(); - bytesTransferred -= line.size(); + pos = eol + 1; // Skip the newline character + if (pos < end && (*pos == '\n' || *pos == '\r') && *pos != *(pos - 1)) { + pos++; // Skip the second part of CRLF or LFCR + } + bytesTransferred = end - pos; } if(bytesTransferred != 0)