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 XmlTag *gather_entry(MbbInetPoolEntry *entry, XmlTag *tag) { time_t start, end; XmlTag *xt; start = mbb_inet_pool_entry_get_start(entry); end = mbb_inet_pool_entry_get_end(entry); xml_tag_add_child(tag, xt = xml_tag_newc( "inet_entry", "id", variant_new_int(entry->id), "inet", variant_new_alloc_string(inettoa(NULL, &entry->inet)), "start", variant_new_long(start), "end", variant_new_long(end), "nice", variant_new_int(entry->nice) )); if (entry->start < 0) xml_tag_set_attr(xt, "parent_start", variant_new_static_string("true") ); if (entry->end < 0) xml_tag_set_attr(xt, "parent_end", variant_new_static_string("true") ); if (entry->flag == FALSE) xml_tag_set_attr(xt, "exclusive", variant_new_static_string("true") ); return xt; }
static void gather_session(gpointer key, gpointer value, gpointer data) { struct show_sessions_data *ssd; struct mbb_session *ss; gchar *username; XmlTag *xt; guint sid; sid = GPOINTER_TO_INT(key); ss = (struct mbb_session *) value; ssd = (struct show_sessions_data *) data; if (ss->user == NULL) username = g_strdup("*"); else { mbb_user_lock(ss->user); username = g_strdup(ss->user->name); mbb_user_unlock(ss->user); } xml_tag_add_child(ssd->ans, xt = xml_tag_newc( "session", "sid", variant_new_int(sid), "user", variant_new_alloc_string(username), "peer", variant_new_string(ss->peer), "start", variant_new_alloc_string(g_strdup_printf("%ld", ss->start)) )); if (ssd->show_mtime) { gchar *mtime = g_strdup_printf("%ld", ss->mtime); xml_tag_set_attr(xt, "mtime", variant_new_alloc_string(mtime)); } }
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) ); }