github.com/iDigitalFlame/xmt@v0.5.4/com/wc2/c_no_compat.go (about) 1 //go:build go1.13 2 // +build go1.13 3 4 // Copyright (C) 2020 - 2023 iDigitalFlame 5 // 6 // This program is free software: you can redistribute it and/or modify 7 // it under the terms of the GNU General Public License as published by 8 // the Free Software Foundation, either version 3 of the License, or 9 // any later version. 10 // 11 // This program is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License 17 // along with this program. If not, see <https://www.gnu.org/licenses/>. 18 // 19 20 package wc2 21 22 import ( 23 "context" 24 "net" 25 "net/http" 26 "time" 27 28 "github.com/iDigitalFlame/xmt/device" 29 ) 30 31 func maskConn(c net.Conn) net.Conn { 32 return c 33 } 34 func newRequest(x context.Context) *http.Request { 35 r, _ := http.NewRequestWithContext(x, http.MethodGet, "", nil) 36 return r 37 } 38 func newTransport(d time.Duration) *http.Transport { 39 return &http.Transport{ 40 Proxy: device.Proxy, 41 MaxIdleConns: 0, 42 ReadBufferSize: 1, // Bugfix 43 WriteBufferSize: 1, // Bugfix 44 IdleConnTimeout: 0, 45 MaxConnsPerHost: 0, 46 ForceAttemptHTTP2: false, 47 DisableKeepAlives: true, 48 TLSHandshakeTimeout: d, 49 MaxIdleConnsPerHost: 0, 50 ExpectContinueTimeout: d, 51 ResponseHeaderTimeout: d, 52 } 53 } 54 func baseContext(l *listener, f func(net.Listener) context.Context) { 55 l.BaseContext = f 56 }