github.com/blend/go-sdk@v1.20220411.3/r2/opt_dial.go (about) 1 /* 2 3 Copyright (c) 2022 - Present. Blend Labs, Inc. All rights reserved 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file. 5 6 */ 7 8 package r2 9 10 import ( 11 "net" 12 "net/http" 13 ) 14 15 // OptDial sets dial options for a request, these must be done all at once. 16 func OptDial(opts ...DialOption) 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 dialer := new(net.Dialer) 26 for _, opt := range opts { 27 opt(dialer) 28 } 29 typed.DialContext = dialer.DialContext 30 } 31 return nil 32 } 33 }