Skip to content
This repository was archived by the owner on May 14, 2024. It is now read-only.

Commit e860781

Browse files
committed
Move server getters/setters to prototype
1 parent 954231d commit e860781

File tree

2 files changed

+68
-35
lines changed

2 files changed

+68
-35
lines changed

lib/server.js

Lines changed: 48 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -491,38 +491,53 @@ function Server(options) {
491491
this.server.on('error', function (err) {
492492
self.emit('error', err);
493493
});
494-
495-
this.__defineGetter__('maxConnections', function () {
496-
return self.server.maxConnections;
497-
});
498-
this.__defineSetter__('maxConnections', function (val) {
499-
self.server.maxConnections = val;
500-
});
501-
this.__defineGetter__('connections', function () {
502-
return self.server.connections;
503-
});
504-
this.__defineGetter__('name', function () {
505-
return 'LDAPServer';
506-
});
507-
this.__defineGetter__('url', function () {
508-
var str;
509-
if (!this.server.address().family) {
510-
str = 'ldapi://';
511-
str += this.host.replace(new RegExp('/', 'g'), '%2f');
512-
return str;
513-
}
514-
if (this.server instanceof tls.Server) {
515-
str = 'ldaps://';
516-
} else {
517-
str = 'ldap://';
518-
}
519-
str += self.host || 'localhost';
520-
str += ':';
521-
str += self.port || 389;
522-
return str;
523-
});
524494
}
525495
util.inherits(Server, EventEmitter);
496+
Object.defineProperties(Server.prototype, {
497+
maxConnections: {
498+
get: function getMaxConnections() {
499+
return this.server.maxConnections;
500+
},
501+
set: function setMaxConnections(val) {
502+
this.server.maxConnections = val;
503+
},
504+
configurable: false
505+
},
506+
connections: {
507+
get: function getConnections() {
508+
return this.server.connections;
509+
},
510+
configurable: false
511+
},
512+
name: {
513+
get: function getName() {
514+
return 'LDAPServer';
515+
},
516+
configurable: false
517+
},
518+
url: {
519+
get: function getURL() {
520+
var str;
521+
var addr = this.server.address();
522+
if (!addr) {
523+
return null;
524+
}
525+
if (!addr.family) {
526+
str = 'ldapi://';
527+
str += this.host.replace(new RegExp('/', 'g'), '%2f');
528+
return str;
529+
}
530+
if (this.server instanceof tls.Server) {
531+
str = 'ldaps://';
532+
} else {
533+
str = 'ldap://';
534+
}
535+
str += this.host + ':' + this.port;
536+
return str;
537+
},
538+
configurable: false
539+
}
540+
});
526541
module.exports = Server;
527542

528543

@@ -705,7 +720,7 @@ Server.prototype.listen = function (port, host, callback) {
705720
}
706721
var self = this;
707722

708-
function _callback() {
723+
function cbListen() {
709724
if (typeof (port) === 'number') {
710725
self.host = self.address().address;
711726
self.port = self.address().port;
@@ -719,9 +734,9 @@ Server.prototype.listen = function (port, host, callback) {
719734
}
720735

721736
if (typeof (port) === 'number') {
722-
return this.server.listen(port, host, _callback);
737+
return this.server.listen(port, host, cbListen);
723738
} else {
724-
return this.server.listen(port, _callback);
739+
return this.server.listen(port, cbListen);
725740
}
726741
};
727742
Server.prototype.listenFD = function (fd) {

test/server.test.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,30 @@ test('basic create', function (t) {
4545
t.end();
4646
});
4747

48+
test('properties', function (t) {
49+
t.equal(server.name, 'LDAPServer');
50+
51+
// TODO: better test
52+
server.maxConnections = 10;
53+
t.equal(server.maxConnections, 10);
54+
55+
t.equal(server.url, null, 'url empty before bind');
56+
// listen on a random port so we have a url
57+
server.listen(0, 'localhost', function () {
58+
t.ok(server.url);
59+
60+
server.close();
61+
t.end();
62+
});
63+
});
64+
4865
test('listen on unix/named socket', function (t) {
49-
t.plan(1);
66+
t.plan(2);
5067
server = ldap.createServer();
5168
sock = getSock();
5269
server.listen(sock, function () {
53-
t.ok(true);
70+
t.ok(server.url);
71+
t.equal(server.url.split(':')[0], 'ldapi');
5472
server.close();
5573
t.end();
5674
});

0 commit comments

Comments
 (0)