dhcp: cleanup grab_request_options()
This commit is contained in:
@@ -62,37 +62,48 @@ add_request (GPtrArray *array, const char *item)
|
|||||||
static gboolean
|
static gboolean
|
||||||
grab_request_options (GPtrArray *store, const char* line)
|
grab_request_options (GPtrArray *store, const char* line)
|
||||||
{
|
{
|
||||||
char **areq, **aiter;
|
gs_free const char **line_v = NULL;
|
||||||
gboolean end = FALSE;
|
gsize i;
|
||||||
|
|
||||||
/* Grab each 'request' or 'also request' option and save for later */
|
/* Grab each 'request' or 'also request' option and save for later */
|
||||||
areq = g_strsplit_set (line, "\t ,", -1);
|
line_v = nm_utils_strsplit_set (line, "\t ,");
|
||||||
for (aiter = areq; aiter && *aiter; aiter++) {
|
for (i = 0; line_v && line_v[i]; i++) {
|
||||||
if (!strlen (g_strstrip (*aiter)))
|
const char *ss = nm_str_skip_leading_spaces (line_v[i]);
|
||||||
continue;
|
gsize l;
|
||||||
|
gboolean end = FALSE;
|
||||||
|
|
||||||
if (*aiter[0] == ';') {
|
if (!ss[0])
|
||||||
|
continue;
|
||||||
|
if (ss[0] == ';') {
|
||||||
/* all done */
|
/* all done */
|
||||||
end = TRUE;
|
return TRUE;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!g_ascii_isalnum ((*aiter)[0]))
|
if (!g_ascii_isalnum (ss[0]))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((*aiter)[strlen (*aiter) - 1] == ';') {
|
l = strlen (ss);
|
||||||
|
|
||||||
|
while ( l > 0
|
||||||
|
&& g_ascii_isspace (ss[l - 1])) {
|
||||||
|
((char *) ss)[l - 1] = '\0';
|
||||||
|
l--;
|
||||||
|
}
|
||||||
|
if ( l > 0
|
||||||
|
&& ss[l - 1] == ';') {
|
||||||
/* Remove the EOL marker */
|
/* Remove the EOL marker */
|
||||||
(*aiter)[strlen (*aiter) - 1] = '\0';
|
((char *) ss)[l - 1] = '\0';
|
||||||
end = TRUE;
|
end = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_request (store, *aiter);
|
if (ss[0])
|
||||||
|
add_request (store, ss);
|
||||||
|
|
||||||
|
if (end)
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (areq)
|
return FALSE;
|
||||||
g_strfreev (areq);
|
|
||||||
|
|
||||||
return end;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user