From 955e337b787e5cad8f9ff7f8e7354fbd31cad6ee Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 20 Jan 2021 14:23:25 +1100 Subject: [PATCH] Generate a RemoteAddr for webseed Peers --- torrent.go | 1 + url-net-addr.go | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 url-net-addr.go diff --git a/torrent.go b/torrent.go index c7cc0255..0cfe31f0 100644 --- a/torrent.go +++ b/torrent.go @@ -2114,6 +2114,7 @@ func (t *Torrent) addWebSeed(url string) { reconciledHandshakeStats: true, peerSentHaveAll: true, PeerMaxRequests: maxRequests, + RemoteAddr: remoteAddrFromUrl(url), }, client: webseed.Client{ HttpClient: http.DefaultClient, diff --git a/url-net-addr.go b/url-net-addr.go new file mode 100644 index 00000000..6558e89e --- /dev/null +++ b/url-net-addr.go @@ -0,0 +1,26 @@ +package torrent + +import ( + "net" + "net/url" +) + +type urlNetAddr struct { + u *url.URL +} + +func (me urlNetAddr) Network() string { + return me.u.Scheme +} + +func (me urlNetAddr) String() string { + return me.u.Host +} + +func remoteAddrFromUrl(urlStr string) net.Addr { + u, err := url.Parse(urlStr) + if err != nil { + return nil + } + return urlNetAddr{u} +} -- 2.48.1