node-mbed-dtls
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -0,1 +1,5 @@ | ||
# 1.2.0 | ||
* change `DtlsSocket` into a `stream.Duplex` | ||
# 1.1.1 | ||
@@ -2,0 +6,0 @@ |
@@ -13,6 +13,6 @@ 'use strict'; | ||
const dtlsserver = dtls.createServer(opts, socket => { | ||
console.log('secure connection from', socket.address, socket.port); | ||
socket.on('message', msg => { | ||
console.log(`secure connection from ${socket.remoteAddress}:${socket.remotePort}`); | ||
socket.on('data', msg => { | ||
//console.log('received:', msg.toString('utf8')); | ||
socket.send(msg); | ||
socket.write(msg); | ||
if (msg.toString('utf8').indexOf('close') === 0) { | ||
@@ -24,6 +24,6 @@ console.log('closing'); | ||
socket.once('error', (err) => { | ||
console.error(`socket error on ${socket.address}:${socket.port}: ${err}`); | ||
console.error(`socket error on ${socket.remoteAddress}:${socket.remotePort}: ${err}`); | ||
}); | ||
socket.once('close', () => { | ||
console.log(`closing socket from ${socket.address}:${socket.port}`); | ||
console.log(`closing socket from ${socket.remoteAddress}:${socket.remotePort}`); | ||
}); | ||
@@ -30,0 +30,0 @@ }); |
{ | ||
"name": "node-mbed-dtls", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Node mbed DTLS", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
'use strict'; | ||
var EventEmitter = require('events').EventEmitter; | ||
const stream = require('stream'); | ||
var mbed = require('./build/Release/node_mbed_dtls'); | ||
const mbed = require('./build/Release/node_mbed_dtls'); | ||
const MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY = -0x7880; | ||
class DtlsSocket extends EventEmitter { | ||
class DtlsSocket extends stream.Duplex { | ||
constructor(server, address, port) { | ||
super(); | ||
super({ allowHalfOpen: false }); | ||
this.server = server; | ||
@@ -33,11 +33,14 @@ this.dgramSocket = server.dgramSocket; | ||
send(msg) { | ||
_read() { | ||
// TODO implement way to stop/start reading? | ||
// do nothing since chunk pushing is async | ||
} | ||
_write(chunk, encoding, callback) { | ||
if (!this.mbedSocket) { | ||
return; | ||
return callback(new Error('no mbed socket')); | ||
} | ||
if (!Buffer.isBuffer(msg)) { | ||
msg = new Buffer(msg); | ||
} | ||
this.mbedSocket.send(msg); | ||
this.mbedSocket.send(chunk); | ||
callback(); | ||
} | ||
@@ -108,3 +111,3 @@ | ||
if (data) { | ||
this.emit('message', data); | ||
this.push(data); | ||
} | ||
@@ -114,2 +117,3 @@ } | ||
close() { | ||
this.push(null); | ||
this.mbedSocket.close(); | ||
@@ -116,0 +120,0 @@ this.mbedSocket = null; |
8714005
329