WIP Add support for custom torrents' approval storages

* migrate torrentapproval to list storage
* add initial support for torrent file storage (watch directory with fsnotify)
* replace frontend/http/bencode package with github.com/zeebo/bencode module
* sanitize code (fix warnings)

TODO:
* parse torrent files to get hashes,
* watch directory event types

DON'T use for now
This commit is contained in:
Širhoe Biazhkovič
2021-09-04 01:45:34 +03:00
parent d57c348b6c
commit 8580bb37e0
22 changed files with 309 additions and 644 deletions

View File

@@ -33,9 +33,9 @@ type Config struct {
MetricsAddr string `yaml:"metrics_addr"`
HTTPConfig http.Config `yaml:"http"`
UDPConfig udp.Config `yaml:"udp"`
Storage storageConfig `yaml:"storage"`
PreHooks []middleware.HookConfig `yaml:"prehooks"`
PostHooks []middleware.HookConfig `yaml:"posthooks"`
Storage storageConfig `yaml:"storage"`
PreHooks []middleware.Config `yaml:"prehooks"`
PostHooks []middleware.Config `yaml:"posthooks"`
}
// PreHookNames returns only the names of the configured middleware.

View File

@@ -50,8 +50,12 @@ func (r *Run) Start(ps storage.PeerStore) error {
r.sg = stop.NewGroup()
log.Info("starting metrics server", log.Fields{"addr": cfg.MetricsAddr})
r.sg.Add(metrics.NewServer(cfg.MetricsAddr))
if len(cfg.MetricsAddr) > 0 {
log.Info("starting metrics server", log.Fields{"addr": cfg.MetricsAddr})
r.sg.Add(metrics.NewServer(cfg.MetricsAddr))
} else {
log.Info("metrics disabled because of empty address")
}
if ps == nil {
log.Info("starting storage", log.Fields{"name": cfg.Storage.Name})