From 0c49f9a29ccab1f23d8c8f1209d887280ec0e687 Mon Sep 17 00:00:00 2001 From: Mike Mueller Date: Fri, 1 May 2026 19:27:57 +0200 Subject: [PATCH] proto: backport HttpProxyRequest/Response (tags 27, 28) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backports the HeaderEntry / HttpProxyRequest / HttpProxyResponse messages and the corresponding union tags from upstream rustdesk/hbb_common @87b11a7 onto the OSS server's pinned commit @83419b6 — wire-compatible with the client-side encoder in rustdesk's src/common.rs::tcp_proxy_request. Cherry-pick over a full submodule bump because the upstream commit pulls newer transitive deps (notably tokio) that risk breaking axum 0.5 in the hbbs HTTP layer. Co-Authored-By: Claude Opus 4.7 (1M context) --- protos/rendezvous.proto | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/protos/rendezvous.proto b/protos/rendezvous.proto index b9b8ed7..6fb735f 100644 --- a/protos/rendezvous.proto +++ b/protos/rendezvous.proto @@ -170,6 +170,29 @@ message HealthCheck { string token = 1; } +// Backported from upstream rustdesk/hbb_common @ 87b11a7 so the OSS hbbs +// can implement the HTTP-over-rendezvous fallback the client uses when +// OPTION_USE_RAW_TCP_FOR_API=Y. Wire-compatible with the client; only the +// three message types and tags 27/28 are added. +message HeaderEntry { + string name = 1; + string value = 2; +} + +message HttpProxyRequest { + string method = 1; + string path = 2; + repeated HeaderEntry headers = 3; + bytes body = 4; +} + +message HttpProxyResponse { + int32 status = 1; + repeated HeaderEntry headers = 2; + bytes body = 3; + string error = 4; +} + message RendezvousMessage { oneof union { RegisterPeer register_peer = 6; @@ -193,5 +216,7 @@ message RendezvousMessage { OnlineResponse online_response = 24; KeyExchange key_exchange = 25; HealthCheck hc = 26; + HttpProxyRequest http_proxy_request = 27; + HttpProxyResponse http_proxy_response = 28; } }