@@ -31,7 +31,7 @@ module.exports = (config, http) => {
31
31
32
32
log ( 'create new server' , config )
33
33
34
- this . _peers = { }
34
+ const _peers = { }
35
35
const nonces = { }
36
36
37
37
const peersMetric = config . metrics ? new client . Gauge ( { name : 'rendezvous_peers' , help : 'peers online now' } ) : fake . gauge
@@ -42,13 +42,10 @@ module.exports = (config, http) => {
42
42
const joinsFailureTotal = config . metrics ? new client . Counter ( { name : 'rendezvous_joins_total_failure' , help : 'failed joins since server started' } ) : fake . counter
43
43
const joinsTotal = config . metrics ? new client . Counter ( { name : 'rendezvous_joins_total' , help : 'all joins since server started' } ) : fake . counter
44
44
45
- const getPeers = ( ) => this . _peers // it's a function because, and I'm not kidding, the value of that var is different for every peer that has joined
46
- const refreshMetrics = ( ) => peersMetric . set ( Object . keys ( getPeers ( ) ) . length )
47
-
48
- this . peers = ( ) => getPeers ( )
45
+ const refreshMetrics = ( ) => peersMetric . set ( Object . keys ( _peers ) . length )
49
46
50
47
function safeEmit ( addr , event , arg ) {
51
- const peer = getPeers ( ) [ addr ]
48
+ const peer = _peers [ addr ]
52
49
if ( ! peer ) {
53
50
log ( 'trying to emit %s but peer is gone' , event )
54
51
return
@@ -130,7 +127,7 @@ module.exports = (config, http) => {
130
127
131
128
function joinFinalize ( socket , multiaddr , cb ) {
132
129
const log = getConfig ( ) . log . bind ( getConfig ( ) . log , '[' + socket . id + ']' )
133
- getPeers ( ) [ multiaddr ] = socket
130
+ _peers [ multiaddr ] = socket
134
131
if ( ! socket . stopSendingPeersIntv ) socket . stopSendingPeersIntv = { }
135
132
joinsSuccessTotal . inc ( )
136
133
refreshMetrics ( )
@@ -146,7 +143,7 @@ module.exports = (config, http) => {
146
143
sendPeers ( )
147
144
148
145
function sendPeers ( ) {
149
- const list = Object . keys ( getPeers ( ) )
146
+ const list = Object . keys ( _peers )
150
147
log ( multiaddr , 'sending' , ( list . length - 1 ) . toString ( ) , 'peer(s)' )
151
148
list . forEach ( ( mh ) => {
152
149
if ( mh === multiaddr ) {
@@ -167,14 +164,14 @@ module.exports = (config, http) => {
167
164
168
165
socket . stopSendingPeersIntv [ multiaddr ] = stopSendingPeers
169
166
170
- const otherPeers = Object . keys ( getPeers ( ) ) . filter ( mh => mh !== multiaddr )
167
+ const otherPeers = Object . keys ( _peers ) . filter ( mh => mh !== multiaddr )
171
168
cb ( null , null , otherPeers )
172
169
}
173
170
174
171
function leave ( socket , multiaddr ) {
175
- if ( getPeers ( ) [ multiaddr ] && getPeers ( ) [ multiaddr ] . id === socket . id ) {
172
+ if ( _peers [ multiaddr ] && _peers [ multiaddr ] . id === socket . id ) {
176
173
socket . log ( 'leaving' , multiaddr )
177
- delete getPeers ( ) [ multiaddr ]
174
+ delete _peers [ multiaddr ]
178
175
socket . addrs = socket . addrs . filter ( m => m !== multiaddr )
179
176
if ( socket . stopSendingPeersIntv [ multiaddr ] ) {
180
177
socket . stopSendingPeersIntv [ multiaddr ] ( )
@@ -186,8 +183,8 @@ module.exports = (config, http) => {
186
183
187
184
function disconnect ( socket ) {
188
185
socket . log ( 'disconnected' )
189
- Object . keys ( getPeers ( ) ) . forEach ( ( mh ) => {
190
- if ( getPeers ( ) [ mh ] . id === socket . id ) {
186
+ Object . keys ( _peers ) . forEach ( ( mh ) => {
187
+ if ( _peers [ mh ] . id === socket . id ) {
191
188
leave ( socket , mh )
192
189
}
193
190
} )
@@ -205,7 +202,7 @@ module.exports = (config, http) => {
205
202
}
206
203
207
204
log ( from , 'is dialing' , to )
208
- const peer = getPeers ( ) [ to ]
205
+ const peer = _peers [ to ]
209
206
210
207
if ( ! peer ) {
211
208
dialsFailureTotal . inc ( )
@@ -226,5 +223,7 @@ module.exports = (config, http) => {
226
223
} )
227
224
}
228
225
229
- return this
226
+ return {
227
+ peers : ( ) => _peers
228
+ }
230
229
}
0 commit comments