Fixed mobile QR code when using non-standard port.
Ylian Saint-Hilaire committed
Jan 29, 2021 at 02:23 UTC
516a763c1bb4b911ddc67130b3a419dbf4b41c2d
2 files changed
+11
-5
meshuser.js
+10
@@ -461,6 +461,16 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
461
}
462
serverinfo.https = true;
463
serverinfo.redirport = args.redirport;
464
+
465
+ // Build the mobile agent URL, this is used to connect mobile devices
466
+ var agentServerName = parent.getWebServerName(domain);
467
+ if (typeof parent.args.agentaliasdns == 'string') { agentServerName = parent.args.agentaliasdns; }
468
+ var xdomain = (domain.dns == null) ? domain.id : '';
469
+ var agentHttpsPort = ((parent.args.aliasport == null) ? parent.args.port : parent.args.aliasport); // Use HTTPS alias port is specified
470
+ if (parent.args.agentport != null) { agentHttpsPort = parent.args.agentport; } // If an agent only port is enabled, use that.
471
+ if (parent.args.agentaliasport != null) { agentHttpsPort = parent.args.agentaliasport; } // If an agent alias port is specified, use that.
472
+ serverinfo.magenturl = 'mc://' + agentServerName + ((agentHttpsPort != 443)?(':' + agentHttpsPort):'') + ((xdomain != '')?('/' + xdomain):'');
473
+
474
if (domain.guestdevicesharing === false) { serverinfo.guestdevicesharing = false; }
475
if (typeof domain.userconsentflags == 'number') { serverinfo.consent = domain.userconsentflags; }
476
if ((typeof domain.usersessionidletimeout == 'number') && (domain.usersessionidletimeout > 0)) { serverinfo.timeout = (domain.usersessionidletimeout * 60 * 1000); }
views/default.handlebars
+1
-5
@@ -4427,11 +4427,7 @@
4427
setDialogMode(2, "Add Mesh Agent", 2, null, x, 'fileDownload');
4428
4429
// Create the QR code
4430
- var servername = serverinfo.name;
4431
- if ((servername.indexOf('.') == -1) || ((features & 2) != 0)) { servername = window.location.hostname; } // If the server name is not set or it's in LAN-only mode, use the URL hostname as server name.
4432
- var domainUrlNoSlash = domainUrl.substring(0, domainUrl.length - 1);
4433
- var portStr = (serverinfo.port == 443) ? '' : (':' + serverinfo.port);
4434
- new QRCode(Q('agins_qrimage'), { text: 'mc://' + servername + portStr + domainUrlNoSlash + ',' + serverinfo.agentCertHash + ',' + meshid.split('/')[2], width: 180, height: 180, colorDark: '#000000', colorLight: '#EEE', correctLevel: QRCode.CorrectLevel.M });
4430
+ new QRCode(Q('agins_qrimage'), { text: serverinfo.magenturl + ',' + serverinfo.agentCertHash + ',' + meshid.split('/')[2], width: 180, height: 180, colorDark: '#000000', colorLight: '#EEE', correctLevel: QRCode.CorrectLevel.M });
4431
4432
if ((features & 0x2000) == 0)
4433
{