mirror of
https://github.com/webtorrent/bittorrent-tracker.git
synced 2024-12-15 03:46:25 +00:00
Merge pull request #275 from webtorrent/feross-patch-1
server: Improve style of announce/filter logic
This commit is contained in:
commit
b3400a9eb1
40
server.js
40
server.js
@ -657,31 +657,35 @@ Server.prototype._onRequest = function (params, cb) {
|
||||
Server.prototype._onAnnounce = function (params, cb) {
|
||||
var self = this
|
||||
|
||||
self.getSwarm(params.info_hash, function (err, swarm) {
|
||||
if (err) return cb(err)
|
||||
if (self._filter) {
|
||||
self._filter(params.info_hash, params, function (err) {
|
||||
// Presence of `err` means that this announce request is disallowed
|
||||
if (err) return cb(err)
|
||||
|
||||
if (self._filter) {
|
||||
self._filter(params.info_hash, params, function (err) {
|
||||
// Precense of err means that this torrent or user is disallowd
|
||||
if (err) cb(err)
|
||||
else {
|
||||
if (swarm) announce(swarm)
|
||||
else createSwarm()
|
||||
}
|
||||
getOrCreateSwarm(function (err, swarm) {
|
||||
if (err) return cb(err)
|
||||
announce(swarm)
|
||||
})
|
||||
} else {
|
||||
if (swarm) announce(swarm)
|
||||
else createSwarm()
|
||||
}
|
||||
})
|
||||
|
||||
function createSwarm () {
|
||||
self.createSwarm(params.info_hash, function (err, swarm) {
|
||||
})
|
||||
} else {
|
||||
getOrCreateSwarm(function (err, swarm) {
|
||||
if (err) return cb(err)
|
||||
announce(swarm)
|
||||
})
|
||||
}
|
||||
|
||||
// Get existing swarm, or create one if one does not exist
|
||||
function getOrCreateSwarm (cb) {
|
||||
self.getSwarm(params.info_hash, function (err, swarm) {
|
||||
if (err) return cb(err)
|
||||
if (swarm) return cb(null, swarm)
|
||||
self.createSwarm(params.info_hash, function (err, swarm) {
|
||||
if (err) return cb(err)
|
||||
cb(null, swarm)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function announce (swarm) {
|
||||
if (!params.event || params.event === 'empty') params.event = 'update'
|
||||
swarm.announce(params, function (err, response) {
|
||||
|
Loading…
Reference in New Issue
Block a user