diff options
author | kali <kali@leap.se> | 2021-02-03 22:49:03 +0100 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2021-02-08 23:32:19 +0100 |
commit | 44c69b1e73aa1d408f8b0567bd5d910728e31c3c (patch) | |
tree | 6fc0882e7ecce23fe66c640ce9b3e960b3a287b8 | |
parent | a7dcea9a6e6e5b4b2eccc2ed0d6803c8408ffd0e (diff) |
[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.
-rw-r--r-- | gui/providers/providers.json | 2 | ||||
-rw-r--r-- | gui/qml/main.qml | 9 | ||||
-rw-r--r-- | 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 4733a3e..2891855 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 17fb005..5d431bd 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 ffa79fc..f793e2f 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 { |