plugins/gossip/index.jsView |
---|
138 | 138 … | if(!f) { |
139 | 139 … | |
140 | 140 … | addr.source = source |
141 | 141 … | addr.announcers = 1 |
142 | | - addr.duration = null |
| 142 … | + addr.duration = addr.duration || null |
143 | 143 … | peers.push(addr) |
144 | 144 … | notify({ type: 'discover', peer: addr, source: source || 'manual' }) |
145 | 145 … | return addr |
146 | 146 … | } |
203 | 203 … | |
204 | 204 … | |
205 | 205 … | var since = peer.stateChange |
206 | 206 … | peer.stateChange = Date.now() |
207 | | - if(peer.state === 'connected') |
208 | | - peer.duration = stats(peer.duration, peer.stateChange - since) |
| 207 … | + |
| 208 … | + peer.duration = stats(peer.duration, peer.stateChange - since) |
| 209 … | + |
209 | 210 … | peer.state = undefined |
210 | 211 … | notify({ type: 'disconnect', peer: peer }) |
211 | 212 … | server.emit('log:info', ['SBOT', rpc.id, 'disconnect']) |
212 | 213 … | }) |
223 | 224 … | var p = gossip.add(v, 'stored') |
224 | 225 … | }) |
225 | 226 … | }) |
226 | 227 … | |
227 | | - setInterval(function () { |
228 | | - if(deepEqual(peers, last)) return |
| 228 … | + var int = setInterval(function () { |
229 | 229 … | var copy = JSON.parse(JSON.stringify(peers)) |
230 | 230 … | copy.forEach(function (e) { |
231 | 231 … | delete e.state |
232 | 232 … | }) |
| 233 … | + if(deepEqual(copy, last)) return |
| 234 … | + last = copy |
| 235 … | + console.log("WRITE GOSSIP STATE") |
233 | 236 … | stateFile.set(copy, console.log.bind(console)) |
234 | 237 … | }, 10*1000) |
235 | 238 … | |
| 239 … | + if(int.unref) int.unref() |
| 240 … | + |
236 | 241 … | return gossip |
237 | 242 … | } |
238 | 243 … | } |
239 | 244 … | |
240 | 245 … | |
241 | 246 … | |
| 247 … | + |
| 248 … | + |
| 249 … | + |