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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1535>
This commit is contained in:
Sebastian Keller 2020-12-14 16:27:45 +01:00
parent 087bd863b3
commit eb95f6a0fa

View File

@ -132,9 +132,13 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
for (let i = 0; i < this._content.secrets.length; i++) { for (let i = 0; i < this._content.secrets.length; i++) {
let secret = this._content.secrets[i]; let secret = this._content.secrets[i];
valid = valid && secret.valid; valid = valid && secret.valid;
if (secret.key != null) 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); this._agent.set_password(this._requestId, secret.key, secret.value);
} }
}
if (valid) { if (valid) {
this._agent.respond(this._requestId, Shell.NetworkAgentResponse.CONFIRMED); this._agent.respond(this._requestId, Shell.NetworkAgentResponse.CONFIRMED);
@ -476,7 +480,7 @@ var VPNRequestHandler = class {
this._stdin.write('QUIT\n\n', null); this._stdin.write('QUIT\n\n', null);
} catch (e) { /* ignore broken pipe errors */ } } catch (e) { /* ignore broken pipe errors */ }
} else { } else {
this._agent.set_password(this._requestId, this._previousLine, line); this._agent.add_vpn_secret(this._requestId, this._previousLine, line);
this._previousLine = undefined; this._previousLine = undefined;
} }
} else { } else {
@ -552,7 +556,7 @@ var VPNRequestHandler = class {
if (!value.length) // Ignore empty secrets if (!value.length) // Ignore empty secrets
continue; continue;
this._agent.set_password(this._requestId, groups[i], value); this._agent.add_vpn_secret(this._requestId, groups[i], value);
} }
} }
} catch (e) { } catch (e) {