Add -stunServer arg for on-premises STUN

This commit is contained in:
Lauri Kasanen
2022-08-01 13:26:59 +03:00
parent 6e52b24992
commit 6451cc3220
4 changed files with 21 additions and 5 deletions

View File

@@ -170,10 +170,15 @@ void getPublicIP() {
abort(); abort();
unsigned i; unsigned i;
for (i = 0; i < sizeof(servers) / sizeof(servers[0]); i++) { if (rfb::Server::stunServer[0]) {
if (tryserver(servers[i], sock)) if (strlen(rfb::Server::stunServer) < PATH_MAX)
break; tryserver(rfb::Server::stunServer, sock);
vlog.info("STUN server %u didn't work, trying next...", i); } else {
for (i = 0; i < sizeof(servers) / sizeof(servers[0]); i++) {
if (tryserver(servers[i], sock))
break;
vlog.info("STUN server %u didn't work, trying next...", i);
}
} }
close(sock); close(sock);

View File

@@ -221,6 +221,10 @@ rfb::StringParameter rfb::Server::publicIP
("publicIP", ("publicIP",
"The server's public IP, for UDP negotiation. If not set, will be queried via the internet.", "The server's public IP, for UDP negotiation. If not set, will be queried via the internet.",
""); "");
rfb::StringParameter rfb::Server::stunServer
("stunServer",
"Use this STUN server for querying the server's public IP. If not set, a hardcoded list is used.",
"");
rfb::IntParameter rfb::Server::udpFullFrameFrequency rfb::IntParameter rfb::Server::udpFullFrameFrequency
("udpFullFrameFrequency", ("udpFullFrameFrequency",
@@ -236,4 +240,4 @@ static void bandwidthPreset() {
rfb::PresetParameter rfb::Server::preferBandwidth rfb::PresetParameter rfb::Server::preferBandwidth
("PreferBandwidth", ("PreferBandwidth",
"Set various options for lower bandwidth use. The default is off, aka to prefer quality.", "Set various options for lower bandwidth use. The default is off, aka to prefer quality.",
false, bandwidthPreset); false, bandwidthPreset);

View File

@@ -63,6 +63,7 @@ namespace rfb {
static IntParameter udpFullFrameFrequency; static IntParameter udpFullFrameFrequency;
static StringParameter kasmPasswordFile; static StringParameter kasmPasswordFile;
static StringParameter publicIP; static StringParameter publicIP;
static StringParameter stunServer;
static BoolParameter printVideoArea; static BoolParameter printVideoArea;
static BoolParameter protocol3_3; static BoolParameter protocol3_3;
static BoolParameter alwaysShared; static BoolParameter alwaysShared;

View File

@@ -127,6 +127,12 @@ The server's public IP, for UDP negotiation. If not set, will be queried via the
Default unset. Default unset.
. .
.TP .TP
.B \-StunServer \fIsrv\fP
Use this STUN server for querying the server's public IP. If not set, a hardcoded list of
STUN servers is used.
Default unset.
.
.TP
.B \-udpFullFrameFrequency \fIframes\fP .B \-udpFullFrameFrequency \fIframes\fP
Send a full frame every N frames for clients using UDP. 0 to disable. Default \fI0\fP. Send a full frame every N frames for clients using UDP. 0 to disable. Default \fI0\fP.
. .