summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gui/packages/desktop/src/main/index.js7
-rw-r--r--gui/packages/desktop/src/main/notification-controller.js9
-rw-r--r--gui/packages/desktop/src/renderer/components/Connect.js16
-rw-r--r--gui/packages/desktop/src/renderer/components/TunnelControl.js37
4 files changed, 53 insertions, 16 deletions
diff --git a/gui/packages/desktop/src/main/index.js b/gui/packages/desktop/src/main/index.js
index 7ebd88a8c7..99463a6c93 100644
--- a/gui/packages/desktop/src/main/index.js
+++ b/gui/packages/desktop/src/main/index.js
@@ -699,7 +699,12 @@ const ApplicationMain = {
return 'securing';
case 'blocked':
- return 'securing';
+ switch (tunnelState.details.reason) {
+ case 'set_security_policy_error':
+ return 'unsecured';
+ default:
+ return 'securing';
+ }
case 'disconnecting':
return 'securing';
diff --git a/gui/packages/desktop/src/main/notification-controller.js b/gui/packages/desktop/src/main/notification-controller.js
index 906f24f267..0a8e996640 100644
--- a/gui/packages/desktop/src/main/notification-controller.js
+++ b/gui/packages/desktop/src/main/notification-controller.js
@@ -26,7 +26,14 @@ export default class NotificationController {
this._showTunnelStateNotification('Unsecured');
break;
case 'blocked':
- this._showTunnelStateNotification('Blocked all connections');
+ switch (tunnelState.details.reason) {
+ case 'set_security_policy_error':
+ this._showTunnelStateNotification('Unsecured');
+ break;
+ default:
+ this._showTunnelStateNotification('Blocked all connections');
+ break;
+ }
break;
case 'disconnecting':
switch (tunnelState.details) {
diff --git a/gui/packages/desktop/src/renderer/components/Connect.js b/gui/packages/desktop/src/renderer/components/Connect.js
index 345812cf8e..c4d26d15db 100644
--- a/gui/packages/desktop/src/renderer/components/Connect.js
+++ b/gui/packages/desktop/src/renderer/components/Connect.js
@@ -123,8 +123,14 @@ export default class Connect extends Component<Props> {
switch (status.state) {
case 'connecting':
case 'connected':
- case 'blocked':
return 'secure';
+ case 'blocked':
+ switch (status.details.reason) {
+ case 'set_security_policy_error':
+ return 'unsecure';
+ default:
+ return 'secure';
+ }
case 'disconnected':
return 'unsecure';
case 'disconnecting':
@@ -221,8 +227,14 @@ export default class Connect extends Component<Props> {
return HeaderBarStyle.error;
case 'connecting':
case 'connected':
- case 'blocked':
return HeaderBarStyle.success;
+ case 'blocked':
+ switch (status.details.reason) {
+ case 'set_security_policy_error':
+ return HeaderBarStyle.error;
+ default:
+ return HeaderBarStyle.success;
+ }
case 'disconnecting':
switch (status.details) {
case 'block':
diff --git a/gui/packages/desktop/src/renderer/components/TunnelControl.js b/gui/packages/desktop/src/renderer/components/TunnelControl.js
index 7ec3f72687..5b2470f0b8 100644
--- a/gui/packages/desktop/src/renderer/components/TunnelControl.js
+++ b/gui/packages/desktop/src/renderer/components/TunnelControl.js
@@ -137,18 +137,31 @@ export default class TunnelControl extends Component<TunnelControlProps> {
let state = this.props.tunnelState.state;
- if (state === 'disconnecting') {
- switch (this.props.tunnelState.details) {
- case 'block':
- state = 'blocked';
- break;
- case 'reconnect':
- state = 'connecting';
- break;
- default:
- state = 'disconnecting';
- break;
- }
+ switch (state) {
+ case 'blocked':
+ switch (this.props.tunnelState.details.reason) {
+ case 'set_security_policy_error':
+ state = 'disconnected';
+ break;
+ default:
+ state = 'blocked';
+ break;
+ }
+ break;
+
+ case 'disconnecting':
+ switch (this.props.tunnelState.details) {
+ case 'block':
+ state = 'blocked';
+ break;
+ case 'reconnect':
+ state = 'connecting';
+ break;
+ default:
+ state = 'disconnecting';
+ break;
+ }
+ break;
}
switch (state) {