Merge remote-tracking branch 'upstream/master' into validate
This commit is contained in:
		
							
								
								
									
										4
									
								
								auth.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								auth.go
									
									
									
									
									
								
							| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package binding | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
							
								
								
									
										4
									
								
								gin.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								gin.go
									
									
									
									
									
								
							| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
							
								
								
									
										4
									
								
								mode.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								mode.go
									
									
									
									
									
								
							| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,3 +1,7 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package render | ||||
|  | ||||
| import ( | ||||
|  | ||||
| @ -1,13 +1,24 @@ | ||||
| // Copyright 2014 Manu Martinez-Almeida.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package gin | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"errors" | ||||
| 	"log" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| ) | ||||
|  | ||||
| type ( | ||||
| 	ResponseWriter interface { | ||||
| 		http.ResponseWriter | ||||
| 		http.Hijacker | ||||
| 		http.Flusher | ||||
| 		http.CloseNotifier | ||||
|  | ||||
| 		Status() int | ||||
| 		Written() bool | ||||
| 		WriteHeaderNow() | ||||
| @ -27,7 +38,7 @@ func (w *responseWriter) reset(writer http.ResponseWriter) { | ||||
| } | ||||
|  | ||||
| func (w *responseWriter) WriteHeader(code int) { | ||||
| 	if code != 0 { | ||||
| 	if code > 0 { | ||||
| 		w.status = code | ||||
| 		if w.written { | ||||
| 			log.Println("[GIN] WARNING. Headers were already written!") | ||||
| @ -54,3 +65,25 @@ func (w *responseWriter) Status() int { | ||||
| func (w *responseWriter) Written() bool { | ||||
| 	return w.written | ||||
| } | ||||
|  | ||||
| // Implements the http.Hijacker interface | ||||
| func (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { | ||||
| 	hijacker, ok := w.ResponseWriter.(http.Hijacker) | ||||
| 	if !ok { | ||||
| 		return nil, nil, errors.New("the ResponseWriter doesn't support the Hijacker interface") | ||||
| 	} | ||||
| 	return hijacker.Hijack() | ||||
| } | ||||
|  | ||||
| // Implements the http.CloseNotify interface | ||||
| func (w *responseWriter) CloseNotify() <-chan bool { | ||||
| 	return w.ResponseWriter.(http.CloseNotifier).CloseNotify() | ||||
| } | ||||
|  | ||||
| // Implements the http.Flush interface | ||||
| func (w *responseWriter) Flush() { | ||||
| 	flusher, ok := w.ResponseWriter.(http.Flusher) | ||||
| 	if ok { | ||||
| 		flusher.Flush() | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user