@@ -5,7 +5,6 @@ | |||
package cmd | |||
import ( | |||
"crypto/tls" | |||
"fmt" | |||
"net" | |||
"net/http" | |||
@@ -31,7 +30,6 @@ import ( | |||
"code.gitea.io/gitea/routers/repo" | |||
"code.gitea.io/gitea/routers/user" | |||
"github.com/facebookgo/grace/gracehttp" | |||
"github.com/go-macaron/binding" | |||
"github.com/go-macaron/cache" | |||
"github.com/go-macaron/captcha" | |||
@@ -616,29 +614,9 @@ func runWeb(ctx *cli.Context) error { | |||
var err error | |||
switch setting.Protocol { | |||
case setting.HTTP: | |||
err = gracehttp.Serve(&http.Server{ | |||
Addr: listenAddr, | |||
Handler: m, | |||
}) | |||
err = runHTTP(listenAddr, m) | |||
case setting.HTTPS: | |||
config := &tls.Config{ | |||
MinVersion: tls.VersionTLS10, | |||
} | |||
if config.NextProtos == nil { | |||
config.NextProtos = []string{"http/1.1"} | |||
} | |||
config.Certificates = make([]tls.Certificate, 1) | |||
config.Certificates[0], err = tls.LoadX509KeyPair(setting.CertFile, setting.KeyFile) | |||
if err != nil { | |||
log.Fatal(4, "Failed to load https cert file %s: %v", listenAddr, err) | |||
} | |||
err = gracehttp.Serve(&http.Server{ | |||
Addr: listenAddr, | |||
Handler: m, | |||
TLSConfig: config, | |||
}) | |||
err = runHTTPS(listenAddr, setting.CertFile, setting.KeyFile, m) | |||
case setting.FCGI: | |||
err = fcgi.Serve(nil, m) | |||
case setting.UnixSocket: |
@@ -0,0 +1,44 @@ | |||
// +build !windows | |||
// Copyright 2016 The Gitea Authors. All rights reserved. | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package cmd | |||
import ( | |||
"crypto/tls" | |||
"log" | |||
"net/http" | |||
"github.com/facebookgo/grace/gracehttp" | |||
) | |||
func runHTTP(listenAddr string, m http.Handler) error { | |||
return gracehttp.Serve(&http.Server{ | |||
Addr: listenAddr, | |||
Handler: m, | |||
}) | |||
} | |||
func runHTTPS(listenAddr, certFile, keyFile string, m http.Handler) error { | |||
config := &tls.Config{ | |||
MinVersion: tls.VersionTLS10, | |||
} | |||
if config.NextProtos == nil { | |||
config.NextProtos = []string{"http/1.1"} | |||
} | |||
config.Certificates = make([]tls.Certificate, 1) | |||
var err error | |||
config.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile) | |||
if err != nil { | |||
log.Fatal(4, "Failed to load https cert file %s: %v", listenAddr, err) | |||
} | |||
return gracehttp.Serve(&http.Server{ | |||
Addr: listenAddr, | |||
Handler: m, | |||
TLSConfig: config, | |||
}) | |||
} |
@@ -0,0 +1,19 @@ | |||
// +build windows | |||
// Copyright 2016 The Gitea Authors. All rights reserved. | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package cmd | |||
import ( | |||
"net/http" | |||
) | |||
func runHTTP(listenAddr string, m http.Handler) error { | |||
return http.ListenAndServe(listenAddr, m) | |||
} | |||
func runHTTPS(listenAddr, certFile, keyFile string, m http.Handler) error { | |||
return http.ListenAndServeTLS(listenAddr, certFile, keyFile, m) | |||
} |