diff --git a/nodes/core/io/32-udp.html b/nodes/core/io/32-udp.html index aa33e55ad..785545827 100644 --- a/nodes/core/io/32-udp.html +++ b/nodes/core/io/32-udp.html @@ -103,7 +103,7 @@ - to port + to port
@@ -114,8 +114,12 @@
- - output port + + +
@@ -130,7 +134,6 @@ diff --git a/nodes/core/io/32-udp.js b/nodes/core/io/32-udp.js index 6cf90721d..a5b7e860e 100644 --- a/nodes/core/io/32-udp.js +++ b/nodes/core/io/32-udp.js @@ -30,17 +30,23 @@ function UDPin(n) { var server = dgram.createSocket('udp4'); server.on("error", function (err) { - //console.log("udp listener error:\n" + err.stack); - if ((err.code == "EACCES") && (node.port < 1024)) { node.error("UDP access error, you may need root access for ports below 1024"); } - else { node.error("UDP error : "+err.code); } + if ((err.code == "EACCES") && (node.port < 1024)) { + node.error("UDP access error, you may need root access for ports below 1024"); + } else { + node.error("UDP error : "+err.code); + } server.close(); }); server.on('message', function (message, remote) { var msg; - if (node.datatype =="base64") { msg = { payload:message.toString('base64'), fromip:remote.address+':'+remote.port }; } - else if (node.datatype =="utf8") { msg = { payload:message.toString('utf8'), fromip:remote.address+':'+remote.port }; } - else { msg = { payload:message, fromip:remote.address+':'+remote.port, ip:remote.address, port:remote.port }; } + if (node.datatype =="base64") { + msg = { payload:message.toString('base64'), fromip:remote.address+':'+remote.port }; + } else if (node.datatype =="utf8") { + msg = { payload:message.toString('utf8'), fromip:remote.address+':'+remote.port }; + } else { + msg = { payload:message, fromip:remote.address+':'+remote.port, ip:remote.address, port:remote.port }; + } node.send(msg); }); @@ -54,9 +60,13 @@ function UDPin(n) { server.addMembership(node.group,node.iface); node.log("udp multicast group "+node.group); } catch (e) { - if (e.errno == "EINVAL") { node.error("Bad Multicast Address"); } - else if (e.errno == "ENODEV") { node.error("Must be ip address of the required interface"); } - else { node.error("Error :"+e.errno); } + if (e.errno == "EINVAL") { + node.error("Bad Multicast Address"); + } else if (e.errno == "ENODEV") { + node.error("Must be ip address of the required interface"); + } else { + node.error("Error :"+e.errno); + } } } }); @@ -65,8 +75,9 @@ function UDPin(n) { try { server.close(); node.log('udp listener stopped'); + } catch (err) { + node.error(err); } - catch (err) { console.log(err); } }); server.bind(node.port,node.iface); @@ -98,35 +109,48 @@ function UDPout(n) { sock.addMembership(node.addr,node.iface); // Add to the multicast group node.log('udp multicast ready : '+node.outport+' -> '+node.addr+":"+node.port); } catch (e) { - if (e.errno == "EINVAL") { node.error("Bad Multicast Address"); } - else if (e.errno == "ENODEV") { node.error("Must be ip address of the required interface"); } - else { node.error("Error :"+e.errno); } + if (e.errno == "EINVAL") { + node.error("Bad Multicast Address"); + } else if (e.errno == "ENODEV") { + node.error("Must be ip address of the required interface"); + } else { + node.error("Error :"+e.errno); + } } + } else { + node.log('udp broadcast ready : '+node.outport+' -> '+node.addr+":"+node.port); } - else node.log('udp broadcast ready : '+node.outport+' -> '+node.addr+":"+node.port); }); - } - else if (node.outport != "") { + } else if (node.outport != "") { sock.bind(node.outport); node.log('udp ready : '+node.outport+' -> '+node.addr+":"+node.port); + } else { + node.log('udp ready : '+node.addr+":"+node.port); } - else node.log('udp ready : '+node.addr+":"+node.port); node.on("input", function(msg) { if (msg.payload != null) { var add = node.addr || msg.ip || ""; var por = node.port || msg.port || 0; - if (add == "") { node.warn("udp: ip address not set"); } - else if (por == 0) { node.warn("udp: port not set"); } - else if (isNaN(por) || (por < 1) || (por > 65535)) { node.warn("udp: port number not valid"); } - else { + if (add == "") { + node.warn("udp: ip address not set"); + } else if (por == 0) { + node.warn("udp: port not set"); + } else if (isNaN(por) || (por < 1) || (por > 65535)) { + node.warn("udp: port number not valid"); + } else { var message; - if (node.base64) { message = new Buffer(b64string, 'base64'); } - else if (msg.payload instanceof Buffer) { message = msg.payload; } - else { message = new Buffer(""+msg.payload); } - //console.log("UDP send :",add,por,msg.payload.toString()); + if (node.base64) { + message = new Buffer(b64string, 'base64'); + } else if (msg.payload instanceof Buffer) { + message = msg.payload; + } else { + message = new Buffer(""+msg.payload); + } sock.send(message, 0, message.length, por, add, function(err, bytes) { - if (err) node.error("udp : "+err); + if (err) { + node.error("udp : "+err); + } }); } } @@ -136,8 +160,9 @@ function UDPout(n) { try { sock.close(); node.log('udp output stopped'); + } catch (err) { + node.error(err); } - catch (err) { console.log(err); } }); } RED.nodes.registerType("udp out",UDPout);