summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2020-08-20 14:54:31 +0200
committerkali kaneko (leap communications) <kali@leap.se>2020-08-20 20:27:49 +0200
commit339a30fd1917011d8ad8a3900509f3a8880d569d (patch)
treea6e519b135c43e09cdbbefc5103783c56a3c3cf0
parent30587fb27b73fdb3f0aab1a78844edcaaae1c3bb (diff)
[feat] reset error
-rw-r--r--branding/config/vendor.conf2
-rw-r--r--gui/backend.go9
-rw-r--r--gui/handlers.cpp21
-rw-r--r--gui/handlers.h4
-rw-r--r--gui/main.cpp4
-rw-r--r--gui/qml/LoginOKDialog.qml3
-rw-r--r--pkg/backend/api.go7
-rw-r--r--pkg/backend/init.go8
-rw-r--r--pkg/config/config.go59
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-----`)