Skip to content

Commit 5471ede

Browse files
José MoreiraMichael Scovetta
José Moreira
authored and
Michael Scovetta
committed
net: add net.listening boolean property over a getter
Added a listening property into net.Server.prototype indicating if the server is listening or not for connections. Other Server constructors that rely on net.Server should also gain access to this property. Also included tests for net and http subsystems. PR-URL: nodejs#4743 Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent f27eaba commit 5471ede

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

doc/api/http.markdown

+5
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,11 @@ parameter is 511 (not 512).
560560
This function is asynchronous. The last parameter `callback` will be added as
561561
a listener for the `'listening'` event. See also [`net.Server.listen(port)`][].
562562

563+
### server.listening
564+
565+
A Boolean indicating whether or not the server is listening for
566+
connections.
567+
563568
### server.maxHeadersCount
564569

565570
Limits maximum incoming headers count, equal to 1000 by default. If set to 0 -

doc/api/net.markdown

+5
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,11 @@ server.on('error', (e) => {
202202

203203
(Note: All sockets in Node.js set `SO_REUSEADDR` already)
204204

205+
### server.listening
206+
207+
A Boolean indicating whether or not the server is listening for
208+
connections.
209+
205210
### server.maxConnections
206211

207212
Set this property to reject connections when the server's connection count gets

lib/net.js

+8
Original file line numberDiff line numberDiff line change
@@ -1389,6 +1389,14 @@ Server.prototype.listen = function() {
13891389
return self;
13901390
};
13911391

1392+
Object.defineProperty(Server.prototype, 'listening', {
1393+
get: function() {
1394+
return !!this._handle;
1395+
},
1396+
configurable: true,
1397+
enumerable: true
1398+
});
1399+
13921400
Server.prototype.address = function() {
13931401
if (this._handle && this._handle.getsockname) {
13941402
var out = {};

test/parallel/test-http-listening.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
const common = require('../common');
3+
const assert = require('assert');
4+
const http = require('http');
5+
6+
const server = http.createServer();
7+
8+
assert.strictEqual(server.listening, false);
9+
10+
server.listen(common.PORT, common.mustCall(() => {
11+
assert.strictEqual(server.listening, true);
12+
13+
server.close(common.mustCall(() => {
14+
assert.strictEqual(server.listening, false);
15+
}));
16+
}));

test/parallel/test-net-listening.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
const common = require('../common');
3+
const assert = require('assert');
4+
const net = require('net');
5+
6+
const server = net.createServer();
7+
8+
assert.strictEqual(server.listening, false);
9+
10+
server.listen(common.PORT, common.mustCall(() => {
11+
assert.strictEqual(server.listening, true);
12+
13+
server.close(common.mustCall(() => {
14+
assert.strictEqual(server.listening, false);
15+
}));
16+
}));

0 commit comments

Comments
 (0)