diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2020-08-20 14:54:31 +0200 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2020-08-20 20:27:49 +0200 |
commit | 339a30fd1917011d8ad8a3900509f3a8880d569d (patch) | |
tree | a6e519b135c43e09cdbbefc5103783c56a3c3cf0 | |
parent | 30587fb27b73fdb3f0aab1a78844edcaaae1c3bb (diff) |
[feat] reset error
-rw-r--r-- | branding/config/vendor.conf | 2 | ||||
-rw-r--r-- | gui/backend.go | 9 | ||||
-rw-r--r-- | gui/handlers.cpp | 21 | ||||
-rw-r--r-- | gui/handlers.h | 4 | ||||
-rw-r--r-- | gui/main.cpp | 4 | ||||
-rw-r--r-- | gui/qml/LoginOKDialog.qml | 3 | ||||
-rw-r--r-- | pkg/backend/api.go | 7 | ||||
-rw-r--r-- | pkg/backend/init.go | 8 | ||||
-rw-r--r-- | pkg/config/config.go | 59 |
9 files changed, 59 insertions, 58 deletions
diff --git a/branding/config/vendor.conf b/branding/config/vendor.conf index 4b3d4a9..687caad 100644 --- a/branding/config/vendor.conf +++ b/branding/config/vendor.conf @@ -1,6 +1,6 @@ [default] -provider = riseup +provider = demolib [riseup] diff --git a/gui/backend.go b/gui/backend.go index a5cb3ab..c953d18 100644 --- a/gui/backend.go +++ b/gui/backend.go @@ -23,8 +23,8 @@ func GetAppName() *C.char { } //export Login -func Login(username, password *C.char) { - backend.Login(C.GoString(username), C.GoString(password)) +func Login(username, password string) { + backend.Login(username, password) } //export SwitchOn @@ -76,6 +76,11 @@ func RefreshContext() *C.char { return (*C.char)(backend.RefreshContext()) } +//export ResetError +func ResetError(errname string) { + backend.ResetError(errname) +} + //export InstallHelpers func InstallHelpers() { backend.InstallHelpers() diff --git a/gui/handlers.cpp b/gui/handlers.cpp index 3959964..f34133e 100644 --- a/gui/handlers.cpp +++ b/gui/handlers.cpp @@ -6,6 +6,13 @@ #include "handlers.h" #include "lib/libgoshim.h" +GoString toGoStr(QString s) +{ + char *c = s.toLocal8Bit().data(); + return (GoString){c, (long int)strlen(c)}; +} + + Backend::Backend(QObject *parent) : QObject(parent) { } @@ -37,14 +44,12 @@ void Backend::donateAccepted() void Backend::login(QString username, QString password) { - // TODO: there has to be a cleaner way to do the conversion - char * u = new char [username.length()+1]; - char * p = new char [password.length()+1]; - strcpy(u, username.toStdString().c_str()); - strcpy(p, password.toStdString().c_str()); - Login(u, p); - delete [] u; - delete [] p; + Login(toGoStr(username), toGoStr(password)); +} + +void Backend::resetError(QString errlabel) +{ + ResetError(toGoStr(errlabel)); } void Backend::quit() diff --git a/gui/handlers.h b/gui/handlers.h index 656a451..9299827 100644 --- a/gui/handlers.h +++ b/gui/handlers.h @@ -4,6 +4,9 @@ #include <QDebug> #include <QObject> #include "qjsonmodel.h" +#include "lib/libgoshim.h" + +GoString toGoStr(QString s); class QJsonWatch : public QObject { @@ -36,6 +39,7 @@ public slots: void switchOff(); void donateAccepted(); void login(QString username, QString password); + void resetError(QString errlabel); void quit(); }; diff --git a/gui/main.cpp b/gui/main.cpp index 2a300e2..e3b8530 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -144,9 +144,7 @@ int main(int argc, char **argv) { /* if requested, enable web api for controlling the VPN */ if (webAPI) { - char* wp = webPort.toLocal8Bit().data(); - GoString p = {wp, (long int)strlen(wp)}; - EnableWebAPI(p); + EnableWebAPI(toGoStr(webPort)); }; /* kick off your shoes, put your feet up */ diff --git a/gui/qml/LoginOKDialog.qml b/gui/qml/LoginOKDialog.qml index 52b3770..be023dd 100644 --- a/gui/qml/LoginOKDialog.qml +++ b/gui/qml/LoginOKDialog.qml @@ -12,9 +12,8 @@ Dialog { } } - // TODO implement cleanNotifications on backend function _loginOk() { - loginDone = true; + backend.resetError("bad_auth") } visible: false diff --git a/pkg/backend/api.go b/pkg/backend/api.go index 7c049fc..7aa5527 100644 --- a/pkg/backend/api.go +++ b/pkg/backend/api.go @@ -85,6 +85,11 @@ func RefreshContext() *C.char { return C.CString(string(c)) } +func ResetError(errname string) { + log.Println("DEBUG: resetting error", errname) + resetErrors(errname) +} + func InstallHelpers() { pickle.InstallHelpers() } @@ -105,7 +110,7 @@ func EnableWebAPI(port string) { /* these two are a bit redundant since we already add them to ctx. however, we want to have them available before everything else, to be able to parse cli arguments. In the long run, we probably want to move all vendoring to qt, so - this probably should not live in the backend. */ + this probably should not live in the backend, see #326*/ func GetVersion() *C.char { return C.CString(version.VERSION) diff --git a/pkg/backend/init.go b/pkg/backend/init.go index bae9b9b..af43bab 100644 --- a/pkg/backend/init.go +++ b/pkg/backend/init.go @@ -34,11 +34,19 @@ func initializeContext(opts *InitOpts) { func checkErrors(errCh chan string) { for { err := <-errCh + // TODO consider a queue instead ctx.Errors = err go trigger(OnStatusChanged) } } +func resetErrors(errname string) { + if ctx.Errors == errname { + ctx.Errors = "" + log.Println("DEBUG: reset error", errname) + } +} + func initializeBitmask(errCh chan string, opts *InitOpts) { if ctx == nil { log.Println("bug: cannot initialize bitmask, ctx is nil!") diff --git a/pkg/config/config.go b/pkg/config/config.go index e799176..908409a 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -1,22 +1,22 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by vendorize.py -// At 2020-08-19 17:38:43 +// At 2020-08-20 13:39:50 package config /* All these constants are defined in the vendor.conf file */ const ( - Provider = "riseup.net" - ApplicationName = "RiseupVPN" - BinaryName = "riseup-vpn" - Auth = "anon" - DonateURL = "https://riseup.net/vpn/donate" - AskForDonations = "true" - HelpURL = "https://riseup.net/support" - TosURL = "https://riseup.net/tos" - APIURL = "https://api.black.riseup.net/" - GeolocationAPI = "https://api.black.riseup.net:9001/json" + Provider = "vpnlib.bitmask.net" + ApplicationName = "DemoLib" + BinaryName = "demo-lib" + Auth = "sip" + DonateURL = "" + AskForDonations = "false" + HelpURL = "https://libraryvpn.org/" + TosURL = "https://libraryvpn.org/" + APIURL = "https://api.vpnlib.bitmask.net:4430/" + GeolocationAPI = "https://getmyip.vpnlib.bitmask.net/json" ) var Version string @@ -29,34 +29,11 @@ CaCert : a string containing a representation of the provider CA, used to */ var CaCert = []byte(`-----BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl -dXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE -AwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw -NDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM -Emh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv -b3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m -TP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a -7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE -LliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY -iw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK -5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx -HUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58 -m/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF -PM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q -hzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj -shczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k -ha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu -f9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD -VR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB -AGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v -qHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/ -3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ -4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7 -3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch -Td5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf -Xu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg -tsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF -tGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ -UN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp -0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO +MIIBQzCB6aADAgECAgEBMAoGCCqGSM49BAMCMBcxFTATBgNVBAMTDExFQVAgUm9v +dCBDQTAeFw0yMDA4MDYxOTA3NDRaFw0yNTA4MDYxOTEyNDRaMBcxFTATBgNVBAMT +DExFQVAgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIG5POr4cAdK +kTavKpSJr8nW1V7HLpr27qKaShpk1TUy5ipaAlusmavGLxKsPE+i3AMlvf/f6ch3 +1MjAtIf5rYujJjAkMA4GA1UdDwEB/wQEAwICpDASBgNVHRMBAf8ECDAGAQH/AgEB +MAoGCCqGSM49BAMCA0kAMEYCIQDXj280LNZbSbi0Y2WvtQrJBUw4wdm8qAeOeuH7 +6XiLEwIhAPBRsmst/ujcChsG2t6LpG+p8s4rfIfh8YLo/4qrcc5p -----END CERTIFICATE-----`) |