Skip to content

Commit a28bcad

Browse files
committed
fix(transport): Correctly handle messages from non-standard BACnet port numbers
1 parent 0458708 commit a28bcad

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lib/transport.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
const createSocket = require('dgram').createSocket;
44
const EventEmitter = require('events').EventEmitter;
55

6+
const DefaultBACnetPort = 47808;
7+
68
class Transport extends EventEmitter {
79
constructor(settings) {
810
super();
911
this._settings = settings;
1012
this._server = createSocket({type: 'udp4', reuseAddr: true});
11-
this._server.on('message', (msg, rinfo) => this.emit('message', msg, rinfo.address));
13+
this._server.on('message', (msg, rinfo) => this.emit('message', msg, rinfo.address + (rinfo.port === DefaultBACnetPort ? '' : ':' + rinfo.port)));
1214
this._server.on('error', (err) => this.emit('message', err));
1315
}
1416

@@ -21,7 +23,8 @@ class Transport extends EventEmitter {
2123
}
2224

2325
send(buffer, offset, receiver) {
24-
this._server.send(buffer, 0, offset, this._settings.port, receiver);
26+
const [address, port] = receiver.split(':');
27+
this._server.send(buffer, 0, offset, port || DefaultBACnetPort, address);
2528
}
2629

2730
open() {

0 commit comments

Comments
 (0)