Merge pull request #543 from lunny/lunny/fallback_graceful_windows
Fix windows build broken by #416
This commit is contained in:
		
						commit
						aea1b2b02e
					
				
					 3 changed files with 65 additions and 24 deletions
				
			
		
							
								
								
									
										26
									
								
								cmd/web.go
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								cmd/web.go
									
									
									
									
									
								
							|  | @ -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: | ||||
|  |  | |||
							
								
								
									
										44
									
								
								cmd/web_graceful.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								cmd/web_graceful.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -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, | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										19
									
								
								cmd/web_windows.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								cmd/web_windows.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -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) | ||||
| } | ||||
		Loading…
	
		Reference in a new issue