go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/r2/opt_dialer.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package r2 9 10 import ( 11 "net" 12 "net/http" 13 ) 14 15 // OptDialer sets the dialer for the transport. 16 func OptDialer(dialer net.Dialer) Option { 17 return func(r *Request) error { 18 if r.client == nil { 19 r.client = new(http.Client) 20 } 21 if r.client.Transport == nil { 22 r.client.Transport = new(http.Transport) 23 } 24 if typed, ok := r.client.Transport.(*http.Transport); ok { 25 typed.DialContext = dialer.DialContext 26 } else { 27 return ErrInvalidTransport 28 } 29 return nil 30 } 31 }