File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed
Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -499,6 +499,27 @@ Tracker.prototype._handleResponse = function (requestUrl, data) {
499499 self . client . emit ( 'peer' , peer . ip + ':' + peer . port )
500500 } )
501501 }
502+
503+ if ( Buffer . isBuffer ( data . peers6 ) ) {
504+ // tracker returned compact response
505+ var addrs
506+ try {
507+ addrs = compact2string . multi6 ( data . peers6 )
508+ } catch ( err ) {
509+ return self . client . emit ( 'warning' , err )
510+ }
511+ addrs . forEach ( function ( addr ) {
512+ self . client . emit ( 'peer' , addr )
513+ } )
514+ } else if ( Array . isArray ( data . peers6 ) ) {
515+ // tracker returned normal response
516+ data . peers . forEach ( function ( peer ) {
517+ var ip = / : / . test ( peer . ip ) ?
518+ '[' + peer . ip + ']' :
519+ peer . ip
520+ self . client . emit ( 'peer' , ip + ':' + peer . port )
521+ } )
522+ }
502523 } else if ( requestUrl === self . _scrapeUrl ) {
503524 // NOTE: the unofficial spec says to use the 'files' key but i've seen 'host' in practice
504525 data = data . files || data . host || { }
You can’t perform that action at this time.
0 commit comments