From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 485561FF183 for ; Wed, 5 Nov 2025 15:14:15 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3EF80267E5; Wed, 5 Nov 2025 15:14:16 +0100 (CET) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pve-devel@lists.proxmox.com Date: Wed, 5 Nov 2025 15:13:08 +0100 Message-ID: <20251105141335.1230493-7-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251105141335.1230493-1-f.gruenbichler@proxmox.com> References: <20251105141335.1230493-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762352004410 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.048 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH proxmox 2/2] http: websocket: add proxy helper X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" YWxsb3dzIHdpcmluZyB1cCB0d28gd2Vic29ja2V0IGNvbm5lY3Rpb25zIHNvIHRoYXQgZGVjb2Rl ZCBkYXRhIGZyb20gdXBzdHJlYW0KaXMgc2VudCBmb3J3YXJkIGRvd25zdHJlYW0gZW5jb2RlZCBh cyB3ZWJzb2NrZXQgZnJhbWVzLCBhbmQgdmljZSB2ZXJzYSwgYWxsCndoaWxlIGhhbmRsaW5nIGNv bnRyb2wgZnJhbWVzLgoKdGhlIHByZWFtYmxlIGlzIHVzZWQgdG8gaW5qZWN0IGFuIGF1dGhlbnRp Y2F0aW9uIGxpbmUgZm9yIHh0ZXJtanMvdGVybXByb3h5IGJ5ClBETS4KClNpZ25lZC1vZmYtYnk6 IEZhYmlhbiBHcsO8bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPgotLS0KIHBy b3htb3gtaHR0cC9zcmMvd2Vic29ja2V0L21vZC5ycyB8IDY3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvcHJveG1veC1odHRwL3NyYy93ZWJzb2NrZXQvbW9kLnJzIGIvcHJveG1veC1odHRwL3NyYy93 ZWJzb2NrZXQvbW9kLnJzCmluZGV4IGViODA4YjUyLi40YmY0N2ViMiAxMDA2NDQKLS0tIGEvcHJv eG1veC1odHRwL3NyYy93ZWJzb2NrZXQvbW9kLnJzCisrKyBiL3Byb3htb3gtaHR0cC9zcmMvd2Vi c29ja2V0L21vZC5ycwpAQCAtODIxLDQgKzgyMSw3MSBAQCBpbXBsIFdlYlNvY2tldCB7CiAgICAg ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLy8gVGFrZXMgdHdvIHdlYnNvY2tl dCBlbmRwb2ludHMgYW5kIGNvbm5lY3RzIHRoZW0gYnkgcmUtZW5jb2RpbmcgdGhlIGRhdGEuCisg ICAgLy8vCisgICAgLy8vIFRoaXMgbWV0aG9kIHRha2VzIGNhcmUgb2YgY29weWluZyB0aGUgZGF0 YSBiZXR3ZWVuIGVuZHBvaW50cywgYW5kIHNlbmRpbmcgY29ycmVjdCByZXNwb25zZXMKKyAgICAv Ly8gZm9yIGNvbnRyb2wgZnJhbWVzIChlLmcuIGEgUG9pbnQgdG8gYSBQaW5nKS4KKyAgICAvLy8K KyAgICAvLy8gVGhlIGBwcmVhbWJsZWAgYWxsb3dzIGluamVjdGluZyBpbml0aWFsIGhhbmRzaGFr ZSBkYXRhIGludG8gdGhlIHByb3h5aW5nLgorICAgIHB1YiBhc3luYyBmbiBwcm94eV9jb25uZWN0 aW9uPFMsIEw+KAorICAgICAgICAmc2VsZiwKKyAgICAgICAgdXBzdHJlYW06IFMsCisgICAgICAg IGRvd25zdHJlYW06IEwsCisgICAgICAgIHByZWFtYmxlOiAmW3U4XSwKKyAgICApIC0+IFJlc3Vs dDwoKSwgRXJyb3I+CisgICAgd2hlcmUKKyAgICAgICAgUzogQXN5bmNSZWFkICsgQXN5bmNXcml0 ZSArIFVucGluICsgU2VuZCArICdzdGF0aWMsCisgICAgICAgIEw6IEFzeW5jUmVhZCArIEFzeW5j V3JpdGUgKyBVbnBpbiArIFNlbmQgKyAnc3RhdGljLAorICAgIHsKKyAgICAgICAgLy8gdW5tYXNr ZWQgYXMgdGhlIHNwZWMgcmVxdWlyZXMKKyAgICAgICAgbGV0IHNlcnZlcl9zb2NrZXQgPSBXZWJT b2NrZXQgeyBtYXNrOiBOb25lIH07CisKKyAgICAgICAgLy8gc3BsaXQgdG8gYWxsb3cgZHVwbGV4 IHRyYW5zZmVyCisgICAgICAgIGxldCAodXBzdHJlYW1fcmF3X3JlYWRlciwgdXBzdHJlYW1fcmF3 X3dyaXRlcikgPSB0b2tpbzo6aW86OnNwbGl0KHVwc3RyZWFtKTsKKyAgICAgICAgbGV0IChkb3du c3RyZWFtX3Jhd19yZWFkZXIsIGRvd25zdHJlYW1fcmF3X3dyaXRlcikgPSB0b2tpbzo6aW86OnNw bGl0KGRvd25zdHJlYW0pOworCisgICAgICAgIC8vIHdpcmUgdXAgV1MgaGFuZGxpbmcgZm9yIHVw c3RyZWFtIGNvbm5lY3Rpb24KKyAgICAgICAgbGV0ICh1cHN0cmVhbV9jb250cm9sX3R4LCBtdXQg dXBzdHJlYW1fY29udHJvbF9yeCkgPSBtcHNjOjp1bmJvdW5kZWRfY2hhbm5lbCgpOworICAgICAg ICBsZXQgbXV0IHVwc3RyZWFtX3dzX3JlYWRlciA9IFdlYlNvY2tldFJlYWRlcjo6bmV3KHVwc3Ry ZWFtX3Jhd19yZWFkZXIsIHVwc3RyZWFtX2NvbnRyb2xfdHgpOworICAgICAgICBsZXQgbXV0IHVw c3RyZWFtX3dzX3dyaXRlciA9IFdlYlNvY2tldFdyaXRlcjo6bmV3KHNlcnZlcl9zb2NrZXQubWFz aywgdXBzdHJlYW1fcmF3X3dyaXRlcik7CisKKyAgICAgICAgLy8gd2lyZSB1cCBXUyBoYW5kbGlu ZyBmb3IgZG93bnN0cmVhbSBjb25uZWN0aW9uCisgICAgICAgIGxldCAoZG93bnN0cmVhbV9jb250 cm9sX3R4LCBtdXQgZG93bnN0cmVhbV9jb250cm9sX3J4KSA9IG1wc2M6OnVuYm91bmRlZF9jaGFu bmVsKCk7CisgICAgICAgIGxldCBtdXQgZG93bnN0cmVhbV93c19yZWFkZXIgPQorICAgICAgICAg ICAgV2ViU29ja2V0UmVhZGVyOjpuZXcoZG93bnN0cmVhbV9yYXdfcmVhZGVyLCBkb3duc3RyZWFt X2NvbnRyb2xfdHgpOworICAgICAgICBsZXQgbXV0IGRvd25zdHJlYW1fd3Nfd3JpdGVyID0gV2Vi U29ja2V0V3JpdGVyOjpuZXcoc2VsZi5tYXNrLCBkb3duc3RyZWFtX3Jhd193cml0ZXIpOworCisg ICAgICAgIC8vIHNlbmQgcHJlYW1ibGUgZG93bnN0cmVhbSB2aWEgV1MKKyAgICAgICAgaWYgIXBy ZWFtYmxlLmlzX2VtcHR5KCkgeworICAgICAgICAgICAgZG93bnN0cmVhbV93c193cml0ZXIud3Jp dGVfYWxsKHByZWFtYmxlKS5hd2FpdD87CisgICAgICAgIH0KKworICAgICAgICAvLyByZWFkIGZy b20gdXBzdHJlYW0sIHdyaXRlIHRvIGRvd25zdHJlYW0gd2hpbGUgaGFuZGxpbmcgY29udHJvbCBm cmFtZXMgcmVjZWl2ZWQgZnJvbQorICAgICAgICAvLyBkb3duc3RyZWFtCisgICAgICAgIGxldCBk b3duc3RyZWFtX2Z1dHVyZSA9IHNlcnZlcl9zb2NrZXQuY29weV90b193ZWJzb2NrZXQoCisgICAg ICAgICAgICAmbXV0IHVwc3RyZWFtX3dzX3JlYWRlciwKKyAgICAgICAgICAgICZtdXQgZG93bnN0 cmVhbV93c193cml0ZXIsCisgICAgICAgICAgICAmbXV0IGRvd25zdHJlYW1fY29udHJvbF9yeCwK KyAgICAgICAgKTsKKworICAgICAgICAvLyByZWFkIGZyb20gZG93bnN0cmVhbSwgd3JpdGUgdG8g dXBzdHJlYW0gd2hpbGUgaGFuZGxpbmcgY29udHJvbCBmcmFtZXMgcmVjZWl2ZWQgZnJvbQorICAg ICAgICAvLyB1cHN0cmVhbQorICAgICAgICBsZXQgdXBzdHJlYW1fZnV0dXJlID0gc2VsZi5jb3B5 X3RvX3dlYnNvY2tldCgKKyAgICAgICAgICAgICZtdXQgZG93bnN0cmVhbV93c19yZWFkZXIsCisg ICAgICAgICAgICAmbXV0IHVwc3RyZWFtX3dzX3dyaXRlciwKKyAgICAgICAgICAgICZtdXQgdXBz dHJlYW1fY29udHJvbF9yeCwKKyAgICAgICAgKTsKKworICAgICAgICBzZWxlY3QhIHsKKyAgICAg ICAgICAgIHJlcyA9IGRvd25zdHJlYW1fZnV0dXJlLmZ1c2UoKSA9PiBtYXRjaCByZXMgeworICAg ICAgICAgICAgICAgIE9rKF8pID0+IE9rKCgpKSwKKyAgICAgICAgICAgICAgICBFcnIoZXJyKSA9 PiBFcnIoRXJyb3I6OmZyb20oZXJyKSksCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcmVz ID0gdXBzdHJlYW1fZnV0dXJlLmZ1c2UoKSA9PiBtYXRjaCByZXMgeworICAgICAgICAgICAgICAg IE9rKF8pID0+IE9rKCgpKSwKKyAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoRXJyb3I6 OmZyb20oZXJyKSksCisgICAgICAgICAgICB9LAorICAgICAgICB9CisgICAgfQogfQotLSAKMi40 Ny4zCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2 ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8v bGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=