X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;h=d317c345314908b4629d7452e2f5fec4cb172f67;hp=81cb2831b624e769d1b67af978274b8427664ed6;hb=54096edf9b0254303dfee9d8f87d2f2f0b17fcce;hpb=2ed89c59f0efcd0a2763f47c7d3455663241e623 diff --git a/command.c b/command.c index 81cb2831..d317c345 100644 --- a/command.c +++ b/command.c @@ -18,7 +18,6 @@ /** \file command.c does client authentication and executes server commands */ - #include /* mallinfo */ #include /* gettimeofday */ #include "crypt.h" @@ -29,7 +28,6 @@ #include "send.h" #include "rc4.h" #include -#include "gcc-compat.h" #include "error.h" #include "net.h" #include "daemon.h" @@ -46,7 +44,7 @@ static unsigned char rc4_buf[2 * RC4_KEY_LEN]; extern const char *status_item_list[NUM_STAT_ITEMS]; extern struct misc_meta_data *mmd; extern struct gengetopt_args_info conf; -extern struct dbtool dblist[]; +extern struct audio_file_selector dblist[]; extern struct audio_format afl[]; extern struct sender senders[]; extern char *user_list; @@ -65,7 +63,7 @@ static int com_stop(int, int, char **); static int com_pause(int, int, char **); static int com_next(int, int, char **); static int com_nomore(int, int, char **); -static int com_cdt(int, int, char **); +static int com_chs(int, int, char **); static int com_ff(int, int, char **); static int com_jmp(int, int, char **); static int com_sender(int, int, char **); @@ -74,14 +72,14 @@ static int com_sender(int, int, char **); /* commands that are handled by the server itself */ static struct server_command cmd_struct[] = { { -.name = "cdt", -.handler = com_cdt, +.name = "chs", +.handler = com_chs, .perms = DB_READ | DB_WRITE, -.description = "change database tool", -.synopsis = "cdt [name_of_new_dbtool]", +.description = "change the current audio file selector", +.synopsis = "chs [new_selector]", .help = -"Deactivate current dbtool and activate name_of_new_dbtool. If no\n" -"argument was given, print the current database tool.\n" +"Shutdown the current selector and activate new_selector. If no\n" +"argument was given, print the name of the current selector.\n" }, { @@ -335,7 +333,6 @@ static char *afs_status_tohuman(unsigned int flags) return para_strdup("paused"); } - /* * return human readable permission string. Never returns NULL. */ @@ -429,11 +426,11 @@ static char *get_status(struct misc_meta_data *nmmd) status_item_list[SI_STATUS_BAR], bar ? bar : "(none)", status_item_list[SI_STATUS], status, status_item_list[SI_STATUS_FLAGS], flags, - status_item_list[SI_DBTOOL], dblist[nmmd->dbt_num].name, + status_item_list[SI_SELECTOR], dblist[nmmd->selector_num].name, status_item_list[SI_OFFSET], offset, status_item_list[SI_FORMAT], audio_format_name(nmmd->audio_format), - nmmd->dbinfo, + nmmd->selector_info, nmmd->audio_file_info, status_item_list[SI_UPTIME], ut, @@ -562,15 +559,15 @@ static int com_si(int fd, int argc, __unused char **argv) { int i, ret; char *ut; - char *dbtools = NULL, *sender_info = NULL, *sender_list = NULL; + char *selectors = NULL, *sender_info = NULL, *sender_list = NULL; struct mallinfo mi = mallinfo(); if (argc) return -E_COMMAND_SYNTAX; mmd_lock(); for (i = 0; dblist[i].name; i++) { - dbtools = para_strcat(dbtools, dblist[i].name); - dbtools = para_strcat(dbtools, " "); + selectors = para_strcat(selectors, dblist[i].name); + selectors = para_strcat(selectors, " "); } for (i = 0; senders[i].name; i++) { char *info = senders[i].info(); @@ -585,7 +582,7 @@ static int com_si(int fd, int argc, __unused char **argv) "mallinfo: %d\n" "connections (active/accepted/total): %u/%u/%u\n" "current loglevel: %i\n" - "supported database tools: %s\n" + "supported audio file selectors: %s\n" "supported audio formats: %s\n" "supported senders: %s\n" "%s", @@ -596,14 +593,14 @@ static int com_si(int fd, int argc, __unused char **argv) mmd->num_commands, mmd->num_connects, conf.loglevel_arg, - dbtools, + selectors, SUPPORTED_AUDIO_FORMATS, sender_list, sender_info ); mmd_unlock(); free(ut); - free(dbtools); + free(selectors); free(sender_list); free(sender_info); return ret; @@ -679,7 +676,6 @@ static int com_sb(int socket_fd, int argc, char **argv) /* stat */ static int com_stat(int socket_fd, int argc, char **argv) { -// char *old_stat = NULL, *old_dbinfo = NULL; int ret, num = 0;/* status will be printed that many * times. num <= 0 means: print forever */ @@ -735,11 +731,12 @@ static struct server_command *get_cmd_ptr(char *name, char **handler) *handler = para_strdup("para_server"); /* server commands */ return cmd; } - /* not found, look for dbtool commands */ + /* not found, look for commands supported by the current selector */ mmd_lock(); if (handler) - *handler = make_message("the %s database tool", dblist[mmd->dbt_num].name); - cmd = dblist[mmd->dbt_num].cmd_list; + *handler = make_message("the %s selector", + dblist[mmd->selector_num].name); + cmd = dblist[mmd->selector_num].cmd_list; mmd_unlock(); for (; cmd->name; cmd++) if (!strcmp(cmd->name, name)) @@ -759,8 +756,8 @@ static int com_help(int fd, int argc, char **argv) if ((ret = send_description(fd, cmd_struct, "server", 0)) < 0) return ret; mmd_lock(); - handler = para_strdup(dblist[mmd->dbt_num].name); - cmd = dblist[mmd->dbt_num].cmd_list; + handler = para_strdup(dblist[mmd->selector_num].name); + cmd = dblist[mmd->selector_num].cmd_list; mmd_unlock(); ret = send_description(fd, cmd, handler, 0); free(handler); @@ -851,29 +848,29 @@ static int com_pause(__unused int socket_fd, int argc, __unused char **argv) return 1; } -static int com_cdt(int fd, int argc, char **argv) +static int com_chs(int fd, int argc, char **argv) { int i, ret; if (!argc) { - char *dbtool; + char *selector; mmd_lock(); - dbtool = para_strdup(dblist[mmd->dbt_num].name); + selector = para_strdup(dblist[mmd->selector_num].name); mmd_unlock(); - ret = send_va_buffer(fd, "%s\n", dbtool); - free(dbtool); + ret = send_va_buffer(fd, "%s\n", selector); + free(selector); return ret; } for (i = 0; dblist[i].name; i++) { if (strcmp(dblist[i].name, argv[1])) continue; mmd_lock(); - mmd->dbt_change = i; + mmd->selector_change = i; mmd->events++; mmd_unlock(); return 1; } - return -E_BAD_DBTOOL; + return -E_BAD_SELECTOR; } /* next */ @@ -988,7 +985,7 @@ static struct server_command *parse_cmd(const char *cmdstr) sscanf(cmdstr, "%200s%n", buf, &n); if (!n) - return NULL; + return NULL; buf[n] = '\0'; return get_cmd_ptr(buf, NULL); } @@ -998,7 +995,6 @@ long int para_rand(long unsigned max) return (long int) ((max + 0.0) * (random() / (RAND_MAX + 1.0))); } - /* Open user_list file, returns pointer to opened file on success, * NULL on errors */ @@ -1075,22 +1071,20 @@ static void init_rc4_keys(void) PARA_DEBUG_LOG("rc4 keys initialized (%u:%u)\n", (unsigned char) rc4_buf[0], (unsigned char) rc4_buf[RC4_KEY_LEN]); - RC4_set_key(&rc4_recv_key, RC4_KEY_LEN, rc4_buf); - RC4_set_key(&rc4_send_key, RC4_KEY_LEN, rc4_buf + RC4_KEY_LEN); + RC4_set_key(&rc4_recv_key, RC4_KEY_LEN, rc4_buf); + RC4_set_key(&rc4_send_key, RC4_KEY_LEN, rc4_buf + RC4_KEY_LEN); } static void rc4_recv(unsigned long len, const unsigned char *indata, unsigned char *outdata) { - RC4(&rc4_recv_key, len, indata, outdata); + RC4(&rc4_recv_key, len, indata, outdata); } + static void rc4_send(unsigned long len, const unsigned char *indata, unsigned char *outdata) { - RC4(&rc4_send_key, len, indata, outdata); + RC4(&rc4_send_key, len, indata, outdata); } - - - int handle_connect(int fd, struct sockaddr_in *addr) { int numbytes, ret, argc, use_rc4 = 0;