Hijacker interface added

This commit is contained in:
olebedev 2014-08-25 15:58:43 +04:00
parent b3f322c5fc
commit 4a24c47a69

View File

@ -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()
}