diff options
author | Wim <wim@42.be> | 2017-11-02 17:09:34 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2017-11-02 17:09:34 +0100 |
commit | b2a6777995c55233a47212743c781a27dde8dce6 (patch) | |
tree | be4a9ef00448f82c71ae47d42835347160b70900 /vendor/github.com/nlopes/slack/websocket_proxy.go | |
parent | b461fc5e404c6e0df7289477171cad629cddb3e6 (diff) | |
download | matterbridge-msglm-b2a6777995c55233a47212743c781a27dde8dce6.tar.gz matterbridge-msglm-b2a6777995c55233a47212743c781a27dde8dce6.tar.bz2 matterbridge-msglm-b2a6777995c55233a47212743c781a27dde8dce6.zip |
Use matterbridge vendored slack
Diffstat (limited to 'vendor/github.com/nlopes/slack/websocket_proxy.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/websocket_proxy.go | 83 |
1 files changed, 0 insertions, 83 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 440015d6..00000000 --- a/vendor/github.com/nlopes/slack/websocket_proxy.go +++ /dev/null @@ -1,83 +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) - cc.Do(&req) - if err != nil && err != httputil.ErrPersistEOF { - 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) -} |