aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/gorilla/websocket/proxy.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gorilla/websocket/proxy.go')
-rw-r--r--vendor/github.com/gorilla/websocket/proxy.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/vendor/github.com/gorilla/websocket/proxy.go b/vendor/github.com/gorilla/websocket/proxy.go
index e0f466b..80f55d1 100644
--- a/vendor/github.com/gorilla/websocket/proxy.go
+++ b/vendor/github.com/gorilla/websocket/proxy.go
@@ -8,10 +8,13 @@ import (
"bufio"
"encoding/base64"
"errors"
+ "log"
"net"
"net/http"
"net/url"
"strings"
+
+ "golang.org/x/net/proxy"
)
type netDialerFunc func(network, addr string) (net.Conn, error)
@@ -21,7 +24,7 @@ func (fn netDialerFunc) Dial(network, addr string) (net.Conn, error) {
}
func init() {
- proxy_RegisterDialerType("http", func(proxyURL *url.URL, forwardDialer proxy_Dialer) (proxy_Dialer, error) {
+ proxy.RegisterDialerType("http", func(proxyURL *url.URL, forwardDialer proxy.Dialer) (proxy.Dialer, error) {
return &httpProxyDialer{proxyURL: proxyURL, forwardDial: forwardDialer.Dial}, nil
})
}
@@ -55,7 +58,9 @@ func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error)
}
if err := connectReq.Write(conn); err != nil {
- conn.Close()
+ if err := conn.Close(); err != nil {
+ log.Printf("httpProxyDialer: failed to close connection: %v", err)
+ }
return nil, err
}
@@ -64,12 +69,16 @@ func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error)
br := bufio.NewReader(conn)
resp, err := http.ReadResponse(br, connectReq)
if err != nil {
- conn.Close()
+ if err := conn.Close(); err != nil {
+ log.Printf("httpProxyDialer: failed to close connection: %v", err)
+ }
return nil, err
}
if resp.StatusCode != 200 {
- conn.Close()
+ if err := conn.Close(); err != nil {
+ log.Printf("httpProxyDialer: failed to close connection: %v", err)
+ }
f := strings.SplitN(resp.Status, " ", 2)
return nil, errors.New(f[1])
}