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 A51B01FF187 for ; Mon, 3 Nov 2025 22:02:39 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D81B026DD4; Mon, 3 Nov 2025 22:03:13 +0100 (CET) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Mon, 3 Nov 2025 22:02:32 +0100 Message-ID: <20251103210233.2432522-4-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251103210233.2432522-1-a.lauterer@proxmox.com> References: <20251103210233.2432522-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762203742918 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.011 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 v9 3/4] fix #1926 ui: vm console: autodetect novnc or xtermjs 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" U29tZSB1c2VycyBjb25maWd1cmUgdGhlaXIgVk1zIHRvIHVzZSBzZXJpYWwgYXMgdGhlaXIgZGlz cGxheS4gVGhlIGJpZwpiZW5lZml0IGlzIHRoYXQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgeHRl cm1qcyByZW1vdGUgY29uc29sZSwgY29weSAmCnBhc3RlIHdvcmtzIGEgbG90IGJldHRlciB0aGFu IHZpYSBub3ZuYy4KCldoaWxlIHRoZSBjb25zb2xlIGJ1dHRvbiBpbiB0aGUgdG9wIHJpZ2h0IGFs bG93cyB0byBtYW51YWxseSBjaG9vc2UgdGhlCmNvbnNvbGUgdHlwZSwgdGhlIENvbnNvbGUgaW4g dGhlIG1haW4gc3VibWVudSBvZiBhIFZNIGRvZXMgbm90LgoKVGhpcyBwYXRjaCBjaGFuZ2VzIHRo ZSBiZWhhdmlvciB0byBub3QgbG9hZCB0aGUgY29uc29sZSByaWdodCBhd2F5IGlmCnNldCB0byAn a3ZtJy4gSW5zdGVhZCwgdGhlIGNhbGxiYWNrIGZyb20gdGhlIFZNJ3Mgc3RhdHVzL2N1cnJlbnQg Y2FsbAp3aWxsIHJ1biB0aGUgZmluYWwgc3RlcHMgdG8gbG9hZCB0aGUgY29uc29sZS4gQmVjYXVz ZSB0aGVuIHdlIGtub3cgaWYgaXQKc2hvdWxkIGJlIG5vVk5DIG9yIHh0ZXJtanMuCgpUaGF0IG1l YW5zIHRoYXQgaW4gdGhlIFZOQ0NvbnNvbGUgY29tcG9uZW50IHdlIG5lZWQgdG8ga2VlcCB0cmFj ayBpZiB0aGUKY29uc29sZSBoYXMgYmVlbiBmdWxseSBzZXQgdXAgYW5kIGlzIHJ1bm5pbmcuIFRo ZSBhY3R1YWwgY29kZSB0aGF0IGxvYWRzCnRoZSBjb25zb2xlIGludG8gdGhlIGlmcmFtZSBpcyBt b3ZlZCBpbnRvIGEgZnVuY3Rpb24sIHNvIHdlIGNhbm4gY2FsbCBpdApmcm9tIHRoZSBBUEkgY2Fs bGJhY2suCgpPbmUgcmVzdWx0IGlzIHRoYXQgdGhlIGJlaGF2aW9yIGNoYW5nZXMuIExvYWRpbmcg dGhlIGNvbnNvbGUgb24gYSBWTQp3aWxsIHRha2UgYSBsaXR0bGUgYml0IGxvbmdlcjoKKiBXaGVu IHRoZW4gQ29uc29sZSBpcyB0aGUgc2VsZWN0ZWQgYW5kIG9uZSBzd2l0Y2hlcyBiZXR3ZWVuIFZN cywgYSBuZXcKICBzdGF0dXMvY3VycmVudCBjYWxsIGlzIG1hZGUgYW5kIG9uIGEgZ29vZCBjb25u ZWN0aW9uLCB0aGUgY29uc29sZQogIHNob3VsZCBsb2FkIGp1c3QgYSBmZXcgbW9tZW50cyBsYXRl ci4KKiBXaGVuIG9uZSBzd2l0Y2hlcyB0byB0aGUgY29uc29sZSBmcm9tIGFub3RoZXIgc3VibWVu dSBvZiB0aGUgVk0sIHRoZQogIGNvbnNvbGUgd2lsbCBsb2FkIG9uY2UgdGhlIG5leHQgQVBJIGNh bGwgdG8gc3RhdHVzL2N1cnJlbnQgZmluaXNoZWQuCgpTaWduZWQtb2ZmLWJ5OiBBYXJvbiBMYXV0 ZXJlciA8YS5sYXV0ZXJlckBwcm94bW94LmNvbT4KUmV2aWV3ZWQtYnk6IERvbWluaWsgQ3NhcGFr IDxkLmNzYXBha0Bwcm94bW94LmNvbT4KVGVzdGVkLWJ5OiBIYW5uZXMgRHVlcnIgPGguZHVlcnJA cHJveG1veC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWVsIEvDtnBwbCA8bS5rb2VwcGxAcHJveG1v eC5jb20+ClRlc3RlZC1ieTogTWljaGFlbCBLw7ZwcGwgPG0ua29lcHBsQHByb3htb3guY29tPgot LS0KY2hhbmdlcyBzaW5jZToKdjg6CiogcmVtb3ZlIHNwdXJpb3VzIGxpbmUgdGhhdCBnb3QgYWRk ZWQgYSBzZWNvbmQgdGltZSBieSBhY2NpZGVudCBkdXJpbmcgdGhlCnJlYmFzZSB0byB2OCwgdGhh bmtzIEBNS29lcHBsIGZvciBub3RpY2luZwp2NzoKKiByZWJhc2VkCnY2OiBub25lCnY1OgoqIGlu dHJvZHVjZSBQVkUuVXRpbHMuaXNTZXJpYWxEaXNwbGF5IGhlbHBlcgoqIGF2b2lkICdyZWMnIGFz c2lnbm1lbnQgaW4gY2FsbGJhY2sgd2hlbiBzZXR0aW5nIHRoZSAneHRlcm1qcycgdmFyaWFibGUK djQ6CiogdXNlIG5ldyBzdGF0dXMvY3VycmVudCBkaXNwbGF5IHByb3BlcnR5Cgp2MzoKKiBmaXhl ZCBzcGFjaW5nIGlzc3VlcwoqIGFkZCAnY3VycmVudCcgcGFyYW1ldGVyIHdoZW4gZmV0Y2hpbmcg Y29uZmlnIGFzIHRoZSBwZW5kaW5nIG1pZ2h0IGhhdmUKICBhIGRpZmZlcmVudCBkaXNwbGF5IHNl dAoKdjI6CiogY2hhbmdlIGFwcHJvYWNoIGFuZCBkbyBpdCBpbiB0aGUgVUkgYWxvbmUgYnkgZmV0 Y2hpbmcgdGhlIFZNCiAgY29uZmlnIGJlZm9yZSBkZWNpZGluZyB3aGljaCBjb25zb2xlIHRvIHVz ZQoKdjE6Ciogc2V0ICdhdXRvZGV0ZWN0JyB0byBhbHdheXMgdHJ1ZSBpbiAnVk5DQ29uc29sZS5q cycKKiBhZGQgYWRkaXRpb25hbCBjaGVja3MgaW4gcHZlcHJveHkKICAqIG9ubHkgaWYgYXV0b2Rl dGVjdCBpcyBlbmFibGVkIGFuZCBjb25zb2xlIGlzIHNldCB0byAna3ZtJwogICogdXNlcm5hbWUg ZXhpc3RzIGFuZCBoYXMgVk0uQ29uc29sZSBwZXJtaXNzaW9ucyBmb3IgdGhlIGd1ZXN0CgoKCiB3 d3cvbWFuYWdlcjYvVXRpbHMuanMgICAgICAgfCAgNCArKysKIHd3dy9tYW5hZ2VyNi9WTkNDb25z b2xlLmpzICB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHd3dy9t YW5hZ2VyNi9xZW11L0NvbmZpZy5qcyB8ICA3ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDQ0IGlu c2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3d3dy9tYW5hZ2VyNi9V dGlscy5qcyBiL3d3dy9tYW5hZ2VyNi9VdGlscy5qcwppbmRleCBjNDhlZTBiMi4uMDNlY2EyMmQg MTAwNjQ0Ci0tLSBhL3d3dy9tYW5hZ2VyNi9VdGlscy5qcworKysgYi93d3cvbWFuYWdlcjYvVXRp bHMuanMKQEAgLTIwNTEsNiArMjA1MSwxMCBAQCBFeHQuZGVmaW5lKCdQVkUuVXRpbHMnLCB7CiAg ICAgICAgIH0sCiAgICAgfSwKIAorICAgIGlzU2VyaWFsRGlzcGxheTogZnVuY3Rpb24gKGRpc3Bs YXkpIHsKKyAgICAgICAgcmV0dXJuIGRpc3BsYXk/LnN0YXJ0c1dpdGgoJ3NlcmlhbCcpID8/IGZh bHNlOworICAgIH0sCisKICAgICBzaW5nbGV0b246IHRydWUsCiAgICAgY29uc3RydWN0b3I6IGZ1 bmN0aW9uICgpIHsKICAgICAgICAgdmFyIG1lID0gdGhpczsKZGlmZiAtLWdpdCBhL3d3dy9tYW5h Z2VyNi9WTkNDb25zb2xlLmpzIGIvd3d3L21hbmFnZXI2L1ZOQ0NvbnNvbGUuanMKaW5kZXggZTRm MjJjZjkuLmQ5MDNmMmQ1IDEwMDY0NAotLS0gYS93d3cvbWFuYWdlcjYvVk5DQ29uc29sZS5qcwor KysgYi93d3cvbWFuYWdlcjYvVk5DQ29uc29sZS5qcwpAQCAtMTIsNiArMTIsMzYgQEAgRXh0LmRl ZmluZSgnUFZFLm5vVm5jQ29uc29sZScsIHsKICAgICBsYXlvdXQ6ICdmaXQnLAogICAgIGJvcmRl cjogZmFsc2UsCiAKKyAgICBzZXR1cERvbmU6IGZhbHNlLCAvLyBpbml0aWFsIHNldHVwIGlzIGRv bmUgYW5kIHRoZSBzZXNzaW9uIGlzIHJ1bm5pbmcKKworICAgIGxvYWRDb25zb2xlOiBmdW5jdGlv biAoeHRlcm1qcywgY29uc29sZVR5cGUpIHsKKyAgICAgICAgbGV0IG1lID0gdGhpczsKKyAgICAg ICAgaWYgKG1lLnNldHVwRG9uZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK KyAgICAgICAgbGV0IHR5cGUgPSB4dGVybWpzID8gJ3h0ZXJtanMnIDogJ25vdm5jJzsKKyAgICAg ICAgbGV0IHNwID0gRXh0LnN0YXRlLk1hbmFnZXIuZ2V0UHJvdmlkZXIoKTsKKyAgICAgICAgaWYg KEV4dC5pc0Z1bmN0aW9uKG1lLmJlZm9yZUxvYWQpKSB7CisgICAgICAgICAgICBtZS5iZWZvcmVM b2FkKCk7CisgICAgICAgIH0KKyAgICAgICAgbGV0IHF1ZXJ5RGljdCA9IHsKKyAgICAgICAgICAg IGNvbnNvbGU6IGNvbnNvbGVUeXBlLCAvLyBrdm0sIGx4YywgdXBncmFkZSBvciBzaGVsbAorICAg ICAgICAgICAgdm1pZDogbWUudm1pZCwKKyAgICAgICAgICAgIG5vZGU6IG1lLm5vZGVuYW1lLAor ICAgICAgICAgICAgY21kOiBtZS5jbWQsCisgICAgICAgICAgICAnY21kLW9wdHMnOiBtZS5jbWRP cHRzLAorICAgICAgICAgICAgcmVzaXplOiBzcC5nZXQoJ25vdm5jLXNjYWxpbmcnLCAnc2NhbGUn KSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IGJveCA9IHRoaXMuZG93bignW2l0ZW1pZD12bmNj b25zb2xlXScpOworICAgICAgICBxdWVyeURpY3RbdHlwZV0gPSAxOworICAgICAgICBQVkUuVXRp bHMuY2xlYW5FbXB0eU9iamVjdEtleXMocXVlcnlEaWN0KTsKKyAgICAgICAgbGV0IHVybCA9ICcv PycgKyBFeHQuT2JqZWN0LnRvUXVlcnlTdHJpbmcocXVlcnlEaWN0KTsKKyAgICAgICAgUHJveG1v eC5VdGlscy5zZXRFcnJvck1hc2sobWUpOworICAgICAgICBib3gubG9hZCh1cmwpOworICAgICAg ICBtZS5zZXR1cERvbmUgPSB0cnVlOworICAgIH0sCisKICAgICBpbml0Q29tcG9uZW50OiBmdW5j dGlvbiAoKSB7CiAgICAgICAgIHZhciBtZSA9IHRoaXM7CiAKQEAgLTI5LDI5ICs1OSwxNSBAQCBF eHQuZGVmaW5lKCdQVkUubm9WbmNDb25zb2xlJywgewogCiAgICAgICAgIC8vIGFsd2F5cyB1c2Ug c2FtZSBpZnJhbWUsIHRvIGF2b2lkIHJ1bm5pbmcgc2V2ZXJhbCBub1ZuYyBjbGllbnRzCiAgICAg ICAgIC8vIGF0IHNhbWUgdGltZSAodG8gYXZvaWQgcGVyZm9ybWFuY2UgcHJvYmxlbXMpCi0gICAg ICAgIHZhciBib3ggPSBFeHQuY3JlYXRlKCdFeHQudXguSUZyYW1lJywgeyBpdGVtaWQ6ICd2bmNj b25zb2xlJyB9KTsKKyAgICAgICAgbGV0IGJveCA9IEV4dC5jcmVhdGUoJ0V4dC51eC5JRnJhbWUn LCB7IGl0ZW1pZDogJ3ZuY2NvbnNvbGUnIH0pOwogCi0gICAgICAgIHZhciB0eXBlID0gbWUueHRl cm1qcyA/ICd4dGVybWpzJyA6ICdub3ZuYyc7CiAgICAgICAgIEV4dC5hcHBseShtZSwgewogICAg ICAgICAgICAgaXRlbXM6IGJveCwKICAgICAgICAgICAgIGxpc3RlbmVyczogewogICAgICAgICAg ICAgICAgIGFjdGl2YXRlOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBz cCA9IEV4dC5zdGF0ZS5NYW5hZ2VyLmdldFByb3ZpZGVyKCk7Ci0gICAgICAgICAgICAgICAgICAg IGlmIChFeHQuaXNGdW5jdGlvbihtZS5iZWZvcmVMb2FkKSkgewotICAgICAgICAgICAgICAgICAg ICAgICAgbWUuYmVmb3JlTG9hZCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobWUuY29uc29s ZVR5cGUgIT09ICdrdm0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtZS5sb2FkQ29uc29s ZShtZS54dGVybWpzLCBtZS5jb25zb2xlVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgbGV0IHF1ZXJ5RGljdCA9IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnNvbGU6IG1lLmNvbnNvbGVUeXBlLCAvLyBrdm0sIGx4YywgdXBncmFkZSBvciBzaGVs bAotICAgICAgICAgICAgICAgICAgICAgICAgdm1pZDogbWUudm1pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgIG5vZGU6IG1lLm5vZGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgY21k OiBtZS5jbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAnY21kLW9wdHMnOiBtZS5jbWRPcHRz LAotICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplOiBzcC5nZXQoJ25vdm5jLXNjYWxpbmcn LCAnc2NhbGUnKSwKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICAgICAg cXVlcnlEaWN0W3R5cGVdID0gMTsKLSAgICAgICAgICAgICAgICAgICAgUFZFLlV0aWxzLmNsZWFu RW1wdHlPYmplY3RLZXlzKHF1ZXJ5RGljdCk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB1cmwg PSAnLz8nICsgRXh0Lk9iamVjdC50b1F1ZXJ5U3RyaW5nKHF1ZXJ5RGljdCk7Ci0gICAgICAgICAg ICAgICAgICAgIGJveC5sb2FkKHVybCk7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg IH0sCiAgICAgICAgIH0pOwpAQCAtNjAsNiArNzYsNyBAQCBFeHQuZGVmaW5lKCdQVkUubm9WbmND b25zb2xlJywgewogCiAgICAgICAgIG1lLm9uKCdhZnRlcnJlbmRlcicsIGZ1bmN0aW9uICgpIHsK ICAgICAgICAgICAgIG1lLmZvY3VzKCk7CisgICAgICAgICAgICBQcm94bW94LlV0aWxzLnNldEVy cm9yTWFzayhtZSwgdHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL3d3 dy9tYW5hZ2VyNi9xZW11L0NvbmZpZy5qcyBiL3d3dy9tYW5hZ2VyNi9xZW11L0NvbmZpZy5qcwpp bmRleCA4NDJkMzVkZS4uYTExYzdhN2IgMTAwNjQ0Ci0tLSBhL3d3dy9tYW5hZ2VyNi9xZW11L0Nv bmZpZy5qcworKysgYi93d3cvbWFuYWdlcjYvcWVtdS9Db25maWcuanMKQEAgLTUsNiArNSw4IEBA IEV4dC5kZWZpbmUoJ1BWRS5xZW11LkNvbmZpZycsIHsKICAgICBvbmxpbmVIZWxwOiAnY2hhcHRl cl92aXJ0dWFsX21hY2hpbmVzJywKICAgICB1c2VyQ2xzOiAncHJveG1veC10YWdzLWZ1bGwnLAog CisgICAgcmVmZXJlbmNlSG9sZGVyOiB0cnVlLAorCiAgICAgaW5pdENvbXBvbmVudDogZnVuY3Rp b24gKCkgewogICAgICAgICB2YXIgbWUgPSB0aGlzOwogICAgICAgICB2YXIgdm0gPSBtZS5wdmVT ZWxOb2RlLmRhdGE7CkBAIC0zMTEsNiArMzEzLDcgQEAgRXh0LmRlZmluZSgnUFZFLnFlbXUuQ29u ZmlnJywgewogICAgICAgICAgICAgICAgIHZtaWQ6IHZtaWQsCiAgICAgICAgICAgICAgICAgY29u c29sZVR5cGU6ICdrdm0nLAogICAgICAgICAgICAgICAgIG5vZGVuYW1lOiBub2RlbmFtZSwKKyAg ICAgICAgICAgICAgICByZWZlcmVuY2U6ICdzdWJtZW51Q29uc29sZUJ0bicsCiAgICAgICAgICAg ICB9KTsKICAgICAgICAgfQogCkBAIC00NzQsNyArNDc3LDcgQEAgRXh0LmRlZmluZSgnUFZFLnFl bXUuQ29uZmlnJywgewogICAgICAgICAgICAgICAgIGxvY2sgPSByZWMgPyByZWMuZGF0YS52YWx1 ZSA6IHVuZGVmaW5lZDsKIAogICAgICAgICAgICAgICAgIHNwaWNlID0gISFzLmRhdGEuZ2V0KCdz cGljZScpOwotICAgICAgICAgICAgICAgIHh0ZXJtanMgPSAhIXMuZGF0YS5nZXQoJ3NlcmlhbCcp OworICAgICAgICAgICAgICAgIHh0ZXJtanMgPSBQVkUuVXRpbHMuaXNTZXJpYWxEaXNwbGF5KHMu ZGF0YS5nZXQoJ2Rpc3BsYXknKT8uZGF0YS52YWx1ZS50eXBlKTsKICAgICAgICAgICAgIH0KIAog ICAgICAgICAgICAgcmVjID0gcy5kYXRhLmdldCgndGFncycpOwpAQCAtNDg2LDYgKzQ4OSw4IEBA IEV4dC5kZWZpbmUoJ1BWRS5xZW11LkNvbmZpZycsIHsKIAogICAgICAgICAgICAgdmFyIHJlc3Vt ZSA9IFsncHJlbGF1bmNoJywgJ3BhdXNlZCcsICdzdXNwZW5kZWQnXS5pbmRleE9mKHFtcHN0YXR1 cykgIT09IC0xOwogCisgICAgICAgICAgICBtZS5sb29rdXAoJ3N1Ym1lbnVDb25zb2xlQnRuJyk/ LmxvYWRDb25zb2xlKHh0ZXJtanMsICdrdm0nKTsKKwogICAgICAgICAgICAgaWYgKHJlc3VtZSB8 fCBsb2NrID09PSAnc3VzcGVuZGVkJykgewogICAgICAgICAgICAgICAgIHN0YXJ0QnRuLnNldFZp c2libGUoZmFsc2UpOwogICAgICAgICAgICAgICAgIHJlc3VtZUJ0bi5zZXRWaXNpYmxlKHRydWUp OwotLSAKMi40Ny4zCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29t Cmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1k ZXZlbAo=