diff --git a/branding/config/vendor.conf b/branding/config/vendor.conf index 4b3d4a940916dfdf457ad09edcca0412319e2a51..687caadd00e5f941bb73a2db939ad1e535de5f11 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 a5cb3abe3fa4c9136cd10805d07e55ad2b50e062..c953d1826c10bbe878628fae37e5d95e710b06af 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 3959964b601c0e04e40331c12366af46fd99897f..f34133e2d6095e978188163c17765b58cb3fefd7 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 656a451672aa10655fa4744c0fe77515955b7341..9299827f0e44f50b7244f46637aafdf160e4dfe9 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 2a300e21e6d1602ecc1652ac9ae7f696bf9e4bd7..e3b8530f23f4f80e5ee0ca51341a7cfd17c88b04 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 52b37701f75c3d1c0f6b27bc81f866fc1d58c27c..be023dd94f1ce52d3f61b76a8bab3ccc3e95b393 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 7c049fc243f43f631423c763c2899c5d9bd96c84..7aa5527942361263a12569655b756e98fe4e9fbc 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 bae9b9b8c07d56ece245f174dec46dcbfe7a64c1..af43bab46c249d336c40e7297d5d90533505f910 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 e79917612b6e2558ad46c3b7054d640d76e0bd24..908409ada16580294d413df2cdff06577ae03248 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-----`)