diff --git a/nameserver/takeover.go b/nameserver/takeover.go index c31b75a8..2365463e 100644 --- a/nameserver/takeover.go +++ b/nameserver/takeover.go @@ -55,14 +55,25 @@ func checkForConflictingService(ip net.IP, port uint16) error { // Notify the user that we killed something. notifications.Notify(¬ifications.Notification{ - EventID: "namserver:stopped-conflicting-service", - Type: notifications.Info, - Title: "Conflicting DNS Service", - Category: "Secure DNS", + EventID: "namserver:stopped-conflicting-service", + Type: notifications.Info, + Title: "Stopped Conflicting DNS Client", Message: fmt.Sprintf( - "The Portmaster stopped a conflicting name service (pid %d) to gain required system integration.", + "The Portmaster stopped a conflicting DNS client (pid %d) to gain required system integration. If you are running another DNS client on this device on purpose, you can the check the documentation if it is compatible with the Portmaster.", killed, ), + ShowOnSystem: true, + AvailableActions: []*notifications.Action{ + { + ID: "ack", + Text: "OK", + }, + { + Text: "Open Docs", + Type: notifications.ActionTypeOpenURL, + Payload: "https://docs.safing.io/portmaster/install/status/software-compatibility", + }, + }, }) // Restart nameserver via service-worker logic. diff --git a/netenv/online-status.go b/netenv/online-status.go index b4e81b85..d0483343 100644 --- a/netenv/online-status.go +++ b/netenv/online-status.go @@ -241,15 +241,23 @@ func setCaptivePortal(portalURL *url.URL) { // notify cleanUpPortalNotification() captivePortalNotification = notifications.Notify(¬ifications.Notification{ - EventID: "netenv:captive-portal", - Type: notifications.Info, - Title: "Captive Portal", - Category: "Core", - Message: fmt.Sprintf( - "Portmaster detected a captive portal at %s", - captivePortal.Domain, - ), - EventData: captivePortal, + EventID: "netenv:captive-portal", + Type: notifications.Info, + Title: "Captive Portal Detected", + Message: "The Portmaster detected a captive portal. You might experience limited network connectivity until the portal is handled.", + ShowOnSystem: true, + EventData: captivePortal, + AvailableActions: []*notifications.Action{ + { + Text: "Open Portal", + Type: notifications.ActionTypeOpenURL, + Payload: captivePortal.URL, + }, + { + ID: "ack", + Text: "Ignore", + }, + }, }) } diff --git a/updates/main.go b/updates/main.go index 73f4ec63..0e6c31f0 100644 --- a/updates/main.go +++ b/updates/main.go @@ -282,7 +282,7 @@ func checkForUpdates(ctx context.Context) (err error) { "The Portmaster failed to check for updates. This might be a temporary issue of your device, your network or the update servers. The Portmaster will automatically try again later.", notifications.Action{ ID: "retry", - Text: "Try Again", + Text: "Try Again Now", Type: notifications.ActionTypeWebhook, Payload: ¬ifications.ActionTypeWebhookPayload{ URL: apiPathCheckForUpdates, diff --git a/updates/upgrader.go b/updates/upgrader.go index c1016bf5..a1d45bd3 100644 --- a/updates/upgrader.go +++ b/updates/upgrader.go @@ -253,7 +253,7 @@ func warnOnIncorrectParentPath() { "updates:unsupported-parent", "Unsupported Launcher", fmt.Sprintf( - "The portmaster has been launched by an unexpected %s binary at %s. Please configure your system to use the binary at %s as this version will be kept up to date automatically.", + "The Portmaster has been launched by an unexpected %s binary at %s. Please configure your system to use the binary at %s as this version will be kept up to date automatically.", expectedFileName, absPath, filepath.Join(root, expectedFileName),