static void netflow_file_list(XmlTag *tag, XmlTag **ans) { struct path_tree pt; GSList *list; *ans = mbb_xml_msg_ok(); list = xml_tag_path_attr_list(tag, "glob", "value"); if (list == NULL) return; list = g_slist_reverse(list); if (path_tree_walk(&pt, list)) { gchar *str; while ((str = path_tree_next(&pt)) != NULL) xml_tag_new_child(*ans, "file", "path", variant_new_string(str) ); path_tree_free(&pt); } g_slist_free(list); }
static void gather_task(gpointer key G_GNUC_UNUSED, gpointer value, gpointer data) { struct mbb_task *task = value; XmlTag *tag = data; gchar *username; gchar *state; gchar *name; mbb_user_lock(task->user); username = g_strdup(task->user->name); mbb_user_unlock(task->user); name = (gchar *) g_quark_to_string(task->name); state = task->run ? "run" : "stop"; xml_tag_new_child(tag, "task", "id", variant_new_int(task->id), "name", variant_new_static_string(name), "sid", variant_new_int(task->sid), "state", variant_new_static_string(state), "start", variant_new_long(task->start), "user", variant_new_alloc_string(username) ); }
static void gather_group(struct mbb_group *group, XmlTag *tag) { xml_tag_new_child(tag, "group", "id", variant_new_int(group->id), "name", variant_new_string(group->name) ); }