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