]> Sergey Matveev's repositories - btrtrc.git/blobdiff - client.go
Test fixes for Windows
[btrtrc.git] / client.go
index b0f4b2a3728a497a5e0061379f6def8f136fce33..f1a7a3c73f117100774b9d2c0239becff1689991 100644 (file)
--- a/client.go
+++ b/client.go
@@ -301,6 +301,7 @@ func NewClient(cfg *ClientConfig) (cl *Client, err error) {
                },
                Proxy:                      cl.config.HTTPProxy,
                WebsocketTrackerHttpHeader: cl.config.WebsocketTrackerHttpHeader,
+               ICEServers:                 cl.config.ICEServers,
                DialContext:                cl.config.TrackerDialContext,
                OnConn: func(dc datachannel.ReadWriteCloser, dcc webtorrent.DataChannelContext) {
                        cl.lock()
@@ -424,9 +425,10 @@ func (cl *Client) eachDhtServer(f func(DhtServer)) {
 }
 
 // Stops the client. All connections to peers are closed and all activity will come to a halt.
-func (cl *Client) Close() (errs []error) {
+func (cl *Client) Close() error {
        var closeGroup sync.WaitGroup // For concurrent cleanup to complete before returning
        cl.lock()
+       var errs []error
        for _, t := range cl.torrents {
                err := t.close(&closeGroup)
                if err != nil {
@@ -440,7 +442,7 @@ func (cl *Client) Close() (errs []error) {
        cl.unlock()
        cl.event.Broadcast()
        closeGroup.Wait() // defer is LIFO. We want to Wait() after cl.unlock()
-       return
+       return errors.Join(errs...)
 }
 
 func (cl *Client) ipBlockRange(ip net.IP) (r iplist.Range, blocked bool) {