aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2022-01-09 22:14:56 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2022-01-10 00:16:44 +0100
commit5b3f0f96b7e345a82f0d963ddef1dd4569465145 (patch)
tree1870a1465cbef9f828137e2fcb37bd53dc611034
parentc20aa09fb31e09819e8e5eca222b3de2049cbdf8 (diff)
downloadfeed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.tar.gz
feed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.tar.bz2
feed2imap-go-5b3f0f96b7e345a82f0d963ddef1dd4569465145.zip
Support sending cookies in a http request.
-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