From 44c69b1e73aa1d408f8b0567bd5d910728e31c3c Mon Sep 17 00:00:00 2001 From: kali <kali@leap.se> Date: Wed, 3 Feb 2021 22:49:03 +0100 Subject: [PATCH] [bug] fix segfault in osx with activation this is a regression that was introduced with previous changes to the menus in windows. activation segfaults in linux and osx, so capture the event only for windows. did not investigate further about the causes, but it seems like a good workaround for the time being. --- gui/providers/providers.json | 2 +- gui/qml/main.qml | 9 ++++++--- pkg/backend/status.go | 5 +++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gui/providers/providers.json b/gui/providers/providers.json index 4733a3eb..28918557 100644 --- a/gui/providers/providers.json +++ b/gui/providers/providers.json @@ -15,7 +15,7 @@ "apiURL": "https://api.black.riseup.net/", "geolocationAPI": "https://api.black.riseup.net:9001/json", "caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----", - "timeStamp": "2020-11-03 19:53:36" + "timeStamp": "2020-11-30 22:04:27" } ] } \ No newline at end of file diff --git a/gui/qml/main.qml b/gui/qml/main.qml index 17fb0055..5d431bd9 100644 --- a/gui/qml/main.qml +++ b/gui/qml/main.qml @@ -142,19 +142,20 @@ ApplicationWindow { break case SystemTrayIcon.Context: console.debug("activated: context") - if (Qt.platform.os !== "linux") { + /* segfaults in osx and linux */ + if (Qt.platform.os === "windows") { menu.open() } break case SystemTrayIcon.DoubleClick: console.debug("activated: double click") - if (Qt.platform.os !== "linux") { + if (Qt.platform.os === "windows") { menu.open() } break case SystemTrayIcon.Trigger: console.debug("activated: left click") - if (Qt.platform.os !== "linux") { + if (Qt.platform.os === "windows") { menu.open() } break @@ -180,12 +181,14 @@ ApplicationWindow { // Helper to show notification messages function showNotification(msg) { console.log("Going to show notification message: ", msg); + /* if (supportsMessages) { let appname = ctx ? ctx.appName: "VPN"; showMessage(appname, msg, null, 15000); } else { console.log("System doesn't support systray notifications"); } + */ } menu: Menu { diff --git a/pkg/backend/status.go b/pkg/backend/status.go index ffa79fc0..f793e2fa 100644 --- a/pkg/backend/status.go +++ b/pkg/backend/status.go @@ -5,6 +5,7 @@ import ( "encoding/json" "log" "sync" + "fmt" // DEBUG "0xacab.org/leap/bitmask-vpn/pkg/bitmask" "0xacab.org/leap/bitmask-vpn/pkg/config" @@ -19,6 +20,7 @@ const ( ) var statusMutex sync.Mutex +var updateMutex sync.Mutex // ctx will be our glorious global object. // if we ever switch again to a provider-agnostic app, we should keep a map here. @@ -55,10 +57,13 @@ func (c connectionCtx) toJson() ([]byte, error) { log.Println(err) return nil, err } + fmt.Println(">>> ctx toJson done") return b, nil } func (c connectionCtx) updateStatus() { + updateMutex.Lock() + defer updateMutex.Unlock() if stStr, err := c.bm.GetStatus(); err != nil { log.Printf("Error getting status: %v", err) } else { -- GitLab