X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;h=6db0c0039f7eed58c17ec9290103efc125e3ca63;hp=07add425d2fc7bbebfe18d028aa8b719d7a86099;hb=db26d4a2bd7cd1acb16aa2113784a86cf63fd8fa;hpb=d31995b3074bb19aa4da66ce5c4774ca9ed101a1 diff --git a/command.c b/command.c index 07add425..6db0c003 100644 --- a/command.c +++ b/command.c @@ -22,12 +22,12 @@ #include "string.h" #include "afh.h" #include "afs.h" +#include "net.h" #include "server.h" #include "list.h" #include "send.h" #include "sched.h" #include "vss.h" -#include "net.h" #include "daemon.h" #include "fd.h" #include "ipc.h" @@ -394,7 +394,7 @@ static int com_si(struct command_context *cc, "supported audio formats: %s\n", ut, mmd->num_played, (int)getppid(), - (int)mmd->afs_pid, + (int)afs_pid, mmd->active_connections, mmd->num_commands, mmd->num_connects, @@ -663,8 +663,7 @@ static int com_nomore(__a_unused struct command_context *cc, } EXPORT_SERVER_CMD_HANDLER(nomore); -static int com_ff(__a_unused struct command_context *cc, - struct lls_parse_result *lpr) +static int com_ff(struct command_context *cc, struct lls_parse_result *lpr) { long promille; int ret, backwards = 0; @@ -684,6 +683,7 @@ static int com_ff(__a_unused struct command_context *cc, ret = -E_NO_AUDIO_FILE; if (!mmd->afd.afhi.chunks_total || !mmd->afd.afhi.seconds_total) goto out; + ret = 1; promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total; if (backwards) promille -= 1000 * i / mmd->afd.afhi.seconds_total; @@ -699,15 +699,13 @@ static int com_ff(__a_unused struct command_context *cc, mmd->new_vss_status_flags |= VSS_REPOS; mmd->new_vss_status_flags &= ~VSS_NEXT; mmd->events++; - ret = 1; out: mutex_unlock(mmd_mutex); return ret; } EXPORT_SERVER_CMD_HANDLER(ff); -static int com_jmp(__a_unused struct command_context *cc, - struct lls_parse_result *lpr) +static int com_jmp(struct command_context *cc, struct lls_parse_result *lpr) { long unsigned int i; int ret; @@ -740,12 +738,11 @@ out: } EXPORT_SERVER_CMD_HANDLER(jmp); -static int com_tasks(struct command_context *cc, +/* deprecated, does nothing */ +static int com_tasks(__a_unused struct command_context *cc, __a_unused struct lls_parse_result *lpr) { - char *tl = server_get_tasks(); - assert(tl); - return send_sb(&cc->scc, tl, strlen(tl), SBD_OUTPUT, false); + return 1; } EXPORT_SERVER_CMD_HANDLER(tasks); @@ -804,8 +801,7 @@ out: #define HANDSHAKE_BUFSIZE 4096 -static int run_command(struct command_context *cc, struct iovec *iov, - const char *peername) +static int run_command(struct command_context *cc, struct iovec *iov) { int ret, i, argc; char *p, *end, **argv; @@ -838,8 +834,8 @@ static int run_command(struct command_context *cc, struct iovec *iov, p += strlen(p) + 1; } argv[argc] = NULL; - PARA_NOTICE_LOG("calling com_%s() for %s@%s\n", lls_command_name(lcmd), - cc->u->name, peername); + PARA_NOTICE_LOG("calling com_%s() for user %s\n", + lls_command_name(lcmd), cc->u->name); ret = lls(lls_parse(argc, argv, lcmd, &lpr, &errctx)); if (ret >= 0) { const struct server_cmd_user_data *ud = lls_user_data(lcmd); @@ -860,7 +856,6 @@ static int run_command(struct command_context *cc, struct iovec *iov, * Perform user authentication and execute a command. * * \param fd The file descriptor to send output to. - * \param peername Identifies the connecting peer. * * Whenever para_server accepts an incoming tcp connection on the port it * listens on, it forks and the resulting child calls this function. @@ -875,13 +870,13 @@ static int run_command(struct command_context *cc, struct iovec *iov, * permissions to execute that command, the function calls the corresponding * command handler which does argument checking and further processing. * - * In order to cope with a DOS attacks, a timeout is set up which terminates + * In order to cope with DOS attacks, a timeout is set up which terminates * the function if the connection was not authenticated when the timeout * expires. * * \sa alarm(2), \ref crypt.c, \ref crypt.h. */ -__noreturn void handle_connect(int fd, const char *peername) +__noreturn void handle_connect(int fd) { int ret; unsigned char rand_buf[CHALLENGE_SIZE + 2 * SESSION_KEY_LEN]; @@ -967,7 +962,7 @@ __noreturn void handle_connect(int fd, const char *peername) ret = recv_sb(&cc->scc, SBD_COMMAND, MAX_COMMAND_LEN, &iov); if (ret < 0) goto net_err; - ret = run_command(cc, &iov, peername); + ret = run_command(cc, &iov); free(iov.iov_base); if (ret < 0) goto err_out;