diff options
Diffstat (limited to 'vendor/go.mau.fi/whatsmeow/socket/framesocket.go')
-rw-r--r-- | vendor/go.mau.fi/whatsmeow/socket/framesocket.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/vendor/go.mau.fi/whatsmeow/socket/framesocket.go b/vendor/go.mau.fi/whatsmeow/socket/framesocket.go index 2bcb21b5..2d7e4ad2 100644 --- a/vendor/go.mau.fi/whatsmeow/socket/framesocket.go +++ b/vendor/go.mau.fi/whatsmeow/socket/framesocket.go @@ -11,6 +11,7 @@ import ( "errors" "fmt" "net/http" + "net/url" "sync" "time" @@ -19,6 +20,8 @@ import ( waLog "go.mau.fi/whatsmeow/util/log" ) +type Proxy = func(*http.Request) (*url.URL, error) + type FrameSocket struct { conn *websocket.Conn ctx context.Context @@ -31,6 +34,7 @@ type FrameSocket struct { WriteTimeout time.Duration Header []byte + Proxy Proxy incomingLength int receivedLength int @@ -38,12 +42,14 @@ type FrameSocket struct { partialHeader []byte } -func NewFrameSocket(log waLog.Logger, header []byte) *FrameSocket { +func NewFrameSocket(log waLog.Logger, header []byte, proxy Proxy) *FrameSocket { return &FrameSocket{ conn: nil, log: log, Header: header, Frames: make(chan []byte), + + Proxy: proxy, } } @@ -92,7 +98,9 @@ func (fs *FrameSocket) Connect() error { return ErrSocketAlreadyOpen } ctx, cancel := context.WithCancel(context.Background()) - dialer := websocket.Dialer{} + dialer := websocket.Dialer{ + Proxy: fs.Proxy, + } headers := http.Header{"Origin": []string{Origin}} fs.log.Debugf("Dialing %s", URL) |