Fix input policy control packet framing and declaration order
Some checks failed
ci-bundle.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
ci-copr.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
ci-homebrew.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
Some checks failed
ci-bundle.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
ci-copr.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
ci-homebrew.yml / Fix input policy control packet framing and declaration order (push) Failing after 0s
This commit is contained in:
parent
6fdeb1b868
commit
07c8a7b5fb
1 changed files with 12 additions and 5 deletions
|
|
@ -462,6 +462,9 @@ namespace stream {
|
||||||
std::atomic<session::state_e> state;
|
std::atomic<session::state_e> state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<std::size_t max_payload_size>
|
||||||
|
static inline std::string_view encode_control(session_t *session, const std::string_view &plaintext, std::array<std::uint8_t, max_payload_size> &tagged_cipher);
|
||||||
|
|
||||||
static void apply_session_input_policy(session_t *session, bool allow_keyboard, bool allow_mouse, bool allow_gamepad, uint8_t reason) {
|
static void apply_session_input_policy(session_t *session, bool allow_keyboard, bool allow_mouse, bool allow_gamepad, uint8_t reason) {
|
||||||
auto effective_keyboard = config::input.keyboard && allow_keyboard;
|
auto effective_keyboard = config::input.keyboard && allow_keyboard;
|
||||||
auto effective_mouse = config::input.mouse && allow_mouse;
|
auto effective_mouse = config::input.mouse && allow_mouse;
|
||||||
|
|
@ -485,13 +488,17 @@ namespace stream {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
control_set_input_policy_t plaintext;
|
struct control_set_input_policy_msg_t {
|
||||||
|
control_header_v2 header;
|
||||||
|
control_set_input_policy_t payload;
|
||||||
|
} plaintext;
|
||||||
|
|
||||||
plaintext.header.type = packetTypes[IDX_SET_INPUT_POLICY];
|
plaintext.header.type = packetTypes[IDX_SET_INPUT_POLICY];
|
||||||
plaintext.header.payloadLength = sizeof(plaintext) - sizeof(control_header_v2);
|
plaintext.header.payloadLength = sizeof(plaintext) - sizeof(control_header_v2);
|
||||||
plaintext.allow_keyboard = session->input_policy.allow_keyboard.load(std::memory_order_relaxed) ? 1 : 0;
|
plaintext.payload.allow_keyboard = session->input_policy.allow_keyboard.load(std::memory_order_relaxed) ? 1 : 0;
|
||||||
plaintext.allow_mouse = session->input_policy.allow_mouse.load(std::memory_order_relaxed) ? 1 : 0;
|
plaintext.payload.allow_mouse = session->input_policy.allow_mouse.load(std::memory_order_relaxed) ? 1 : 0;
|
||||||
plaintext.allow_gamepad = session->input_policy.allow_gamepad.load(std::memory_order_relaxed) ? 1 : 0;
|
plaintext.payload.allow_gamepad = session->input_policy.allow_gamepad.load(std::memory_order_relaxed) ? 1 : 0;
|
||||||
plaintext.reason = reason;
|
plaintext.payload.reason = reason;
|
||||||
|
|
||||||
std::array<std::uint8_t, sizeof(control_encrypted_t) + crypto::cipher::round_to_pkcs7_padded(sizeof(plaintext)) + crypto::cipher::tag_size>
|
std::array<std::uint8_t, sizeof(control_encrypted_t) + crypto::cipher::round_to_pkcs7_padded(sizeof(plaintext)) + crypto::cipher::tag_size>
|
||||||
encrypted_payload;
|
encrypted_payload;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue