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);