From eb95f6a0fabc0a7ec04d747925d303ce2e411368 Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Mon, 14 Dec 2020 16:27:45 +0100 Subject: [PATCH] networkAgent: Use VPN specific method to add VPN secrets Use the method introduced in the previous commit to add VPN secrets instead of adding them as regular secrets/passwords. This ensures correct serialization of these secrets. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2105 Part-of: --- js/ui/components/networkAgent.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js index 4367a2f2a..29b8190cc 100644 --- a/js/ui/components/networkAgent.js +++ b/js/ui/components/networkAgent.js @@ -132,8 +132,12 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog { for (let i = 0; i < this._content.secrets.length; i++) { let secret = this._content.secrets[i]; valid = valid && secret.valid; - if (secret.key != null) - this._agent.set_password(this._requestId, secret.key, secret.value); + if (secret.key !== null) { + if (this._settingName === 'vpn') + this._agent.add_vpn_secret(this._requestId, secret.key, secret.value); + else + this._agent.set_password(this._requestId, secret.key, secret.value); + } } if (valid) { @@ -476,7 +480,7 @@ var VPNRequestHandler = class { this._stdin.write('QUIT\n\n', null); } catch (e) { /* ignore broken pipe errors */ } } else { - this._agent.set_password(this._requestId, this._previousLine, line); + this._agent.add_vpn_secret(this._requestId, this._previousLine, line); this._previousLine = undefined; } } else { @@ -552,7 +556,7 @@ var VPNRequestHandler = class { if (!value.length) // Ignore empty secrets continue; - this._agent.set_password(this._requestId, groups[i], value); + this._agent.add_vpn_secret(this._requestId, groups[i], value); } } } catch (e) {