Browse Source

Merge branch 'master' into develop

Manu Mtz.-Almeida 10 years ago
parent
commit
e9531e5c76
4 changed files with 27 additions and 14 deletions
  1. 20 1
      README.md
  2. 4 4
      context.go
  3. 3 3
      gin.go
  4. 0 6
      logger_test.go

+ 20 - 1
README.md

@@ -128,7 +128,7 @@ func main() {
 	})
 
 	// However, this one will match /user/john/ and also /user/john/send
-	// If no other routers match /user/john, it will redirect to /user/join/
+	// If no other routers match /user/john, it will redirect to /user/john/
 	router.GET("/user/:name/*action", func(c *gin.Context) {
 		name := c.Param("name")
 		action := c.Param("action")
@@ -652,3 +652,22 @@ func main() {
 	s.ListenAndServe()
 }
 ```
+
+#### Graceful restart or stop
+
+Do you want to graceful restart or stop your web server?
+There be some ways.
+
+We can using fvbock/endless to replace the default ListenAndServe
+
+Refer the issue for more details: 
+
+https://github.com/gin-gonic/gin/issues/296
+
+```go
+router := gin.Default()
+router.GET("/", handler)
+// [...]
+endless.ListenAndServe(":4242", router)
+
+```

+ 4 - 4
context.go

@@ -103,10 +103,10 @@ func (c *Context) IsAborted() bool {
 	return c.index >= abortIndex
 }
 
-// Abort stops the system to continue calling the pending handlers in the chain.
-// Let's say you have an authorization middleware that validates if the request is authorized
-// if the authorization fails (the password does not match). This method (Abort()) should be called
-// in order to stop the execution of the actual handler.
+// Abort prevents pending handlers from being called. Note that this will not stop the current handler.
+// Let's say you have an authorization middleware that validates that the current request is authorized. If the
+// authorization fails (ex: the password does not match), call Abort to ensure the remaining handlers
+// for this request are not called.
 func (c *Context) Abort() {
 	c.index = abortIndex
 }

+ 3 - 3
gin.go

@@ -227,7 +227,7 @@ func iterate(path, method string, routes RoutesInfo, root *node) RoutesInfo {
 
 // Run attaches the router to a http.Server and starts listening and serving HTTP requests.
 // It is a shortcut for http.ListenAndServe(addr, router)
-// Note: this method will block the calling goroutine undefinitelly unless an error happens.
+// Note: this method will block the calling goroutine indefinitely unless an error happens.
 func (engine *Engine) Run(addr ...string) (err error) {
 	defer func() { debugPrintError(err) }()
 
@@ -239,7 +239,7 @@ func (engine *Engine) Run(addr ...string) (err error) {
 
 // RunTLS attaches the router to a http.Server and starts listening and serving HTTPS (secure) requests.
 // It is a shortcut for http.ListenAndServeTLS(addr, certFile, keyFile, router)
-// Note: this method will block the calling goroutine undefinitelly unless an error happens.
+// Note: this method will block the calling goroutine indefinitely unless an error happens.
 func (engine *Engine) RunTLS(addr string, certFile string, keyFile string) (err error) {
 	debugPrint("Listening and serving HTTPS on %s\n", addr)
 	defer func() { debugPrintError(err) }()
@@ -250,7 +250,7 @@ func (engine *Engine) RunTLS(addr string, certFile string, keyFile string) (err
 
 // RunUnix attaches the router to a http.Server and starts listening and serving HTTP requests
 // through the specified unix socket (ie. a file).
-// Note: this method will block the calling goroutine undefinitelly unless an error happens.
+// Note: this method will block the calling goroutine indefinitely unless an error happens.
 func (engine *Engine) RunUnix(file string) (err error) {
 	debugPrint("Listening and serving HTTP on unix:/%s", file)
 	defer func() { debugPrintError(err) }()

+ 0 - 6
logger_test.go

@@ -12,12 +12,6 @@ import (
 	"github.com/stretchr/testify/assert"
 )
 
-//TODO
-// func (engine *Engine) LoadHTMLGlob(pattern string) {
-// func (engine *Engine) LoadHTMLFiles(files ...string) {
-// func (engine *Engine) Run(addr string) error {
-// func (engine *Engine) RunTLS(addr string, cert string, key string) error {
-
 func init() {
 	SetMode(TestMode)
 }