move whitelist into cfg

This commit is contained in:
Jimmy Zelinskie
2014-07-25 16:58:26 -04:00
parent cde8251bd3
commit ffb3c57181
10 changed files with 50 additions and 69 deletions
+5 -5
View File
@@ -21,14 +21,14 @@ func (tkr *Tracker) HandleAnnounce(ann *models.Announce, w Writer) error {
defer conn.Close()
if tkr.cfg.Whitelist {
if tkr.cfg.ClientWhitelistEnabled {
if err = conn.FindClient(ann.ClientID()); err != nil {
return err
}
}
var user *models.User
if tkr.cfg.Private {
if tkr.cfg.PrivateEnabled {
if user, err = conn.FindUser(ann.Passkey); err != nil {
return err
}
@@ -37,7 +37,7 @@ func (tkr *Tracker) HandleAnnounce(ann *models.Announce, w Writer) error {
var torrent *models.Torrent
torrent, err = conn.FindTorrent(ann.Infohash)
switch {
case !tkr.cfg.Private && err == models.ErrTorrentDNE:
case !tkr.cfg.PrivateEnabled && err == models.ErrTorrentDNE:
torrent = &models.Torrent{
Infohash: ann.Infohash,
Seeders: models.PeerMap{},
@@ -66,7 +66,7 @@ func (tkr *Tracker) HandleAnnounce(ann *models.Announce, w Writer) error {
return err
}
if tkr.cfg.Private {
if tkr.cfg.PrivateEnabled {
delta := models.NewAnnounceDelta(ann, peer, user, torrent, created, snatched)
err = tkr.backend.RecordAnnounce(delta)
if err != nil {
@@ -160,7 +160,7 @@ func handleEvent(c Conn, ann *models.Announce, p *models.Peer, u *models.User, t
}
t.Snatches++
if ann.Config.Private {
if ann.Config.PrivateEnabled {
err = c.IncrementUserSnatches(u.Passkey)
if err != nil {
return
+1 -1
View File
@@ -214,7 +214,7 @@ func NewAnnounceDelta(a *Announce, p *Peer, u *User, t *Torrent, created, snatch
rawDeltaDown uint64
)
if !a.Config.Freeleech {
if !a.Config.FreeleechEnabled {
rawDeltaDown = p.Downloaded - a.Downloaded
}
+1 -1
View File
@@ -16,7 +16,7 @@ func (tkr *Tracker) HandleScrape(scrape *models.Scrape, w Writer) (err error) {
defer conn.Close()
if tkr.cfg.Private {
if tkr.cfg.PrivateEnabled {
if _, err = conn.FindUser(scrape.Passkey); err != nil {
return err
}
+10 -23
View File
@@ -7,8 +7,6 @@
package tracker
import (
"encoding/json"
"os"
"time"
"github.com/golang/glog"
@@ -46,11 +44,17 @@ func New(cfg *config.Config) (*Tracker, error) {
cfg.Announce.Duration,
)
return &Tracker{
tkr := &Tracker{
cfg: cfg,
Pool: pool,
backend: bc,
}, nil
}
if cfg.ClientWhitelistEnabled {
tkr.LoadApprovedClients(cfg.ClientWhitelist)
}
return tkr, nil
}
// Close gracefully shutdowns a Tracker by closing any database connections.
@@ -68,25 +72,8 @@ func (tkr *Tracker) Close() (err error) {
return
}
// LoadApprovedClients takes a path to a JSON file containing a list of clients
// and inserts them into the tracker's data store.
func (tkr *Tracker) LoadApprovedClients(path string) error {
if path == "" {
return nil
}
f, err := os.Open(os.ExpandEnv(path))
if err != nil {
return err
}
defer f.Close()
var clients []string
err = json.NewDecoder(f).Decode(&clients)
if err != nil {
return err
}
// LoadApprovedClients loads a list of client IDs into the tracker's storage.
func (tkr *Tracker) LoadApprovedClients(clients []string) error {
conn, err := tkr.Pool.Get()
if err != nil {
return err