Browse Source

Adding callback parameter to Socket's setTimeout method.

v0.7.4-release
Ali Farhadi 14 years ago
committed by Ryan Dahl
parent
commit
c70dd70301
  1. 4
      doc/api/net.markdown
  2. 5
      lib/net.js
  3. 23
      test/simple/test-net-socket-timeout.js

4
doc/api/net.markdown

@ -226,7 +226,7 @@ Useful to throttle back an upload.
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
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.
The optional `callback` parameter will be added as a one time listener for the `'timeout'` event.
#### socket.setNoDelay(noDelay=true)
Disables the Nagle algorithm. By default TCP connections use the Nagle

5
lib/net.js

@ -690,10 +690,13 @@ Socket.prototype.setKeepAlive = function(enable, time) {
}
};
Socket.prototype.setTimeout = function(msecs) {
Socket.prototype.setTimeout = function(msecs, callback) {
if (msecs > 0) {
timers.enroll(this, msecs);
if (this.fd) { timers.active(this); }
if (callback) {
this.once('timeout', callback);
}
} else if (msecs === 0) {
timers.unenroll(this);
}

23
test/simple/test-net-socket-timeout.js

@ -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…
Cancel
Save