diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx index 87bf363..faa80f1 100644 --- a/common/network/TcpSocket.cxx +++ b/common/network/TcpSocket.cxx @@ -699,7 +699,10 @@ WebsocketListener::WebsocketListener(const struct sockaddr *listenaddr, pthread_create(&tid, NULL, start_server, NULL); uint16_t *nport = (uint16_t *) calloc(1, sizeof(uint16_t)); - *nport = ntohs(sa.u.sin.sin_port); + if (rfb::Server::udpPort) + *nport = rfb::Server::udpPort; + else + *nport = ntohs(sa.u.sin.sin_port); pthread_create(&tid, NULL, udpserver, nport); } diff --git a/common/network/Udp.cxx b/common/network/Udp.cxx index ffcc825..dedaa0b 100644 --- a/common/network/Udp.cxx +++ b/common/network/Udp.cxx @@ -60,6 +60,7 @@ void *udpserver(void *nport) { vlog.error("Failed to create WebUDP host"); return NULL; } + vlog.debug("UDP listening on port %u", *(uint16_t *) nport); __sync_bool_compare_and_swap(&host, host, myhost); diff --git a/common/rfb/ServerCore.cxx b/common/rfb/ServerCore.cxx index 5f01dae..38648e0 100644 --- a/common/rfb/ServerCore.cxx +++ b/common/rfb/ServerCore.cxx @@ -226,6 +226,10 @@ rfb::IntParameter rfb::Server::udpFullFrameFrequency ("udpFullFrameFrequency", "Send a full frame every N frames for clients using UDP. 0 to disable", 0, 0, 1000); +rfb::IntParameter rfb::Server::udpPort +("udpPort", + "Which port to use for UDP. Default same as websocket", + 0, 0, 65535); static void bandwidthPreset() { rfb::Server::dynamicQualityMin.setParam(2); @@ -236,4 +240,4 @@ static void bandwidthPreset() { rfb::PresetParameter rfb::Server::preferBandwidth ("PreferBandwidth", "Set various options for lower bandwidth use. The default is off, aka to prefer quality.", - false, bandwidthPreset); \ No newline at end of file + false, bandwidthPreset); diff --git a/common/rfb/ServerCore.h b/common/rfb/ServerCore.h index 9ddfba6..aef0153 100644 --- a/common/rfb/ServerCore.h +++ b/common/rfb/ServerCore.h @@ -61,6 +61,7 @@ namespace rfb { static IntParameter videoArea; static IntParameter videoScaling; static IntParameter udpFullFrameFrequency; + static IntParameter udpPort; static StringParameter kasmPasswordFile; static StringParameter publicIP; static BoolParameter printVideoArea; diff --git a/unix/xserver/hw/vnc/Xvnc.man b/unix/xserver/hw/vnc/Xvnc.man index d0ea160..ff29bfb 100644 --- a/unix/xserver/hw/vnc/Xvnc.man +++ b/unix/xserver/hw/vnc/Xvnc.man @@ -131,6 +131,10 @@ Default unset. Send a full frame every N frames for clients using UDP. 0 to disable. Default \fI0\fP. . .TP +.B \-udpPort \fIport\fP +Which port to use for UDP. Default same as websocket. +. +.TP .B \-AcceptCutText Accept clipboard updates from clients. Default is on. .