A client that downgrades to a 1.6 or 1.7 server parsed key repeat with the 1.8 format and swallowed the messages behind it. ServerProxy is now the 1.6 form with 1.7 and 1.8 subclasses picked by the negotiated version, mirroring the ClientProxy classes.
33 lines
937 B
C++
33 lines
937 B
C++
/*
|
|
* Deskflow -- mouse and keyboard sharing utility
|
|
* SPDX-FileCopyrightText: (C) 2026 Synergy App Ltd
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "client/ServerProxy1_7.h"
|
|
#include "deskflow/KeyboardLayoutManager.h"
|
|
|
|
#include <string>
|
|
#include <string_view>
|
|
|
|
//! Proxy for server implementing protocol version 1.8
|
|
class ServerProxy1_8 : public ServerProxy1_7
|
|
{
|
|
public:
|
|
ServerProxy1_8(Client *client, deskflow::IStream *stream, IEventQueue *events);
|
|
~ServerProxy1_8() override = default;
|
|
|
|
protected:
|
|
ConnectionResult parseHandshakeMessage(const uint8_t *code) override;
|
|
ConnectionResult parseMessage(const uint8_t *code) override;
|
|
|
|
private:
|
|
void setServerLayouts();
|
|
void setActiveServerLayout(const std::string_view &layout);
|
|
|
|
std::string m_serverLayout;
|
|
bool m_isUserNotifiedAboutLayoutSyncError = false;
|
|
deskflow::KeyboardLayoutManager m_layoutManager;
|
|
};
|