/* 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); }
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); }
/* 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); }
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); }
/* 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); }
/* 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); }