diff options
Diffstat (limited to 'internal/http/client.go')
-rw-r--r-- | internal/http/client.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/http/client.go b/internal/http/client.go index 17eb0cc..4272a5b 100644 --- a/internal/http/client.go +++ b/internal/http/client.go @@ -23,6 +23,7 @@ type Error struct { type Context struct { Timeout int DisableTLS bool + Cookies []Cookie } func (err Error) Error() string { @@ -53,6 +54,11 @@ func client(disableTLS bool) *http.Client { var noop ctxt.CancelFunc = func() {} +type Cookie struct { + Name string + Value string +} + func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, err error) { prematureExit := true stdCtx, ctxCancel := ctx.StdContext() @@ -76,6 +82,11 @@ func Get(url string, ctx Context) (resp *http.Response, cancel ctxt.CancelFunc, } req.Header.Set("User-Agent", "Feed2Imap-Go/1.0") + for _, c := range ctx.Cookies { + cookie := http.Cookie{Name: c.Name, Value: c.Value} + req.AddCookie(&cookie) + } + resp, err = client(ctx.DisableTLS).Do(req) if err != nil { return nil, noop, err |