net: add remoteFamily for socket
Signed-off-by: Fedor Indutny <fedor@indutny.com>
This commit is contained in:
parent
2bb4867312
commit
e1ce8ba639
@ -449,6 +449,10 @@ the socket is `ref`d calling `ref` again will have no effect.
|
|||||||
The string representation of the remote IP address. For example,
|
The string representation of the remote IP address. For example,
|
||||||
`'74.125.127.100'` or `'2001:4860:a005::68'`.
|
`'74.125.127.100'` or `'2001:4860:a005::68'`.
|
||||||
|
|
||||||
|
### socket.remoteFamily
|
||||||
|
|
||||||
|
The string representation of the remote IP family. `'IPv4'` or `'IPv6'`.
|
||||||
|
|
||||||
### socket.remotePort
|
### socket.remotePort
|
||||||
|
|
||||||
The numeric representation of the remote port. For example,
|
The numeric representation of the remote port. For example,
|
||||||
|
@ -90,7 +90,7 @@ This is achieved by randomly generating a key pair for key-agreement on every
|
|||||||
handshake (in contrary to the same key for all sessions). Methods implementing
|
handshake (in contrary to the same key for all sessions). Methods implementing
|
||||||
this technique, thus offering Perfect Forward Secrecy, are called "ephemeral".
|
this technique, thus offering Perfect Forward Secrecy, are called "ephemeral".
|
||||||
|
|
||||||
Currently two methods are commonly used to achieve Perfect Forward Secrecy (note
|
Currently two methods are commonly used to achieve Perfect Forward Secrecy (note
|
||||||
the character "E" appended to the traditional abbreviations):
|
the character "E" appended to the traditional abbreviations):
|
||||||
|
|
||||||
* [DHE] - An ephemeral version of the Diffie Hellman key-agreement protocol.
|
* [DHE] - An ephemeral version of the Diffie Hellman key-agreement protocol.
|
||||||
@ -339,7 +339,7 @@ Here is an example of a client of echo server as described previously:
|
|||||||
// These are necessary only if using the client certificate authentication
|
// These are necessary only if using the client certificate authentication
|
||||||
key: fs.readFileSync('client-key.pem'),
|
key: fs.readFileSync('client-key.pem'),
|
||||||
cert: fs.readFileSync('client-cert.pem'),
|
cert: fs.readFileSync('client-cert.pem'),
|
||||||
|
|
||||||
// This is necessary only if the server uses the self-signed certificate
|
// This is necessary only if the server uses the self-signed certificate
|
||||||
ca: [ fs.readFileSync('server-cert.pem') ]
|
ca: [ fs.readFileSync('server-cert.pem') ]
|
||||||
};
|
};
|
||||||
@ -772,6 +772,10 @@ object with three properties, e.g.
|
|||||||
The string representation of the remote IP address. For example,
|
The string representation of the remote IP address. For example,
|
||||||
`'74.125.127.100'` or `'2001:4860:a005::68'`.
|
`'74.125.127.100'` or `'2001:4860:a005::68'`.
|
||||||
|
|
||||||
|
### tlsSocket.remoteFamily
|
||||||
|
|
||||||
|
The string representation of the remote IP family. `'IPv4'` or `'IPv6'`.
|
||||||
|
|
||||||
### tlsSocket.remotePort
|
### tlsSocket.remotePort
|
||||||
|
|
||||||
The numeric representation of the remote port. For example, `443`.
|
The numeric representation of the remote port. For example, `443`.
|
||||||
|
@ -552,6 +552,9 @@ CleartextStream.prototype.__defineGetter__('remoteAddress', function() {
|
|||||||
return this.socket && this.socket.remoteAddress;
|
return this.socket && this.socket.remoteAddress;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
CleartextStream.prototype.__defineGetter__('remoteFamily', function() {
|
||||||
|
return this.socket && this.socket.remoteFamily;
|
||||||
|
});
|
||||||
|
|
||||||
CleartextStream.prototype.__defineGetter__('remotePort', function() {
|
CleartextStream.prototype.__defineGetter__('remotePort', function() {
|
||||||
return this.socket && this.socket.remotePort;
|
return this.socket && this.socket.remotePort;
|
||||||
|
@ -570,6 +570,9 @@ Socket.prototype.__defineGetter__('remoteAddress', function() {
|
|||||||
return this._getpeername().address;
|
return this._getpeername().address;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Socket.prototype.__defineGetter__('remoteFamily', function() {
|
||||||
|
return this._getpeername().family;
|
||||||
|
});
|
||||||
|
|
||||||
Socket.prototype.__defineGetter__('remotePort', function() {
|
Socket.prototype.__defineGetter__('remotePort', function() {
|
||||||
return this._getpeername().port;
|
return this._getpeername().port;
|
||||||
|
@ -35,6 +35,7 @@ server.listen(common.PORT, function() {
|
|||||||
// client is still attempting to connect
|
// client is still attempting to connect
|
||||||
assert.doesNotThrow(function() {
|
assert.doesNotThrow(function() {
|
||||||
client.remoteAddress;
|
client.remoteAddress;
|
||||||
|
client.remoteFamily;
|
||||||
client.remotePort;
|
client.remotePort;
|
||||||
});
|
});
|
||||||
accessedProperties = true;
|
accessedProperties = true;
|
||||||
|
@ -29,6 +29,7 @@ var conns = 0, conns_closed = 0;
|
|||||||
var server = net.createServer(function(socket) {
|
var server = net.createServer(function(socket) {
|
||||||
conns++;
|
conns++;
|
||||||
assert.equal('127.0.0.1', socket.remoteAddress);
|
assert.equal('127.0.0.1', socket.remoteAddress);
|
||||||
|
assert.equal('IPv4', socket.remoteFamily);
|
||||||
assert.ok(socket.remotePort);
|
assert.ok(socket.remotePort);
|
||||||
assert.notEqual(socket.remotePort, common.PORT);
|
assert.notEqual(socket.remotePort, common.PORT);
|
||||||
socket.on('end', function() {
|
socket.on('end', function() {
|
||||||
@ -42,11 +43,13 @@ server.listen(common.PORT, 'localhost', function() {
|
|||||||
var client2 = net.createConnection(common.PORT);
|
var client2 = net.createConnection(common.PORT);
|
||||||
client.on('connect', function() {
|
client.on('connect', function() {
|
||||||
assert.equal('127.0.0.1', client.remoteAddress);
|
assert.equal('127.0.0.1', client.remoteAddress);
|
||||||
|
assert.equal('IPv4', client.remoteFamily);
|
||||||
assert.equal(common.PORT, client.remotePort);
|
assert.equal(common.PORT, client.remotePort);
|
||||||
client.end();
|
client.end();
|
||||||
});
|
});
|
||||||
client2.on('connect', function() {
|
client2.on('connect', function() {
|
||||||
assert.equal('127.0.0.1', client2.remoteAddress);
|
assert.equal('127.0.0.1', client2.remoteAddress);
|
||||||
|
assert.equal('IPv4', client.remoteFamily);
|
||||||
assert.equal(common.PORT, client2.remotePort);
|
assert.equal(common.PORT, client2.remotePort);
|
||||||
client2.end();
|
client2.end();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user