diff options
author | Wim <wim@42.be> | 2018-08-10 00:38:19 +0200 |
---|---|---|
committer | Wim <wim@42.be> | 2018-08-10 00:38:19 +0200 |
commit | 68aeb93afa0dd4a5067fcefff9db0a70644d7128 (patch) | |
tree | fdd80104c029ba57cb27d54850a3aa7020fedfba /vendor/github.com/nlopes/slack/websocket_proxy.go | |
parent | 51062863a5c34d81e296cf15c61140911037cf3b (diff) | |
download | matterbridge-msglm-68aeb93afa0dd4a5067fcefff9db0a70644d7128.tar.gz matterbridge-msglm-68aeb93afa0dd4a5067fcefff9db0a70644d7128.tar.bz2 matterbridge-msglm-68aeb93afa0dd4a5067fcefff9db0a70644d7128.zip |
Update nlopes/slack vendor
Diffstat (limited to 'vendor/github.com/nlopes/slack/websocket_proxy.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/websocket_proxy.go | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/github.com/nlopes/slack/websocket_proxy.go b/vendor/github.com/nlopes/slack/websocket_proxy.go deleted file mode 100644 index 27f1cf99..00000000 --- a/vendor/github.com/nlopes/slack/websocket_proxy.go +++ /dev/null @@ -1,82 +0,0 @@ -package slack - -import ( - "crypto/tls" - "errors" - "net" - "net/http" - "net/http/httputil" - "net/url" - "os" - "strings" - - "golang.org/x/net/websocket" -) - -// Taken and reworked from: https://gist.github.com/madmo/8548738 -func websocketHTTPConnect(proxy, urlString string) (net.Conn, error) { - p, err := net.Dial("tcp", proxy) - if err != nil { - return nil, err - } - - turl, err := url.Parse(urlString) - if err != nil { - return nil, err - } - - req := http.Request{ - Method: "CONNECT", - URL: &url.URL{}, - Host: turl.Host, - } - - cc := httputil.NewProxyClientConn(p, nil) - if _, err := cc.Do(&req); err != nil { - return nil, err - } - - rwc, _ := cc.Hijack() - - return rwc, nil -} - -func websocketProxyDial(urlString, origin string) (ws *websocket.Conn, err error) { - if os.Getenv("HTTP_PROXY") == "" { - return websocket.Dial(urlString, "", origin) - } - - purl, err := url.Parse(os.Getenv("HTTP_PROXY")) - if err != nil { - return nil, err - } - - config, err := websocket.NewConfig(urlString, origin) - if err != nil { - return nil, err - } - - client, err := websocketHTTPConnect(purl.Host, urlString) - if err != nil { - return nil, err - } - - switch config.Location.Scheme { - case "ws": - case "wss": - tlsClient := tls.Client(client, &tls.Config{ - ServerName: strings.Split(config.Location.Host, ":")[0], - }) - err := tlsClient.Handshake() - if err != nil { - tlsClient.Close() - return nil, err - } - client = tlsClient - - default: - return nil, errors.New("invalid websocket schema") - } - - return websocket.NewClient(config, client) -} |