From 00409d834bb887078ee7305ba3d3770250fd8bd4 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 7 Aug 2025 18:31:42 +0200 Subject: [PATCH] Add build flag for webpush --- cmd/serve.go | 2 ++ server/server_webpush.go | 4 ++++ server/server_webpush_dummy.go | 6 ++++++ server/server_webpush_test.go | 2 ++ 4 files changed, 14 insertions(+) diff --git a/cmd/serve.go b/cmd/serve.go index ce8123e3..87a9a6c9 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -333,6 +333,8 @@ func execServe(c *cli.Context) error { if messageSizeLimit > 5*1024*1024 { return errors.New("message-size-limit cannot be higher than 5M") } + } else if !server.WebPushAvailable && (webPushPrivateKey != "" || webPushPublicKey != "" || webPushFile != "") { + return errors.New("cannot enable WebPush, support is not available in this build (nowebpush)") } else if webPushExpiryWarningDuration > 0 && webPushExpiryWarningDuration > webPushExpiryDuration { return errors.New("web push expiry warning duration cannot be higher than web push expiry duration") } else if behindProxy && proxyForwardedHeader == "" { diff --git a/server/server_webpush.go b/server/server_webpush.go index 48201489..526e06f2 100644 --- a/server/server_webpush.go +++ b/server/server_webpush.go @@ -15,6 +15,10 @@ import ( ) const ( + // WebPushAvailable is a constant used to indicate that WebPush support is available. + // It can be disabled with the 'nowebpush' build tag. + WebPushAvailable = true + webPushTopicSubscribeLimit = 50 ) diff --git a/server/server_webpush_dummy.go b/server/server_webpush_dummy.go index b0b669d6..425b22a6 100644 --- a/server/server_webpush_dummy.go +++ b/server/server_webpush_dummy.go @@ -6,6 +6,12 @@ import ( "net/http" ) +const ( + // WebPushAvailable is a constant used to indicate that WebPush support is available. + // It can be disabled with the 'nowebpush' build tag. + WebPushAvailable = false +) + func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { return errHTTPNotFound } diff --git a/server/server_webpush_test.go b/server/server_webpush_test.go index f7379511..6aa6c60a 100644 --- a/server/server_webpush_test.go +++ b/server/server_webpush_test.go @@ -1,3 +1,5 @@ +//go:build !nowebpush + package server import (