int error;
struct cgroup *config_cgroup =
&config_cgroup_table[cgroup_table_index];
+ char *nm_pairs, *nv_buf;
+ dbg("Adding controller %s, value %s\n", controller, name_value);
cgc = cgroup_add_controller(config_cgroup, controller);
if (!cgc)
if (!name_value)
goto done;
- name = strtok_r(name_value, " ", &buffer);
+ nm_pairs = strtok_r(name_value, ":", &nv_buf);
+ dbg("[1] name value pair being processed is %s\n", nm_pairs);
+ name = strtok_r(nm_pairs, " ", &buffer);
if (!name)
goto parse_error;
if (!value)
goto parse_error;
-
+ dbg("name is %s, value is %s\n", name, value);
error = cgroup_add_value_string(cgc, name, value);
if (error)
goto parse_error;
+ while ((nm_pairs = strtok_r(NULL, ":", &nv_buf))) {
+ dbg("[2] name value pair being processed is %s\n", nm_pairs);
+ name = strtok_r(nm_pairs, " ", &buffer);
+
+ if (!name)
+ goto parse_error;
+
+ value = strtok_r(NULL, " ", &buffer);
+
+ if (!value)
+ goto parse_error;
+
+ dbg("name is %s, value is %s\n", name, value);
+ error = cgroup_add_value_string(cgc, name, value);
+
+ if (error)
+ goto parse_error;
+ }
+
done:
free(controller);
free(name_value);
}
| namevalue_conf ID '=' ID ';'
{
- $2 = realloc($2, strlen($2) + strlen($4) + 2);
+ int len = 0;
+ if ($1)
+ len = strlen($1);
+ $2 = realloc($2, len + strlen($2) + strlen($4) + 3);
$2 = strncat($2, " ", strlen(" "));
$$ = strncat($2, $4, strlen($4));
+ if ($1) {
+ $2 = strncat($2, ":", strlen(":"));
+ $$ = strncat($2, $1, strlen($1));
+ }
free($4);
}
|