aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/feed/feed.go1
-rw-r--r--internal/http/client.go11
2 files changed, 12 insertions, 0 deletions
diff --git a/internal/feed/feed.go b/internal/feed/feed.go
index ffe831f..f31de65 100644
--- a/internal/feed/feed.go
+++ b/internal/feed/feed.go
@@ -38,6 +38,7 @@ func (feed *Feed) Context() http.Context {
return http.Context{
Timeout: feed.Global.Timeout,
DisableTLS: feed.NoTLS,
+ Cookies: feed.Cookies,
}
}
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