Fixed #5378, in some cases MPS crash when reverse lookup of IPv6 address.
Ylian Saint-Hilaire committed
Oct 2, 2023 at 00:30 UTC
b99fb686750ee49cac64478ac895acc236dbd94c
1 file changed
+3
-2
mpsserver.js
+3
-2
@@ -733,7 +733,7 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
733
return;
734
} else {
735
// Attempts reverse DNS loopup on the device IP address
736
- require('dns').reverse(socket.remoteAddr, function (err, hostnames) {
736
+ const reverseDnsLookupHandler = function (err, hostnames) {
737
var hostname = socket.remoteAddr;
738
if ((err == null) && (hostnames != null) && (hostnames.length > 0)) { hostname = hostnames[0]; }
739
@@ -752,7 +752,8 @@ module.exports.CreateMpsServer = function (parent, db, args, certificates) {
752
addedDeviceCount++;
753
var change = 'Added CIRA device ' + socket.tag.name + ' to group ' + initialMesh.name;
754
obj.parent.DispatchEvent(['*', socket.tag.meshid], obj, { etype: 'node', action: 'addnode', node: parent.webserver.CloneSafeNode(device), msg: change, domain: initialMesh.domain });
755
- });
755
+ }
756
+ try { require('dns').reverse(socket.remoteAddr, reverseDnsLookupHandler); } catch (ex) { reverseDnsLookupHandler(ex, null); }
757
}
758
} else {
759
// Node is already present