net/http: add optional Server.TLSConfig field

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5688047
This commit is contained in:
Brad Fitzpatrick 2012-02-21 10:24:15 +11:00
parent dff5535aaa
commit dc19b94b21
1 changed files with 7 additions and 4 deletions

View File

@ -12,7 +12,6 @@ package http
import ( import (
"bufio" "bufio"
"bytes" "bytes"
"crypto/rand"
"crypto/tls" "crypto/tls"
"errors" "errors"
"fmt" "fmt"
@ -985,6 +984,7 @@ type Server struct {
ReadTimeout time.Duration // maximum duration before timing out read of the request ReadTimeout time.Duration // maximum duration before timing out read of the request
WriteTimeout time.Duration // maximum duration before timing out write of the response WriteTimeout time.Duration // maximum duration before timing out write of the response
MaxHeaderBytes int // maximum size of request headers, DefaultMaxHeaderBytes if 0 MaxHeaderBytes int // maximum size of request headers, DefaultMaxHeaderBytes if 0
TLSConfig *tls.Config // optional TLS config, used by ListenAndServeTLS
} }
// ListenAndServe listens on the TCP network address srv.Addr and then // ListenAndServe listens on the TCP network address srv.Addr and then
@ -1121,9 +1121,12 @@ func (srv *Server) ListenAndServeTLS(certFile, keyFile string) error {
if addr == "" { if addr == "" {
addr = ":https" addr = ":https"
} }
config := &tls.Config{ config := &tls.Config{}
Rand: rand.Reader, if srv.TLSConfig != nil {
NextProtos: []string{"http/1.1"}, *config = *srv.TLSConfig
}
if config.NextProtos == nil {
config.NextProtos = []string{"http/1.1"}
} }
var err error var err error