Fix FreeRDP crash: echo VERSION param + upgrade guacd to latest

- rdp.ts: dynamically acknowledge guacd's VERSION_x_y_z parameter by
  echoing it back in the connect instruction. Without this, guacd 1.5+
  runs in legacy mode which crashes FreeRDP on modern Windows targets.
  Also add disable-glyph-caching and resize-method params.
- docker-compose: upgrade guacd from 1.5.4 to latest to get FreeRDP 3.x
  which fixes known crash bugs with Windows 11 22H2+ / Server 2022

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
deadRabbit
2026-02-22 14:16:18 +01:00
parent bbfb9200e7
commit 42c63a5f2d
2 changed files with 12 additions and 1 deletions

View File

@@ -157,8 +157,19 @@ export async function rdpWebsocket(fastify: FastifyInstance) {
'enable-drive': 'false',
'create-drive-path': 'false',
'enable-printing': 'false',
'disable-glyph-caching': 'true',
'resize-method': 'display-update',
};
// Acknowledge whichever VERSION_x_y_z guacd advertises.
// Without this echo, guacd runs in legacy compatibility mode which
// can cause FreeRDP to crash on modern Windows targets.
for (const name of argNames) {
if (name.startsWith('VERSION_')) {
rdpParams[name] = name;
}
}
// 3. Connect with values guacd requested
const argValues = argNames.map((name) => rdpParams[name] ?? '');
guacd.write(buildInstruction('connect', ...argValues));

View File

@@ -17,7 +17,7 @@ services:
retries: 10
guacd:
image: guacamole/guacd:1.5.4
image: guacamole/guacd:latest
restart: unless-stopped
environment:
GUACD_LOG_LEVEL: debug