THRIFT-2109 Secure connections should be supported in Go

Patch: Justin Judd
diff --git a/tutorial/go/src/server.go b/tutorial/go/src/server.go
index aea749e..0374cde 100644
--- a/tutorial/go/src/server.go
+++ b/tutorial/go/src/server.go
@@ -23,17 +23,34 @@
 	"fmt"
 	"git.apache.org/thrift.git/lib/go/thrift"
 	"tutorial"
+	"crypto/tls"
 )
 
-func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
-	transport, err := thrift.NewTServerSocket(addr)
+func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string, secure bool) error {
+	var transport thrift.TServerTransport
+	var err error
+	if secure {
+		cfg := new(tls.Config)
+		if cert, err := tls.LoadX509KeyPair("server.crt", "server.key"); err == nil {
+			cfg.Certificates = append(cfg.Certificates, cert)
+		}
+		if err != nil {
+			fmt.Println("Unable to load server certificate and key")
+			return err
+		}
+		transport, err = thrift.NewTSSLServerSocket(addr, cfg)
+	} else {
+		transport, err = thrift.NewTServerSocket(addr)
+	}
+	
 	if err != nil {
 		return err
 	}
+	fmt.Printf("%T\n", transport)
 	handler := NewCalculatorHandler()
 	processor := tutorial.NewCalculatorProcessor(handler)
 	server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
 
-	fmt.Println("Starting the simple server... on ", transport.Addr())
+	fmt.Println("Starting the simple server... on ", addr)
 	return server.Serve()
 }