go: Fix cross test server
Client: go
This was a bug introduced by 91565d490e98306ac6797dd6ed4f72c0e8222e78
that broke go's cross-test server, but because other CI issues we didn't
run cross-test so we didn't notice the issue.
diff --git a/test/go/src/bin/testserver/main.go b/test/go/src/bin/testserver/main.go
index 652fafa..0cfb62c 100644
--- a/test/go/src/bin/testserver/main.go
+++ b/test/go/src/bin/testserver/main.go
@@ -59,7 +59,10 @@
return
}
} else {
- http.ListenAndServe(fmt.Sprintf(":%d", *port), nil)
+ if err := http.ListenAndServe(fmt.Sprintf(":%d", *port), nil); err != nil {
+ fmt.Println(err)
+ return
+ }
}
} else {
server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory)
diff --git a/test/go/src/common/server.go b/test/go/src/common/server.go
index 0af2702..85429f0 100644
--- a/test/go/src/common/server.go
+++ b/test/go/src/common/server.go
@@ -49,7 +49,7 @@
) (thrift.TProcessor, thrift.TServerTransport, thrift.TTransportFactory, thrift.TProtocolFactory, string /* addr */, error) {
var err error
- hostPort := fmt.Sprintf("%s:0", host)
+ hostPort := fmt.Sprintf("%s:%d", host, port)
var cfg *thrift.TConfiguration = nil
var protocolFactory thrift.TProtocolFactory
@@ -73,6 +73,15 @@
var serverTransport thrift.TServerTransport
var addr string
+ if transport == "http" {
+ // In cross-test servers, we would call http.ListenAndServe
+ // again on the host:port, so don't use the listen to fill the
+ // addr and just generate it here instead.
+ addr = hostPort
+ if domain_socket != "" {
+ addr = domain_socket
+ }
+ }
if ssl {
cfg := new(tls.Config)
if cert, err := tls.LoadX509KeyPair(certPath+"/server.crt", certPath+"/server.key"); err != nil {
@@ -80,14 +89,16 @@
} else {
cfg.Certificates = append(cfg.Certificates, cert)
}
- transport, transportErr := thrift.NewTSSLServerSocket(hostPort, cfg)
+ serverSocket, transportErr := thrift.NewTSSLServerSocket(hostPort, cfg)
if transportErr == nil {
- listenErr := transport.Listen()
- if listenErr == nil {
- serverTransport = transport
- addr = transport.Addr().String()
- } else {
- err = listenErr
+ if transport != "http" {
+ listenErr := serverSocket.Listen()
+ if listenErr == nil {
+ serverTransport = serverSocket
+ addr = serverSocket.Addr().String()
+ } else {
+ err = listenErr
+ }
}
} else {
err = transportErr
@@ -97,14 +108,16 @@
serverTransport, err = thrift.NewTServerSocket(domain_socket)
addr = domain_socket
} else {
- transport, transportErr := thrift.NewTServerSocket(hostPort)
+ serverSocket, transportErr := thrift.NewTServerSocket(hostPort)
if transportErr == nil {
- listenErr := transport.Listen()
- if listenErr == nil {
- serverTransport = transport
- addr = transport.Addr().String()
- } else {
- err = listenErr
+ if transport != "http" {
+ listenErr := serverSocket.Listen()
+ if listenErr == nil {
+ serverTransport = serverSocket
+ addr = serverSocket.Addr().String()
+ } else {
+ err = listenErr
+ }
}
} else {
err = transportErr