mirror of
https://github.com/gospider007/requests.git
synced 2025-12-24 13:57:52 +08:00
sync
This commit is contained in:
8
dial.go
8
dial.go
@@ -226,6 +226,14 @@ func (obj *Dialer) verifyProxyToRemote(ctx *Response, conn net.Conn, proxyTlsCon
|
||||
return packCon, conn, err
|
||||
}
|
||||
}
|
||||
|
||||
func (obj *Dialer) LookupIPAddrWithCache(host string) net.IP {
|
||||
msgDataAny, ok := obj.dnsIpData.Load(host)
|
||||
if ok {
|
||||
return msgDataAny.(msgClient).ip
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (obj *Dialer) loadHost(ctx *Response, host string) (net.IP, error) {
|
||||
msgDataAny, ok := obj.dnsIpData.Load(host)
|
||||
if ok {
|
||||
|
||||
@@ -261,7 +261,11 @@ func (obj *roundTripper) dial(ctx *Response) (conn *connecotr, err error) {
|
||||
}
|
||||
func (obj *roundTripper) dialConnecotr(ctx *Response, conne *connecotr, h2 bool) (err error) {
|
||||
if h2 {
|
||||
if conne.Conn, err = http2.NewClientConn(ctx.Context(), conne.c, ctx.option.gospiderSpec.H2Spec, func(err error) {
|
||||
var spec *http2.Spec
|
||||
if ctx.option.gospiderSpec != nil {
|
||||
spec = ctx.option.gospiderSpec.H2Spec
|
||||
}
|
||||
if conne.Conn, err = http2.NewClientConn(ctx.Context(), conne.c, spec, func(err error) {
|
||||
conne.forceCnl(tools.WrapError(err, "http2 client close"))
|
||||
}); err != nil {
|
||||
return err
|
||||
@@ -276,7 +280,7 @@ func (obj *roundTripper) dialConnecotr(ctx *Response, conne *connecotr, h2 bool)
|
||||
func (obj *roundTripper) dialAddTls(option *RequestOption, req *http.Request, netConn net.Conn) (net.Conn, bool, error) {
|
||||
ctx, cnl := context.WithTimeout(req.Context(), option.TlsHandshakeTimeout)
|
||||
defer cnl()
|
||||
if option.gospiderSpec.TLSSpec != nil {
|
||||
if option.gospiderSpec != nil && option.gospiderSpec.TLSSpec != nil {
|
||||
if tlsConn, err := obj.dialer.addJa3Tls(ctx, netConn, getHost(req), option.gospiderSpec.TLSSpec, option.UtlsConfig.Clone(), option.ForceHttp1); err != nil {
|
||||
return tlsConn, false, tools.WrapError(err, "add ja3 tls error")
|
||||
} else {
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"log"
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"fmt"
|
||||
@@ -89,7 +90,7 @@ func server() {
|
||||
fmt.Fprint(w, "method is not supported")
|
||||
}
|
||||
})
|
||||
tlsCert, err := gtls.CreateProxyCertWithName("localhost")
|
||||
tlsCert, err := gtls.CreateCertWithAddr(net.IP{127, 0, 0, 1})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user