From: Matt Joiner Date: Wed, 20 Jan 2021 03:23:25 +0000 (+1100) Subject: Generate a RemoteAddr for webseed Peers X-Git-Tag: v1.22.0~27 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=955e337b787e5cad8f9ff7f8e7354fbd31cad6ee;p=btrtrc.git Generate a RemoteAddr for webseed Peers --- 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} +}