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