cli: cleanup nm_vpn_openconnect_authenticate_helper()
This commit is contained in:
@@ -181,18 +181,17 @@ _extract_variable_value (char *line, const char *tag, char **value)
|
||||
{
|
||||
char *p1, *p2;
|
||||
|
||||
if (g_str_has_prefix (line, tag)) {
|
||||
p1 = line + strlen (tag);
|
||||
p2 = line + strlen (line) - 1;
|
||||
if ((*p1 == '\'' || *p1 == '"') && (*p1 == *p2)) {
|
||||
p1++;
|
||||
*p2 = '\0';
|
||||
}
|
||||
if (value)
|
||||
*value = g_strdup (p1);
|
||||
return TRUE;
|
||||
if (!g_str_has_prefix (line, tag))
|
||||
return FALSE;
|
||||
|
||||
p1 = line + strlen (tag);
|
||||
p2 = line + strlen (line) - 1;
|
||||
if ((*p1 == '\'' || *p1 == '"') && (*p1 == *p2)) {
|
||||
p1++;
|
||||
*p2 = '\0';
|
||||
}
|
||||
return FALSE;
|
||||
NM_SET_OUT (value, g_strdup (p1));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
@@ -204,9 +203,8 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
|
||||
GError **error)
|
||||
{
|
||||
gs_free char *output = NULL;
|
||||
gboolean ret;
|
||||
char **strv = NULL, **iter;
|
||||
char *argv[4];
|
||||
gs_free const char **output_v = NULL;
|
||||
const char *const*iter;
|
||||
const char *path;
|
||||
const char *const DEFAULT_PATHS[] = {
|
||||
"/sbin/",
|
||||
@@ -223,17 +221,17 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
|
||||
if (!path)
|
||||
return FALSE;
|
||||
|
||||
argv[0] = (char *) path;
|
||||
argv[1] = "--authenticate";
|
||||
argv[2] = (char *) host;
|
||||
argv[3] = NULL;
|
||||
|
||||
ret = g_spawn_sync (NULL, argv, NULL,
|
||||
G_SPAWN_SEARCH_PATH | G_SPAWN_CHILD_INHERITS_STDIN,
|
||||
NULL, NULL, &output, NULL,
|
||||
status, error);
|
||||
|
||||
if (!ret)
|
||||
if (!g_spawn_sync (NULL,
|
||||
(char **) NM_MAKE_STRV (path, "--authenticate", host),
|
||||
NULL,
|
||||
G_SPAWN_SEARCH_PATH
|
||||
| G_SPAWN_CHILD_INHERITS_STDIN,
|
||||
NULL,
|
||||
NULL,
|
||||
&output,
|
||||
NULL,
|
||||
status,
|
||||
error))
|
||||
return FALSE;
|
||||
|
||||
/* Parse output and set cookie, gateway and gwcert
|
||||
@@ -242,13 +240,14 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
|
||||
* HOST='1.2.3.4'
|
||||
* FINGERPRINT='sha1:32bac90cf09a722e10ecc1942c67fe2ac8c21e2e'
|
||||
*/
|
||||
strv = g_strsplit_set (output ?: "", "\r\n", 0);
|
||||
for (iter = strv; iter && *iter; iter++) {
|
||||
_extract_variable_value (*iter, "COOKIE=", cookie);
|
||||
_extract_variable_value (*iter, "HOST=", gateway);
|
||||
_extract_variable_value (*iter, "FINGERPRINT=", gwcert);
|
||||
output_v = nm_utils_strsplit_set_with_empty (output, "\r\n");
|
||||
for (iter = output_v; iter && *iter; iter++) {
|
||||
char *s_mutable = (char *) *iter;
|
||||
|
||||
_extract_variable_value (s_mutable, "COOKIE=", cookie);
|
||||
_extract_variable_value (s_mutable, "HOST=", gateway);
|
||||
_extract_variable_value (s_mutable, "FINGERPRINT=", gwcert);
|
||||
}
|
||||
g_strfreev (strv);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user