config: add create_on_announce option

This option allows the user to specify whether or not to create a new
swarm for torrents that do not previously exist within the tracker's
storage.
This commit is contained in:
Jimmy Zelinskie 2015-03-23 20:02:13 -04:00
parent 0ecd126ae8
commit 80c068c97a
3 changed files with 4 additions and 1 deletions

View file

@ -75,6 +75,7 @@ type WhitelistConfig struct {
// TrackerConfig is the configuration for tracker functionality. // TrackerConfig is the configuration for tracker functionality.
type TrackerConfig struct { type TrackerConfig struct {
CreateOnAnnounce bool `json:"create_on_announce"`
PrivateEnabled bool `json:"private_enabled"` PrivateEnabled bool `json:"private_enabled"`
FreeleechEnabled bool `json:"freeleech_enabled"` FreeleechEnabled bool `json:"freeleech_enabled"`
PurgeInactiveTorrents bool `json:"purge_inactive_torrents"` PurgeInactiveTorrents bool `json:"purge_inactive_torrents"`
@ -107,6 +108,7 @@ type Config struct {
// DefaultConfig is a configuration that can be used as a fallback value. // DefaultConfig is a configuration that can be used as a fallback value.
var DefaultConfig = Config{ var DefaultConfig = Config{
TrackerConfig: TrackerConfig{ TrackerConfig: TrackerConfig{
CreateOnAnnounce: true,
PrivateEnabled: false, PrivateEnabled: false,
FreeleechEnabled: false, FreeleechEnabled: false,
PurgeInactiveTorrents: true, PurgeInactiveTorrents: true,

View file

@ -1,4 +1,5 @@
{ {
"create_on_announce": true,
"private_enabled": false, "private_enabled": false,
"freeleech_enabled": false, "freeleech_enabled": false,
"purge_inactive_torrents": true, "purge_inactive_torrents": true,

View file

@ -27,7 +27,7 @@ func (tkr *Tracker) HandleAnnounce(ann *models.Announce, w Writer) (err error) {
torrent, err := tkr.FindTorrent(ann.Infohash) torrent, err := tkr.FindTorrent(ann.Infohash)
if err == models.ErrTorrentDNE && !tkr.Config.PrivateEnabled { if err == models.ErrTorrentDNE && cfg.CreateOnAnnounce {
torrent = &models.Torrent{ torrent = &models.Torrent{
Infohash: ann.Infohash, Infohash: ann.Infohash,
Seeders: models.NewPeerMap(true, tkr.Config), Seeders: models.NewPeerMap(true, tkr.Config),