You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary
The standalone web-app RDP form cannot connect to an RDP server on a non-default port. Unlike SSH/VNC/ARD, the RDP flow never calls extractHostnameAndPort, so the port is dropped and the default 3389 is appended.
Steps to reproduce
Open an RDP session in the standalone web client (Gateway 2026.3.0).
Hostname: 127.0.0.1:64389 (RDP reachable on 64389).
Connect.
Actual
Gateway rejects: "Destination in RDCleanPath PDU does not match destination in token" and "connect to RDP server: tcp://127.0.0.1:64389:3389 failed: failed to lookup destination address".
Entering just 127.0.0.1 (default 3389) works.
Expected
host:port should be honored, like SSH/VNC/ARD.
Root cause
web-client-rdp.component.ts > fetchParameters:
host: hostname, // should be extractHostnameAndPort(hostname, DefaultRdpPort).hostname + pass port
Other protocols:
const extractedData = this.utils.string.extractHostnameAndPort(hostname, DefaultSshPort);
web-client.service.ts > generateProtocolToken:
destination: tcp://${fmt(host)}:${cp.port ?? getDefaultPort(protocol)}
RDP never sets cp.port -> always falls back to 3389.
Fix
In WebClientRdpComponent.fetchParameters, parse with extractHostnameAndPort(hostname, DefaultRdpPort) and set port, mirroring SSH/VNC/ARD. Optionally add an explicit port field.
Summary
The standalone web-app RDP form cannot connect to an RDP server on a non-default port. Unlike SSH/VNC/ARD, the RDP flow never calls extractHostnameAndPort, so the port is dropped and the default 3389 is appended.
Steps to reproduce
Actual
Expected
host:port should be honored, like SSH/VNC/ARD.
Root cause
web-client-rdp.component.ts > fetchParameters:
host: hostname, // should be extractHostnameAndPort(hostname, DefaultRdpPort).hostname + pass port
Other protocols:
const extractedData = this.utils.string.extractHostnameAndPort(hostname, DefaultSshPort);
web-client.service.ts > generateProtocolToken:
destination:
tcp://${fmt(host)}:${cp.port ?? getDefaultPort(protocol)}RDP never sets cp.port -> always falls back to 3389.
Fix
In WebClientRdpComponent.fetchParameters, parse with extractHostnameAndPort(hostname, DefaultRdpPort) and set port, mirroring SSH/VNC/ARD. Optionally add an explicit port field.
Note
Human-tuned, LLM-assisted content.