mirror of https://github.com/nodejs/node.git
Adding callback parameter to Socket's setTimeout method.
parent
129217a4e9
commit
c70dd70301
|
@ -226,7 +226,7 @@ Useful to throttle back an upload.
|
||||||
|
|
||||||
Resumes reading after a call to `pause()`.
|
Resumes reading after a call to `pause()`.
|
||||||
|
|
||||||
#### socket.setTimeout(timeout)
|
#### socket.setTimeout(timeout, [callback])
|
||||||
|
|
||||||
Sets the socket to timeout after `timeout` milliseconds of inactivity on
|
Sets the socket to timeout after `timeout` milliseconds of inactivity on
|
||||||
the socket. By default `net.Socket` do not have a timeout.
|
the socket. By default `net.Socket` do not have a timeout.
|
||||||
|
@ -237,6 +237,8 @@ or `destroy()` the socket.
|
||||||
|
|
||||||
If `timeout` is 0, then the existing idle timeout is disabled.
|
If `timeout` is 0, then the existing idle timeout is disabled.
|
||||||
|
|
||||||
|
The optional `callback` parameter will be added as a one time listener for the `'timeout'` event.
|
||||||
|
|
||||||
#### socket.setNoDelay(noDelay=true)
|
#### socket.setNoDelay(noDelay=true)
|
||||||
|
|
||||||
Disables the Nagle algorithm. By default TCP connections use the Nagle
|
Disables the Nagle algorithm. By default TCP connections use the Nagle
|
||||||
|
|
|
@ -690,10 +690,13 @@ Socket.prototype.setKeepAlive = function(enable, time) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Socket.prototype.setTimeout = function(msecs) {
|
Socket.prototype.setTimeout = function(msecs, callback) {
|
||||||
if (msecs > 0) {
|
if (msecs > 0) {
|
||||||
timers.enroll(this, msecs);
|
timers.enroll(this, msecs);
|
||||||
if (this.fd) { timers.active(this); }
|
if (this.fd) { timers.active(this); }
|
||||||
|
if (callback) {
|
||||||
|
this.once('timeout', callback);
|
||||||
|
}
|
||||||
} else if (msecs === 0) {
|
} else if (msecs === 0) {
|
||||||
timers.unenroll(this);
|
timers.unenroll(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
var common = require('../common');
|
||||||
|
var net = require('net');
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
|
var timedout = false;
|
||||||
|
|
||||||
|
var server = net.Server();
|
||||||
|
server.listen(common.PORT, function() {
|
||||||
|
var socket = net.createConnection(common.PORT);
|
||||||
|
socket.setTimeout(100, function() {
|
||||||
|
timedout = true;
|
||||||
|
socket.destroy();
|
||||||
|
server.close();
|
||||||
|
clearTimeout(timer);
|
||||||
|
});
|
||||||
|
var timer = setTimeout(function() {
|
||||||
|
process.exit(1);
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on('exit', function() {
|
||||||
|
assert.ok(timedout);
|
||||||
|
});
|
Loading…
Reference in New Issue