- 
                Notifications
    You must be signed in to change notification settings 
- Fork 18.4k
Closed
Description
What version of Go are you using (go version)?
$ go version go version go1.17.6 darwin/amd64
Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
go env Output
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/Users/zip/Library/Caches/go-build" GOENV="/Users/zip/Library/Application Support/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOINSECURE="" GOMODCACHE="/Users/zip/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/zip/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" GOVCS="" GOVERSION="go1.17.6" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/dev/null" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/2n/6lp_hgtd1jzbhrzvzldlm8m40000gn/T/go-build301895266=/tmp/go-build -gno-record-gcc-switches -fno-common"
What did you do?
	d := websocket.Dialer{TLSClientConfig: &tls.Config{RootCAs: roots}}
	c, _, err := d.Dial(u.String(), nil)
	if err != nil {
		fmt.Println("dial:", err)
	}
	defer c.Close()
	// get the tls.Conn
	uc := c.UnderlyingConn()
	fmt.Println(reflect.TypeOf(uc))
	fmt.Printf("%+v\n", uc)
	fmt.Println(uc.conn)
Here is the struct information, printed with reflect.TypeOf() and %+v:
*tls.Conn
&{conn:0xc000010078 isClient:true handshakeFn:0x41b05a0 handshakeStatus:1 handshakeMutex:{state:0 sema:0} handshakeErr:<nil> vers:772 haveVers:true config:0xc0002e4180 handshakes:1 didResume:false cipherSuite:4865 ocspResponse:[] scts:[] peerCertificates:[0xc0002cd080]
What did you expect to see?
To be able to access uc.conn
What did you see instead?
uc.conn undefined (type net.Conn has no field or method conn)
uc.conn is defined, as shown from the output of fmt.Printf("%+v\n", uc)
Metadata
Metadata
Assignees
Labels
No labels