s/trackerfuncs/trackerlogic
This commit is contained in:
parent
bff3d203a2
commit
11d90b088c
5 changed files with 18 additions and 18 deletions
|
@ -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 {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue