From 2cce29e85833137528890582d5913df7311d3c4f Mon Sep 17 00:00:00 2001 From: James Houlahan Date: Wed, 16 Jun 2021 14:38:39 +0200 Subject: [PATCH] GODT-1201: bump gopenpgp to 2.1.10 and update crypto time --- go.mod | 2 +- go.sum | 4 ++-- pkg/pmapi/manager.go | 1 + pkg/pmapi/response.go | 11 +++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a6383fe8..36934347 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/ProtonMail/go-rfc5322 v0.8.0 github.com/ProtonMail/go-srp v0.0.0-20210514134713-bd9454f3fa01 github.com/ProtonMail/go-vcard v0.0.0-20180326232728-33aaa0a0c8a5 - github.com/ProtonMail/gopenpgp/v2 v2.1.9 + github.com/ProtonMail/gopenpgp/v2 v2.1.10 github.com/PuerkitoBio/goquery v1.5.1 github.com/abiosoft/ishell v2.0.0+incompatible github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db // indirect diff --git a/go.sum b/go.sum index 3fc203fa..b1a24387 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/ProtonMail/go-srp v0.0.0-20210514134713-bd9454f3fa01 h1:sRxNvPGnJFh6y github.com/ProtonMail/go-srp v0.0.0-20210514134713-bd9454f3fa01/go.mod h1:jOXzdvWTILIJzl83yzi/EZcnnhpI+A/5EyflaeVfi/0= github.com/ProtonMail/go-vcard v0.0.0-20180326232728-33aaa0a0c8a5 h1:Uga1DHFN4GUxuDQr0F71tpi8I9HqPIlZodZAI1lR6VQ= github.com/ProtonMail/go-vcard v0.0.0-20180326232728-33aaa0a0c8a5/go.mod h1:oeP9CMN+ajWp5jKp1kue5daJNwMMxLF+ujPaUIoJWlA= -github.com/ProtonMail/gopenpgp/v2 v2.1.9 h1:MdvkFBP8ldOHYOoaVct9LO+Zv5rl6VdeN1QurntRmkc= -github.com/ProtonMail/gopenpgp/v2 v2.1.9/go.mod h1:CHIXesUdnPxIxtJTg2P/cxoA0cvUwIBpZIS8SsY82QA= +github.com/ProtonMail/gopenpgp/v2 v2.1.10 h1:WPwpzVQFvzzFIzHCsJ1RzuVkN4JsMIydl/0vc05yU0E= +github.com/ProtonMail/gopenpgp/v2 v2.1.10/go.mod h1:CHIXesUdnPxIxtJTg2P/cxoA0cvUwIBpZIS8SsY82QA= github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= diff --git a/pkg/pmapi/manager.go b/pkg/pmapi/manager.go index 2314704b..c2c9a22f 100644 --- a/pkg/pmapi/manager.go +++ b/pkg/pmapi/manager.go @@ -59,6 +59,7 @@ func newManager(cfg Config) *manager { // wrapped in JSON. If error is returned, `handleRequestFailure` is called, // otherwise `handleRequestSuccess` is called. m.rc.SetError(&Error{}) + m.rc.OnAfterResponse(updateTime) m.rc.OnAfterResponse(m.catchAPIError) m.rc.OnAfterResponse(m.handleRequestSuccess) m.rc.OnError(m.handleRequestFailure) diff --git a/pkg/pmapi/response.go b/pkg/pmapi/response.go index 13458015..1b07ec58 100644 --- a/pkg/pmapi/response.go +++ b/pkg/pmapi/response.go @@ -23,6 +23,7 @@ import ( "strconv" "time" + "github.com/ProtonMail/gopenpgp/v2/crypto" "github.com/go-resty/resty/v2" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -71,6 +72,16 @@ func (m *manager) catchAPIError(_ *resty.Client, res *resty.Response) error { return err } +func updateTime(_ *resty.Client, res *resty.Response) error { + if date, err := time.Parse(time.RFC1123, res.Header().Get("Date")); err != nil { + log.WithError(err).Warning("Cannot parse header date") + } else { + crypto.UpdateTime(date.Unix()) + } + + return nil +} + func catchRetryAfter(_ *resty.Client, res *resty.Response) (time.Duration, error) { if res.StatusCode() == http.StatusTooManyRequests { if after := res.Header().Get("Retry-After"); after != "" {