diff --git a/backend/backend.go b/backend/backend.go index ba40324..1a17679 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -12,9 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Package trakr implements a BitTorrent Tracker that supports multiple -// protocols and configurable Hooks that execute before and after a Response -// has been delivered to a BitTorrent client. +// Package backend implements the TrackerLogic interface by executing +// a series of middleware hooks. package backend import ( @@ -31,7 +30,7 @@ type BackendConfig struct { AnnounceInterval time.Duration `yaml:"announce_interval"` } -var _ frontend.TrackerFuncs = &Backend{} +var _ frontend.TrackerLogic = &Backend{} func New(config BackendConfig, peerStore PeerStore, announcePreHooks, announcePostHooks, scrapePreHooks, scrapePostHooks []Hook) (*Backend, error) { toReturn := &Backend{ @@ -86,8 +85,8 @@ func (b *Backend) HandleAnnounce(ctx context.Context, req *bittorrent.AnnounceRe return resp, nil } -// AfterAnnounce does something with the results of an Announce after it -// has been completed. +// AfterAnnounce does something with the results of an Announce after it has +// been completed. func (b *Backend) AfterAnnounce(ctx context.Context, req *bittorrent.AnnounceRequest, resp *bittorrent.AnnounceResponse) { for _, h := range b.announcePostHooks { if err := h.HandleAnnounce(ctx, req, resp); err != nil { @@ -111,7 +110,8 @@ func (b *Backend) HandleScrape(ctx context.Context, req *bittorrent.ScrapeReques return resp, nil } -// AfterScrape does something with the results of a Scrape after it has been completed. +// AfterScrape does something with the results of a Scrape after it has been +// completed. func (b *Backend) AfterScrape(ctx context.Context, req *bittorrent.ScrapeRequest, resp *bittorrent.ScrapeResponse) { for _, h := range b.scrapePostHooks { if err := h.HandleScrape(ctx, req, resp); err != nil { diff --git a/cmd/trakr/main.go b/cmd/trakr/main.go index 9e7f9a2..a49de9e 100644 --- a/cmd/trakr/main.go +++ b/cmd/trakr/main.go @@ -107,7 +107,7 @@ func main() { var uFrontend *udpfrontend.Frontend if configFile.Config.HTTPConfig.Addr != "" { - // TODO get the real TrackerFuncs + // TODO get the real TrackerLogic hFrontend = httpfrontend.NewFrontend(trackerBackend, configFile.Config.HTTPConfig) go func() { @@ -119,7 +119,7 @@ func main() { } if configFile.Config.UDPConfig.Addr != "" { - // TODO get the real TrackerFuncs + // TODO get the real TrackerLogic uFrontend = udpfrontend.NewFrontend(trackerBackend, configFile.Config.UDPConfig) go func() { diff --git a/frontend/frontend.go b/frontend/frontend.go index 89fa128..a577d96 100644 --- a/frontend/frontend.go +++ b/frontend/frontend.go @@ -6,10 +6,10 @@ import ( "github.com/jzelinskie/trakr/bittorrent" ) -// TrackerFuncs is the collection of callback functions provided by the Backend -// to (1) generate a response from a parsed request, and (2) observe anything +// TrackerLogic is the interface used by a frontend in order to: (1) generate a +// response from a parsed request, and (2) asynchronously observe anything // after the response has been delivered to the client. -type TrackerFuncs interface { +type TrackerLogic interface { // HandleAnnounce generates a response for an Announce. HandleAnnounce(context.Context, *bittorrent.AnnounceRequest) (*bittorrent.AnnounceResponse, error) diff --git a/frontend/http/frontend.go b/frontend/http/frontend.go index 991e064..0ba228d 100644 --- a/frontend/http/frontend.go +++ b/frontend/http/frontend.go @@ -71,12 +71,12 @@ type Config struct { type Frontend struct { grace *graceful.Server - backend frontend.TrackerFuncs + backend frontend.TrackerLogic Config } // NewFrontend allocates a new instance of a Frontend. -func NewFrontend(backend frontend.TrackerFuncs, cfg Config) *Frontend { +func NewFrontend(backend frontend.TrackerLogic, cfg Config) *Frontend { return &Frontend{ backend: backend, Config: cfg, @@ -138,7 +138,7 @@ func (t *Frontend) ListenAndServe() error { return nil } -// announceRoute parses and responds to an Announce by using t.TrackerFuncs. +// announceRoute parses and responds to an Announce by using t.TrackerLogic. func (t *Frontend) announceRoute(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { var err error start := time.Now() @@ -165,7 +165,7 @@ func (t *Frontend) announceRoute(w http.ResponseWriter, r *http.Request, _ httpr go t.backend.AfterAnnounce(context.TODO(), req, resp) } -// scrapeRoute parses and responds to a Scrape by using t.TrackerFuncs. +// scrapeRoute parses and responds to a Scrape by using t.TrackerLogic. func (t *Frontend) scrapeRoute(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { var err error start := time.Now() diff --git a/frontend/udp/frontend.go b/frontend/udp/frontend.go index 70b4b19..a74432e 100644 --- a/frontend/udp/frontend.go +++ b/frontend/udp/frontend.go @@ -74,12 +74,12 @@ type Frontend struct { closing chan struct{} wg sync.WaitGroup - backend frontend.TrackerFuncs + backend frontend.TrackerLogic Config } // NewFrontend allocates a new instance of a Frontend. -func NewFrontend(backend frontend.TrackerFuncs, cfg Config) *Frontend { +func NewFrontend(backend frontend.TrackerLogic, cfg Config) *Frontend { return &Frontend{ closing: make(chan struct{}), backend: backend,