// DialAndServeTLS dials a TLS connection, then serves incoming HTTP // requests. If h is nil, it uses http.DefaultHandler. // If config.NextProtos is nil, it uses "rspdy/3". func DialAndServeTLS(network, addr string, config *tls.Config, h http.Handler) error { var srv spdy.Server srv.Handler = h config1 := new(tls.Config) if config != nil { *config1 = *config } if config1.NextProtos == nil { config1.NextProtos = []string{"rspdy/3"} } // TODO(kr): cert stuff conn, err := tls.Dial(network, addr, config1) if err != nil { return err } return srv.ServeConn(conn) }