diff --git a/.gitignore b/.gitignore index d8ec889b..3c7c8490 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,10 @@ *.dll *.so *.dylib + +# Build output main +go-update # Test binary, build with `go test -c` *.test diff --git a/controller/controller.go b/controller/controller.go index cc6fd402..3f64d6ac 100644 --- a/controller/controller.go +++ b/controller/controller.go @@ -19,7 +19,7 @@ import ( "github.com/brave/go-update/omaha" "github.com/brave/go-update/omaha/protocol" "github.com/getsentry/sentry-go" - "github.com/go-chi/chi" + "github.com/go-chi/chi/v5" "github.com/pressly/lg" ) diff --git a/go.mod b/go.mod index 65ac9995..0286f976 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/aws/aws-sdk-go v1.55.7 github.com/brave-intl/bat-go v0.1.0 github.com/getsentry/sentry-go v0.32.0 - github.com/go-chi/chi v4.1.2+incompatible + github.com/go-chi/chi/v5 v5.0.12 github.com/go-playground/validator/v10 v10.26.0 github.com/pressly/lg v1.1.1 github.com/sirupsen/logrus v1.9.3 @@ -20,6 +20,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/getsentry/raven-go v0.2.1-0.20190619092523-5c24d5110e0e // indirect + github.com/go-chi/chi v1.5.5 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/golang/protobuf v1.5.3 // indirect diff --git a/go.sum b/go.sum index 7f496a50..3d19792d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk= -github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE= github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -18,12 +16,12 @@ github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3G github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/getsentry/raven-go v0.2.1-0.20190619092523-5c24d5110e0e h1:kpHZPjNRhYcj0G1Y4NryfaoeFF/BSSPd2OwiXbzEMPo= github.com/getsentry/raven-go v0.2.1-0.20190619092523-5c24d5110e0e/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/getsentry/sentry-go v0.31.1 h1:ELVc0h7gwyhnXHDouXkhqTFSO5oslsRDk0++eyE0KJ4= -github.com/getsentry/sentry-go v0.31.1/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= github.com/getsentry/sentry-go v0.32.0 h1:YKs+//QmwE3DcYtfKRH8/KyOOF/I6Qnx7qYGNHCGmCY= github.com/getsentry/sentry-go v0.32.0/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= -github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= -github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi v1.5.5 h1:vOB/HbEMt9QqBqErz07QehcOKHaWFtuj87tTDVz2qXE= +github.com/go-chi/chi v1.5.5/go.mod h1:C9JqLr3tIYjDOZpzn+BCuxY8z8vmca43EeMgyZt7irw= +github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= +github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= diff --git a/server/server.go b/server/server.go index b0f2751e..7f0136d0 100644 --- a/server/server.go +++ b/server/server.go @@ -5,6 +5,7 @@ import ( "context" "fmt" "log" + "net" "net/http" _ "net/http/pprof" // pprof magic "os" @@ -15,8 +16,8 @@ import ( "github.com/brave/go-update/controller" "github.com/brave/go-update/extension" "github.com/getsentry/sentry-go" - "github.com/go-chi/chi" - chiware "github.com/go-chi/chi/middleware" + "github.com/go-chi/chi/v5" + chiware "github.com/go-chi/chi/v5/middleware" "github.com/pressly/lg" "github.com/sirupsen/logrus" ) @@ -76,7 +77,11 @@ func StartServer() { serverCtx, r := setupRouter(serverCtx, logger, false) port := ":8192" fmt.Printf("Starting server: http://localhost%s", port) - srv := http.Server{Addr: port, Handler: chi.ServerBaseContext(serverCtx, r)} + srv := http.Server{ + Addr: port, + Handler: r, + BaseContext: func(_ net.Listener) context.Context { return serverCtx }, + } err := srv.ListenAndServe() if err != nil { sentry.CaptureException(err) diff --git a/server/server_test.go b/server/server_test.go index a46cd1e7..28099e1a 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -17,7 +17,7 @@ import ( "github.com/brave/go-update/controller" "github.com/brave/go-update/extension" "github.com/brave/go-update/extension/extensiontest" - "github.com/go-chi/chi" + "github.com/pressly/lg" "github.com/stretchr/testify/assert" ) @@ -59,7 +59,15 @@ func init() { controller.AllExtensionsMap.StoreExtensions(&extension.OfferedExtensions) controller.ExtensionUpdaterTimeout = time.Millisecond * 1 testCtx, logger := setupLogger(context.Background()) - handler = chi.ServerBaseContext(setupRouter(testCtx, logger, true)) + _, router := setupRouter(testCtx, logger, true) + + // Create a middleware that adds the context with logger to each request + handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Add the logger to the context + ctx := lg.WithLoggerContext(r.Context(), logger) + router.ServeHTTP(w, r.WithContext(ctx)) + }) + controller.RefreshExtensionsTicker(func() { count++ if count == 1 {