]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/tracker.ts
Use different p2p policy for embeds and webapp
[github/Chocobozzz/PeerTube.git] / server / controllers / tracker.ts
index d09b19cae872687366ca8d80b9d39aaf05b72f98..6d60639b880e66da7a213abe58b0273881d46736 100644 (file)
@@ -1,8 +1,8 @@
-import * as bitTorrentTracker from 'bittorrent-tracker'
-import * as express from 'express'
-import * as http from 'http'
-import * as proxyAddr from 'proxy-addr'
-import { Server as WebSocketServer } from 'ws'
+import { Server as TrackerServer } from 'bittorrent-tracker'
+import express from 'express'
+import { createServer } from 'http'
+import proxyAddr from 'proxy-addr'
+import { WebSocketServer } from 'ws'
 import { Redis } from '@server/lib/redis'
 import { logger } from '../helpers/logger'
 import { CONFIG } from '../initializers/config'
@@ -10,8 +10,6 @@ import { TRACKER_RATE_LIMITS } from '../initializers/constants'
 import { VideoFileModel } from '../models/video/video-file'
 import { VideoStreamingPlaylistModel } from '../models/video/video-streaming-playlist'
 
-const TrackerServer = bitTorrentTracker.Server
-
 const trackerRouter = express.Router()
 
 let peersIps = {}
@@ -22,7 +20,6 @@ const trackerServer = new TrackerServer({
   http: false,
   udp: false,
   ws: false,
-  dht: false,
   filter: async function (infoHash, params, cb) {
     if (CONFIG.TRACKER.ENABLED === false) {
       return cb(new Error('Tracker is disabled on this instance.'))
@@ -31,7 +28,7 @@ const trackerServer = new TrackerServer({
     let ip: string
 
     if (params.type === 'ws') {
-      ip = params.socket.ip
+      ip = params.ip
     } else {
       ip = params.httpReq.ip
     }
@@ -87,7 +84,7 @@ trackerRouter.get('/tracker/announce', (req, res) => onHttpRequest(req, res, { a
 trackerRouter.get('/tracker/scrape', (req, res) => onHttpRequest(req, res, { action: 'scrape' }))
 
 function createWebsocketTrackerServer (app: express.Application) {
-  const server = http.createServer(app)
+  const server = createServer(app)
   const wss = new WebSocketServer({ noServer: true })
 
   wss.on('connection', function (ws, req) {
@@ -110,7 +107,8 @@ function createWebsocketTrackerServer (app: express.Application) {
             return
           }
 
-          return wss.handleUpgrade(request, socket, head, ws => wss.emit('connection', ws, request))
+          // FIXME: typings
+          return wss.handleUpgrade(request, socket as any, head, ws => wss.emit('connection', ws, request))
         })
         .catch(err => logger.error('Cannot check if tracker block ip exists.', { err }))
     }