Esempio n. 1
0
File: rspdy.go Progetto: kr/rspdy
// 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)
}