Exemple #1
0
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);
}
Exemple #2
0
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));
	}
}
Exemple #3
0
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)
	);
}
Exemple #4
0
static void gather_gateway(MbbGateway *gw, XmlTag *tag)
{
	xml_tag_add_child(tag, xml_tag_newc(
		"gateway",
		"name", variant_new_string(gw->name),
		"addr", variant_new_alloc_string(ipv4toa(NULL, gw->addr))
	));
}
Exemple #5
0
static void gather_entry_with_owner(MbbInetPoolEntry *entry, XmlTag *tag)
{
	MbbUnit *unit;
	XmlTag *xt;

	xt = gather_entry(entry, tag);
	unit = (MbbUnit *) entry->owner->ptr;

	xml_tag_set_attr(xt, "unit", variant_new_string(unit->name));
}
Exemple #6
0
	} else if (mbb_time_becmp(a, b) > 0)
		return mbb_xml_msg(MBB_MSG_INVALID_TIME_ORDER);

	return NULL;
}

static void server_get_time(XmlTag *tag G_GNUC_UNUSED, XmlTag **ans)
{
	DEFINE_XTV(XTV_TIME_VALUE_);

	gchar buf[32];
	struct tm tm;
	time_t t;

	time(&t);
	MBB_XTV_CALL(&t);

	asctime_r(localtime_r(&t, &tm), buf);
	*ans = mbb_xml_msg_ok();

	xml_tag_add_child(*ans, xml_tag_newc(
		"time", "value", variant_new_string(buf)
	));
}

MBB_INIT_FUNCTIONS_DO
	MBB_FUNC_STRUCT("mbb-server-get-time", server_get_time, MBB_CAP_ALL),
MBB_INIT_FUNCTIONS_END

MBB_ON_INIT(MBB_INIT_FUNCTIONS)