示例#1
0
文件: xcb-dp2.c 项目: lbustc/xcube
/* FIXME */
static void config_command(client c) {
	if (!strcasecmp(c->argv[1], "get")) {
		pthread_mutex_lock(&cfg_lock);
		if (!strcasecmp(c->argv[2], "log_level"))
			add_reply_string_format(c, "log_level:%s\r\n",
				variable_retrieve(cfg, "general", "log_level"));
		else if (!strcasecmp(c->argv[2], "udp_port"))
			add_reply_string_format(c, "udp_port:%s\r\n",
				variable_retrieve(cfg, "general", "udp_port"));
		else if (!strcasecmp(c->argv[2], "sender") && !strcasecmp(c->argv[3], "network"))
			add_reply_string_format(c, "sender network:%s\r\n",
				variable_retrieve(cfg, "pgm_sender", "network"));
		else if (!strcasecmp(c->argv[2], "sender") && !strcasecmp(c->argv[3], "port"))
			add_reply_string_format(c, "sender port:%s\r\n",
				variable_retrieve(cfg, "pgm_sender", "port"));
		else
			add_reply_string(c, "-1\r\n", 4);
		pthread_mutex_unlock(&cfg_lock);
	} else if (!strcasecmp(c->argv[1], "set")) {
		struct category *category;

		pthread_mutex_lock(&cfg_lock);
		if (!strcasecmp(c->argv[2], "log_level") && c->argc >= 4) {
			category = category_get(cfg, "general");
			if (variable_update(category, "log_level", c->argv[3]) == 0)
				add_reply_string(c, "OK\r\n", 4);
			else
				add_reply_string(c, "-1\r\n", 4);
		} else if (!strcasecmp(c->argv[2], "udp_port") && c->argc >= 4) {
			category = category_get(cfg, "general");
			if (variable_update(category, "udp_port", c->argv[3]) == 0)
				add_reply_string(c, "OK\r\n", 4);
			else
				add_reply_string(c, "-1\r\n", 4);
		} else if (!strcasecmp(c->argv[2], "sender") && !strcasecmp(c->argv[3], "network") &&
			c->argc >= 5) {
			category = category_get(cfg, "pgm_sender");
			if (variable_update(category, "network", c->argv[4]) == 0)
				add_reply_string(c, "OK\r\n", 4);
			else
				add_reply_string(c, "-1\r\n", 4);
		} else if (!strcasecmp(c->argv[2], "sender") && !strcasecmp(c->argv[3], "port") &&
			c->argc >= 5) {
			category = category_get(cfg, "pgm_sender");
			if (variable_update(category, "port", c->argv[4]) == 0)
				add_reply_string(c, "OK\r\n", 4);
			else
				add_reply_string(c, "-1\r\n", 4);
		} else
			add_reply_string(c, "-1\r\n", 4);
		pthread_mutex_unlock(&cfg_lock);
	} else
		add_reply_error_format(c, "unknown action '%s'", c->argv[1]);
	add_reply_string(c, "\r\n", 2);
}
示例#2
0
文件: xcb-dp2.c 项目: lbustc/xcube
static void help_command(client c) {
	int ncmds, i;

	ncmds = sizeof commands / sizeof (struct cmd);
	for (i = 0; i < ncmds; ++i) {
		struct cmd *cmd = commands + i;

		add_reply_string_format(c, "%30.30s  %s\r\n", cmd->name, cmd->doc);
	}
	add_reply_string(c, "\r\n", 2);
}
示例#3
0
文件: custom.c 项目: wangdkchina/xcb
/* FIXME */
void index_command(client c) {
	const char *fmt;

	table_lock(idxfmts);
	if ((fmt = table_get_value(idxfmts, c->argv[1])))
		add_reply_string_format(c, "%s\r\n", fmt);
	else
		add_reply_error(c, "format unavailable");
	table_unlock(idxfmts);
	add_reply_string(c, "\r\n", 2);
}
示例#4
0
文件: xcb-dp2.c 项目: wood3559/xcb
static void module_command(client c) {
	if (!strcasecmp(c->argv[1], "load")) {
		/* FIXME */
		if (module_load("/var/lib/xcb", c->argv[2]) != MODULE_LOAD_SUCCESS)
			add_reply_error_format(c, "module '%s' loaded NOT OK", c->argv[2]);
		else
			add_reply_string_format(c, "module '%s' loaded OK\r\n", c->argv[2]);
	} else if (!strcasecmp(c->argv[1], "unload")) {
		if (module_unload(c->argv[2]) != MODULE_LOAD_SUCCESS)
			add_reply_error_format(c, "module '%s' unloaded NOT OK", c->argv[2]);
		else
			add_reply_string_format(c, "module '%s' unloaded OK\r\n", c->argv[2]);
	} else if (!strcasecmp(c->argv[1], "reload")) {
		if (module_reload(c->argv[2]) != MODULE_RELOAD_SUCCESS)
			add_reply_error_format(c, "module '%s' reloaded NOT OK", c->argv[2]);
		else
			add_reply_string_format(c, "module '%s' reloaded OK\r\n", c->argv[2]);
	} else
		add_reply_error_format(c, "unknown action '%s'", c->argv[1]);
	add_reply_string(c, "\r\n", 2);
}
示例#5
0
文件: xcb-dp2.c 项目: wood3559/xcb
/* FIXME */
static void show_command(client c) {
	if (!strcasecmp(c->argv[1], "modules")) {
		struct module *mod = get_module_list_head();

		for (; mod; mod = mod->link)
			add_reply_string_format(c, "%30.30s  %s [Status: %s]\r\n", mod->name, mod->info->desc,
				mod->flags.running == 1 ? "Running" :
					(mod->flags.declined == 1 ? "Declined" : "Failed"));
	} else
		add_reply_error_format(c, "unknown property '%s'", c->argv[1]);
	add_reply_string(c, "\r\n", 2);
}
示例#6
0
文件: custom.c 项目: wangdkchina/xcb
/* FIXME */
void indices_command(client c) {
	dstr res = get_indices();

	add_reply_string_format(c, "%s,%s\r\n\r\n", c->argv[1], res);
	dstr_free(res);
}