frontend

package
v0.0.0-...-384af84 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2023 License: BSD-2-Clause Imports: 2 Imported by: 0

Documentation

Overview

Package frontend provides implementations and abstractions for tracker logic, parsing and request handling over multiple protocols, such as UDP and HTTP.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type TrackerLogic

type TrackerLogic interface {
	// HandleAnnounce generates a response for an Announce.
	//
	// Returns the updated context, the generated AnnounceResponse and no error
	// on success; nil and error on failure.
	HandleAnnounce(context.Context, *bittorrent.AnnounceRequest) (context.Context, *bittorrent.AnnounceResponse, error)

	// AfterAnnounce does something with the results of an Announce after it
	// has been completed.
	AfterAnnounce(context.Context, *bittorrent.AnnounceRequest, *bittorrent.AnnounceResponse)

	// HandleScrape generates a response for a Scrape.
	//
	// Returns the updated context, the generated AnnounceResponse and no error
	// on success; nil and error on failure.
	HandleScrape(context.Context, *bittorrent.ScrapeRequest) (context.Context, *bittorrent.ScrapeResponse, error)

	// AfterScrape does something with the results of a Scrape after it has been completed.
	AfterScrape(context.Context, *bittorrent.ScrapeRequest, *bittorrent.ScrapeResponse)
}

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.

Directories

Path Synopsis
Package http implements a BitTorrent frontend via the HTTP protocol as described in BEP 3 and BEP 23.
Package http implements a BitTorrent frontend via the HTTP protocol as described in BEP 3 and BEP 23.
bencode
Package bencode implements bencoding of data as defined in BEP 3 using type assertion over reflection for performance.
Package bencode implements bencoding of data as defined in BEP 3 using type assertion over reflection for performance.
udp
Package udp implements a BitTorrent tracker via the UDP protocol as described in BEP 15.
Package udp implements a BitTorrent tracker via the UDP protocol as described in BEP 15.
bytepool
Package bytepool implements an optimization for byte slice allocations by caching those slices for later reuse.
Package bytepool implements an optimization for byte slice allocations by caching those slices for later reuse.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL