@@ -200,6 +200,8 @@ mongoose.connect(dbString, {
200200 console . log ( 'Aborting' ) ;
201201 exit ( ) ;
202202 } else {
203+ var peers = Array ( ) ;
204+ var cnt = 0 ;
203205 request ( {
204206 uri : 'http://127.0.0.1:' + settings . port + '/api/getpeerinfo' ,
205207 json : true
@@ -208,73 +210,29 @@ mongoose.connect(dbString, {
208210 var i = loop . iteration ( ) ;
209211 var address = body [ i ] . addr . split ( ':' ) [ 0 ] ;
210212 var port = body [ i ] . addr . split ( ':' ) [ 1 ] ;
211- db . find_peer ( address , function ( peer ) {
212- if ( peer ) {
213- if ( isNaN ( peer [ 'port' ] ) || peer [ 'port' ] . length < 2 || peer [ 'country' ] . length < 1 ) {
214- db . drop_peers ( function ( ) {
215- console . log ( 'Saved peers missing ports or country, dropping peers. Re-reun this script afterwards.' ) ;
216- exit ( ) ;
217- } ) ;
218- }
219- // peer already exists
220- loop . next ( ) ;
221- } else {
222- request ( {
223- uri : 'https://freegeoip.app/json/' + address ,
224- json : true
225- } , function ( error , response , geo ) {
226- db . create_peer ( {
227- address : address ,
228- port : port ,
229- protocol : body [ i ] . version ,
230- version : body [ i ] . subver . replace ( '/' , '' ) . replace ( '/' , '' ) ,
231- country : geo . country_name
232- } , function ( ) {
233- loop . next ( ) ;
234- } ) ;
235- } ) ;
213+ request ( { uri : 'https://freegeoip.app/json/' + address , json : true } , function ( error , response , geo ) {
214+ if ( address . startsWith ( '10.' ) || address . startsWith ( '192.168' ) || address . startsWith ( '172.16' ) ) {
215+ geo . country_name = '[private address]' ;
236216 }
237- //end
238- var version = body [ i ] . subver . replace ( '/' , '' ) . replace ( '/' , '' ) ;
239- var semver = version . split ( ":" ) [ 1 ] ;
240- livepeers [ i ] = address ;
241- db . find_peers ( address , function ( peer ) {
242- if ( peer . length ) {
243- for ( i = 0 ; i < peer . length ; i ++ ) {
244- // cmp(a,b)
245- // result 1 = a is greater than b
246- // result 0 = a is the same as b
247- // result -1 = a is less than b
248- if ( cmp ( peer [ i ] . version . split ( ":" ) [ 1 ] , semver ) == - 1 ) {
249- if ( settings . peers . purge_on_run != true ) {
250- db . delete_peer ( {
251- _id : peer [ i ] . _id
252- } ) ;
253- }
254- create_peers ( address , body [ i ] . version , version ) ;
255- console . log ( 'Delete the db version:' , peer [ i ] . version . split ( ":" ) [ 1 ] ) ; //remove
256- } else if ( cmp ( peer [ i ] . version . split ( ":" ) [ 1 ] , semver ) == 0 ) {
257- console . log ( 'Do nothing, they\'re the same' ) ;
258- } else {
259- //db.delete_peer({_id:peer[i]._id});
260- console . log ( 'This should never occur, Live Version:' , semver , " Is less than:" , peer [ i ] . version . split ( ":" ) [ 1 ] ) ; //remove
261- }
262- }
263- loop . next ( ) ;
264- } else {
265- create_peers ( address , body [ i ] . version , version ) ;
217+ peers [ cnt ++ ] = {
218+ address : address ,
219+ port : port ,
220+ protocol : body [ i ] . version ,
221+ version : body [ i ] . subver . replace ( '/' , '' ) . replace ( '/' , '' ) ,
222+ country : geo . country_name
223+ } ;
224+ loop . next ( ) ;
225+ } ) ;
226+ } , function ( ) {
227+ // insert all at once after creation
228+ db . drop_peers ( function ( ) {
229+ console . log ( 'Dropped, rebuilding...' ) ;
230+ lib . syncLoop ( cnt , function ( loop ) {
231+ var i = loop . iteration ( ) ;
232+ db . create_peer ( peers [ i ] , function ( ) {
266233 loop . next ( ) ;
267- }
268- } ) ;
269- } , function ( ) {
270- db . get_peers ( function ( peers ) {
271- for ( var i = 0 ; i < peers . length ; i ++ ) {
272- if ( ! livepeers . includes ( peers [ i ] . address ) ) {
273- db . delete_peer ( {
274- address : peers [ i ] . address
275- } ) ;
276- }
277- }
234+ } ) ;
235+ } , function ( ) {
278236 exit ( ) ;
279237 } ) ;
280238 } ) ;
0 commit comments