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 {