"log"
"sync"
+ "github.com/elliotchance/orderedmap"
+
"github.com/anacrolix/torrent"
pp "github.com/anacrolix/torrent/peer_protocol"
- "github.com/elliotchance/orderedmap"
)
type peerData struct {
"strings"
"time"
- "github.com/davecgh/go-spew/spew"
- "github.com/dustin/go-humanize"
- gbtree "github.com/google/btree"
- "github.com/pion/datachannel"
- "golang.org/x/time/rate"
-
"github.com/anacrolix/chansync"
"github.com/anacrolix/chansync/events"
"github.com/anacrolix/dht/v2"
"github.com/anacrolix/missinggo/v2/bitmap"
"github.com/anacrolix/missinggo/v2/pproffd"
"github.com/anacrolix/sync"
+ "github.com/davecgh/go-spew/spew"
+ "github.com/dustin/go-humanize"
+ gbtree "github.com/google/btree"
+ "github.com/pion/datachannel"
+ "golang.org/x/time/rate"
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/internal/limiter"
package main
import (
+ "os"
+
"github.com/anacrolix/bargle"
"github.com/anacrolix/tagflag"
+
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/metainfo"
- "os"
)
var builtinAnnounceList = [][]string{
"github.com/anacrolix/log"
"github.com/anacrolix/tagflag"
+ "github.com/davecgh/go-spew/spew"
+ "github.com/dustin/go-humanize"
+ "golang.org/x/time/rate"
+
"github.com/anacrolix/torrent"
"github.com/anacrolix/torrent/iplist"
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
"github.com/anacrolix/torrent/storage"
- "github.com/davecgh/go-spew/spew"
- "github.com/dustin/go-humanize"
- "golang.org/x/time/rate"
)
func torrentBar(t *torrent.Torrent, pieceStates bool) {
"os"
"time"
+ "github.com/anacrolix/bargle"
+ "github.com/anacrolix/envpprof"
+ "github.com/anacrolix/log"
+ xprometheus "github.com/anacrolix/missinggo/v2/prometheus"
"github.com/davecgh/go-spew/spew"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/sdk/trace"
- "github.com/anacrolix/bargle"
- "github.com/anacrolix/envpprof"
- "github.com/anacrolix/log"
- xprometheus "github.com/anacrolix/missinggo/v2/prometheus"
-
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/version"
)
"encoding/hex"
"encoding/json"
"fmt"
+ "net/http"
"os"
"strings"
- "net/http"
"github.com/anacrolix/bargle"
- "github.com/anacrolix/torrent/metainfo"
"github.com/bradfitz/iter"
+
+ "github.com/anacrolix/torrent/metainfo"
)
type pprintMetainfoFlags struct {
"fmt"
"net/url"
- "github.com/anacrolix/torrent/tracker/udp"
"github.com/davecgh/go-spew/spew"
"github.com/anacrolix/torrent"
+ "github.com/anacrolix/torrent/tracker/udp"
)
type scrapeCfg struct {
"github.com/anacrolix/bargle"
"github.com/anacrolix/log"
+
"github.com/anacrolix/torrent"
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/dht/v2/krpc"
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/v2"
- "github.com/anacrolix/torrent/version"
"golang.org/x/time/rate"
"github.com/anacrolix/torrent/iplist"
"github.com/anacrolix/torrent/mse"
"github.com/anacrolix/torrent/storage"
+ "github.com/anacrolix/torrent/version"
)
// Probably not safe to modify this after it's given to a Client.
"github.com/anacrolix/fuse"
"github.com/anacrolix/fuse/fs"
"github.com/anacrolix/missinggo/v2"
+
"github.com/anacrolix/torrent"
)
"github.com/RoaringBitmap/roaring"
"github.com/anacrolix/missinggo/v2"
- "github.com/anacrolix/torrent/types"
- "github.com/anacrolix/torrent/types/infohash"
"golang.org/x/time/rate"
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
+ "github.com/anacrolix/torrent/types"
+ "github.com/anacrolix/torrent/types/infohash"
)
type (
"io"
"sync"
- "github.com/anacrolix/torrent/segments"
"github.com/edsrzf/mmap-go"
+
+ "github.com/anacrolix/torrent/segments"
)
type MMapSpan struct {
"sync"
"github.com/alexflint/go-arg"
+
"github.com/anacrolix/torrent/mse"
)
import (
"github.com/anacrolix/generics"
- "github.com/anacrolix/torrent/typed-roaring"
list "github.com/bahlo/generic-list-go"
+
+ "github.com/anacrolix/torrent/typed-roaring"
)
type orderedBitmap[T typedRoaring.BitConstraint] struct {
import (
"github.com/RoaringBitmap/roaring"
+
"github.com/anacrolix/torrent/metainfo"
)
import (
"github.com/anacrolix/dht/v2/krpc"
+
"github.com/anacrolix/torrent/bencode"
)
"github.com/anacrolix/missinggo/iter"
"github.com/anacrolix/missinggo/v2/bitmap"
"github.com/anacrolix/multiless"
+ "golang.org/x/time/rate"
+
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/mse"
pp "github.com/anacrolix/torrent/peer_protocol"
request_strategy "github.com/anacrolix/torrent/request-strategy"
"github.com/anacrolix/torrent/typed-roaring"
- "golang.org/x/time/rate"
)
type PeerSource string
"time"
"github.com/anacrolix/dht/v2/krpc"
+
pp "github.com/anacrolix/torrent/peer_protocol"
)
"github.com/anacrolix/chansync"
"github.com/anacrolix/missinggo/v2/bitmap"
+
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
"github.com/anacrolix/torrent/storage"
"expvar"
"github.com/anacrolix/multiless"
- "github.com/anacrolix/torrent/metainfo"
+ "github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/types"
)
"github.com/anacrolix/log"
"github.com/anacrolix/multiless"
- "github.com/anacrolix/torrent/typed-roaring"
"github.com/lispad/go-generics-tools/binheap"
"github.com/anacrolix/torrent/request-strategy"
+ "github.com/anacrolix/torrent/typed-roaring"
)
func (t *Torrent) requestStrategyPieceOrderState(i int) request_strategy.PieceRequestOrderState {
"net/netip"
"github.com/anacrolix/generics"
+
"github.com/anacrolix/torrent/smartban"
)
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/perf"
"github.com/anacrolix/missinggo/v2"
- "github.com/anacrolix/torrent/dialer"
"github.com/pkg/errors"
+
+ "github.com/anacrolix/torrent/dialer"
)
type Listener interface {
"net/http"
"github.com/anacrolix/log"
+
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/metainfo"
)
"path/filepath"
"github.com/anacrolix/missinggo/v2"
- "github.com/anacrolix/torrent/common"
- "github.com/anacrolix/torrent/segments"
+ "github.com/anacrolix/torrent/common"
"github.com/anacrolix/torrent/metainfo"
+ "github.com/anacrolix/torrent/segments"
)
// File-based storage for torrents, that isn't yet bound to a particular torrent.
"crawshaw.io/sqlite"
"crawshaw.io/sqlite/sqlitex"
+
"github.com/anacrolix/torrent/metainfo"
)
"sync"
"testing"
+ qt "github.com/frankban/quicktest"
+
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/storage"
- qt "github.com/frankban/quicktest"
)
const (
"os"
"github.com/anacrolix/missinggo/v2"
+
"github.com/anacrolix/torrent/metainfo"
)
"testing/iotest"
"github.com/anacrolix/missinggo/v2/bitmap"
- "github.com/anacrolix/torrent"
- "github.com/anacrolix/torrent/internal/testutil"
- "github.com/anacrolix/torrent/storage"
"github.com/frankban/quicktest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/time/rate"
+
+ "github.com/anacrolix/torrent"
+ "github.com/anacrolix/torrent/internal/testutil"
+ "github.com/anacrolix/torrent/storage"
)
type LeecherStorageTestCase struct {
"time"
"github.com/anacrolix/log"
+
pp "github.com/anacrolix/torrent/peer_protocol"
)
"github.com/anacrolix/missinggo/v2/pubsub"
"github.com/anacrolix/multiless"
"github.com/anacrolix/sync"
- request_strategy "github.com/anacrolix/torrent/request-strategy"
- typedRoaring "github.com/anacrolix/torrent/typed-roaring"
"github.com/davecgh/go-spew/spew"
"github.com/pion/datachannel"
"github.com/anacrolix/torrent/common"
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
+ request_strategy "github.com/anacrolix/torrent/request-strategy"
"github.com/anacrolix/torrent/segments"
"github.com/anacrolix/torrent/storage"
"github.com/anacrolix/torrent/tracker"
+ typedRoaring "github.com/anacrolix/torrent/typed-roaring"
"github.com/anacrolix/torrent/webseed"
"github.com/anacrolix/torrent/webtorrent"
)
"net/url"
"github.com/anacrolix/log"
+
trHttp "github.com/anacrolix/torrent/tracker/http"
"github.com/anacrolix/torrent/tracker/udp"
)
hc: &http.Client{
Transport: &http.Transport{
DialContext: opts.DialContext,
- Proxy: opts.Proxy,
+ Proxy: opts.Proxy,
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
ServerName: opts.ServerName,
"strings"
"github.com/anacrolix/missinggo/httptoo"
+
"github.com/anacrolix/torrent/bencode"
"github.com/anacrolix/torrent/tracker/shared"
"github.com/anacrolix/torrent/tracker/udp"
"fmt"
"github.com/anacrolix/dht/v2/krpc"
+
"github.com/anacrolix/torrent/bencode"
)
"github.com/anacrolix/dht/v2/krpc"
"github.com/anacrolix/log"
+
trHttp "github.com/anacrolix/torrent/tracker/http"
"github.com/anacrolix/torrent/tracker/shared"
"github.com/anacrolix/torrent/tracker/udp"
"net"
"github.com/anacrolix/log"
-
"github.com/anacrolix/missinggo/v2"
)
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/v2"
- "github.com/anacrolix/torrent/metainfo"
"github.com/fsnotify/fsnotify"
+
+ "github.com/anacrolix/torrent/metainfo"
)
type Change uint
package torrent
import (
- "go.opentelemetry.io/otel"
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/trace"
"net"
"strconv"
"time"
- "github.com/anacrolix/torrent/webtorrent"
"github.com/pion/datachannel"
"github.com/pion/webrtc/v3"
+ "go.opentelemetry.io/otel"
+ "go.opentelemetry.io/otel/attribute"
+ "go.opentelemetry.io/otel/trace"
+
+ "github.com/anacrolix/torrent/webtorrent"
)
const webrtcNetwork = "webrtc"
"github.com/RoaringBitmap/roaring"
"github.com/anacrolix/log"
+
"github.com/anacrolix/torrent/metainfo"
pp "github.com/anacrolix/torrent/peer_protocol"
"github.com/anacrolix/torrent/webseed"
"strings"
"github.com/RoaringBitmap/roaring"
+
"github.com/anacrolix/torrent/common"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/segments"
"crypto/rand"
"encoding/json"
"fmt"
- "github.com/anacrolix/generics"
- "go.opentelemetry.io/otel/trace"
"sync"
"time"
+ "github.com/anacrolix/generics"
"github.com/anacrolix/log"
-
- "github.com/anacrolix/torrent/tracker"
"github.com/gorilla/websocket"
"github.com/pion/datachannel"
"github.com/pion/webrtc/v3"
+ "go.opentelemetry.io/otel/trace"
+
+ "github.com/anacrolix/torrent/tracker"
)
type TrackerClientStats struct {
"context"
"expvar"
"fmt"
+ "io"
+ "sync"
+ "time"
+
"github.com/anacrolix/log"
"github.com/anacrolix/missinggo/v2/pproffd"
"github.com/pion/datachannel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/trace"
- "io"
- "sync"
- "time"
)
const (
"sync"
"github.com/anacrolix/log"
- "github.com/anacrolix/torrent/tracker/http"
"github.com/gorilla/websocket"
+ "github.com/pion/datachannel"
"github.com/anacrolix/torrent/tracker"
+ "github.com/anacrolix/torrent/tracker/http"
"github.com/anacrolix/torrent/webtorrent"
- "github.com/pion/datachannel"
)
type websocketTrackerStatus struct {