diff options
author | Thomas Haller <thaller@redhat.com> | 2023-05-12 13:26:42 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-05-12 13:26:42 +0200 |
commit | fc0fc4ab0dd0f36c39f4633d21599f6cf5468908 (patch) | |
tree | d1b3fcc45be651c5f0ecf438823274856d7b8f84 | |
parent | fe5dfe97f970cd358cbd06edb82f33d8ca207c59 (diff) | |
parent | c0c8eb347d8021a49080be1ab88823b593032c65 (diff) |
clients: merge branch 'th/client-secrets-cleanup'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1630
-rw-r--r-- | src/libnmc-base/nm-vpn-helpers.c | 19 | ||||
-rw-r--r-- | src/nmtui/nmtui-connect.c | 16 |
2 files changed, 14 insertions, 21 deletions
diff --git a/src/libnmc-base/nm-vpn-helpers.c b/src/libnmc-base/nm-vpn-helpers.c index 10e2e0e696..cbe76f5f1c 100644 --- a/src/libnmc-base/nm-vpn-helpers.c +++ b/src/libnmc-base/nm-vpn-helpers.c @@ -213,12 +213,12 @@ _extract_variable_value(char *line, const char *tag, char **value) #define NM_OPENCONNECT_KEY_MCAKEY "mcakey" #define NM_OPENCONNECT_KEY_MCA_PASS "mca_key_pass" -struct { +static const struct { const char *property; const char *cmdline; } oc_property_args[] = { {NM_OPENCONNECT_KEY_USERCERT, "--certificate"}, - {NM_OPENCONNECT_KEY_CACERT, "--caflle"}, + {NM_OPENCONNECT_KEY_CACERT, "--cafile"}, {NM_OPENCONNECT_KEY_PRIVKEY, "--sslkey"}, {NM_OPENCONNECT_KEY_KEY_PASS, "--key-password"}, {NM_OPENCONNECT_KEY_PROTOCOL, "--protocol"}, @@ -230,9 +230,6 @@ struct { {NM_OPENCONNECT_KEY_MCA_PASS, "--mca-key-password"}, }; -#define NR_OC_STRING_PROPS (sizeof(oc_property_args) / sizeof(oc_property_args[0])) -#define OC_ARGS_MAX (12 + 2 * NR_OC_STRING_PROPS) - /* * For old versions of openconnect we need to extract the port# and * append it to the hostname that is returned to us. Use a cut-down @@ -296,10 +293,11 @@ nm_vpn_openconnect_authenticate_helper(NMSettingVpn *s_vpn, GPtrArray *secrets, "/usr/local/bin/", NULL, }; - int port = 0; + const char *oc_argv[(12 + 2 * G_N_ELEMENTS(oc_property_args))]; const char *gw; - const char *oc_argv[OC_ARGS_MAX]; - int i, oc_argc = 0; + int port; + guint oc_argc = 0; + guint i; /* Get gateway and port */ gw = nm_setting_vpn_get_data_item(s_vpn, "gateway"); @@ -327,7 +325,7 @@ nm_vpn_openconnect_authenticate_helper(NMSettingVpn *s_vpn, GPtrArray *secrets, oc_argv[oc_argc++] = "--authenticate"; oc_argv[oc_argc++] = gw; - for (i = 0; i < NR_OC_STRING_PROPS; i++) { + for (i = 0; i < G_N_ELEMENTS(oc_property_args); i++) { opt = nm_setting_vpn_get_data_item(s_vpn, oc_property_args[i].property); if (opt) { oc_argv[oc_argc++] = oc_property_args[i].cmdline; @@ -371,7 +369,8 @@ nm_vpn_openconnect_authenticate_helper(NMSettingVpn *s_vpn, GPtrArray *secrets, } oc_argv[oc_argc++] = NULL; - g_return_val_if_fail(oc_argc <= OC_ARGS_MAX, FALSE); + + nm_assert(oc_argc <= G_N_ELEMENTS(oc_argv)); if (!g_spawn_sync(NULL, (char **) oc_argv, diff --git a/src/nmtui/nmtui-connect.c b/src/nmtui/nmtui-connect.c index 75862bbd90..0dfbf6ac20 100644 --- a/src/nmtui/nmtui-connect.c +++ b/src/nmtui/nmtui-connect.c @@ -34,7 +34,6 @@ secrets_requested(NMSecretAgentSimple *agent, GPtrArray *secrets, gpointer user_data) { - NmtNewtForm *form; NMConnection *connection = NM_CONNECTION(user_data); gboolean success = FALSE; @@ -44,7 +43,7 @@ secrets_requested(NMSecretAgentSimple *agent, if (nm_streq0(nm_setting_vpn_get_service_type(s_vpn), NM_SECRET_AGENT_VPN_TYPE_OPENCONNECT)) { - GError *error = NULL; + gs_free_error GError *error = NULL; nmt_newt_message_dialog(_("openconnect will be run to authenticate.\nIt will return to " "nmtui when completed.")); @@ -55,26 +54,21 @@ secrets_requested(NMSecretAgentSimple *agent, newtResume(); - if (!success) { + if (!success) nmt_newt_message_dialog(_("Error: openconnect failed: %s"), error->message); - g_clear_error(&error); - } } } if (!success) { + gs_unref_object NmtNewtForm *form = NULL; + form = nmt_password_dialog_new(request_id, title, msg, secrets); nmt_newt_form_run_sync(form); success = nmt_password_dialog_succeeded(NMT_PASSWORD_DIALOG(form)); - - g_object_unref(form); } - if (success) - nm_secret_agent_simple_response(agent, request_id, secrets); - else - nm_secret_agent_simple_response(agent, request_id, NULL); + nm_secret_agent_simple_response(agent, request_id, success ? secrets : NULL); } typedef struct { |