2016-06-12 11:01:32 -07:00
|
|
|
'use strict'
|
|
|
|
|
|
|
|
const util = require('util')
|
|
|
|
const Duplexify = require('duplexify')
|
|
|
|
|
|
|
|
module.exports = Connection
|
|
|
|
|
|
|
|
util.inherits(Connection, Duplexify)
|
|
|
|
|
|
|
|
function Connection (conn) {
|
|
|
|
if (!(this instanceof Connection)) {
|
|
|
|
return new Connection(conn)
|
|
|
|
}
|
|
|
|
|
|
|
|
Duplexify.call(this)
|
|
|
|
|
|
|
|
let peerInfo
|
|
|
|
|
|
|
|
this.getPeerInfo = (callback) => {
|
2016-06-27 10:06:09 +01:00
|
|
|
if (conn && conn.getPeerInfo) {
|
2016-06-12 11:01:32 -07:00
|
|
|
return conn.getPeerInfo(callback)
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!peerInfo) {
|
|
|
|
return callback(new Error('Peer Info not set yet'))
|
|
|
|
}
|
|
|
|
|
|
|
|
callback(null, peerInfo)
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setPeerInfo = (_peerInfo) => {
|
2016-06-27 10:06:09 +01:00
|
|
|
if (conn && conn.setPeerInfo) {
|
2016-06-12 11:01:32 -07:00
|
|
|
return conn.setPeerInfo(_peerInfo)
|
|
|
|
}
|
|
|
|
peerInfo = _peerInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getObservedAddrs = (callback) => {
|
2016-06-27 10:06:09 +01:00
|
|
|
if (conn && conn.getObservedAddrs) {
|
2016-06-12 11:01:32 -07:00
|
|
|
return conn.getObservedAddrs(callback)
|
|
|
|
}
|
|
|
|
callback(null, [])
|
|
|
|
}
|
|
|
|
|
2016-06-27 10:06:09 +01:00
|
|
|
this.setInnerConn = (_conn) => {
|
|
|
|
conn = _conn
|
2016-06-12 11:01:32 -07:00
|
|
|
this.setReadable(conn)
|
|
|
|
this.setWritable(conn)
|
|
|
|
}
|
|
|
|
|
2016-06-23 10:33:40 +01:00
|
|
|
// .destroy is implemented by Duplexify
|
2016-06-23 10:22:20 +01:00
|
|
|
|
2016-06-12 11:01:32 -07:00
|
|
|
if (conn) {
|
|
|
|
this.setInnerConn(conn)
|
|
|
|
}
|
|
|
|
}
|