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();
unsigned i;
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);
if (rfb::Server::stunServer[0]) {
if (strlen(rfb::Server::stunServer) < PATH_MAX)
tryserver(rfb::Server::stunServer, sock);
} 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);

View File

@@ -221,6 +221,10 @@ rfb::StringParameter rfb::Server::publicIP
("publicIP",
"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
("udpFullFrameFrequency",
@@ -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);
false, bandwidthPreset);

View File

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