forked from mirror/gin
Hijacker interface added
This commit is contained in:
parent
b3f322c5fc
commit
4a24c47a69
|
@ -1,7 +1,10 @@
|
|||
package gin
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
|
@ -11,6 +14,7 @@ type (
|
|||
Status() int
|
||||
Written() bool
|
||||
WriteHeaderNow()
|
||||
Hijack() (net.Conn, *bufio.ReadWriter, error)
|
||||
}
|
||||
|
||||
responseWriter struct {
|
||||
|
@ -54,3 +58,12 @@ func (w *responseWriter) Status() int {
|
|||
func (w *responseWriter) Written() bool {
|
||||
return w.written
|
||||
}
|
||||
|
||||
// allow connection hijacking
|
||||
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()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue