X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;h=bcbbc3406def48eba64adeb31eecd81997f634b2;hp=8fdb839a97be1e6c459f5911621fffa88d61410b;hb=009e80ae25df7a247a263b5b8e2259c9bdfe20ce;hpb=271c83d4fd9411be628fa650ce595ac79754d22e diff --git a/command.c b/command.c index 8fdb839a..bcbbc340 100644 --- a/command.c +++ b/command.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2009 Andre Noll + * Copyright (C) 1997-2010 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -23,9 +23,9 @@ #include "afh.h" #include "afs.h" #include "server.h" -#include "vss.h" #include "list.h" #include "send.h" +#include "vss.h" #include "rc4.h" #include "net.h" #include "daemon.h" @@ -191,10 +191,10 @@ static int check_sender_args(int argc, char * const * argv, struct sender_comman int com_sender(struct rc4_context *rc4c, int argc, char * const * argv) { int i, ret; + char *msg = NULL; struct sender_command_data scd; if (argc < 2) { - char *msg = NULL; for (i = 0; senders[i].name; i++) { char *tmp = make_message("%s%s\n", msg? msg : "", senders[i].name); @@ -207,7 +207,6 @@ int com_sender(struct rc4_context *rc4c, int argc, char * const * argv) } ret = check_sender_args(argc, argv, &scd); if (ret < 0) { - char *msg; if (scd.sender_num < 0) return ret; msg = senders[scd.sender_num].help(); @@ -215,6 +214,16 @@ int com_sender(struct rc4_context *rc4c, int argc, char * const * argv) free(msg); return ret; } + + switch (scd.cmd_num) { + case SENDER_ADD: + case SENDER_DELETE: + assert(senders[scd.sender_num].resolve_target); + ret = senders[scd.sender_num].resolve_target(argv[3], &scd); + if (ret < 0) + return ret; + } + for (i = 0; i < 10; i++) { mutex_lock(mmd_mutex); if (mmd->sender_cmd_data.cmd_num >= 0) { @@ -234,7 +243,7 @@ int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv) { int i, ret; char *ut; - char *sender_info = NULL, *sender_list = NULL; + char *sender_info = NULL; if (argc != 1) return -E_COMMAND_SYNTAX; @@ -243,8 +252,6 @@ int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv) char *info = senders[i].info(); sender_info = para_strcat(sender_info, info); free(info); - sender_list = para_strcat(sender_list, senders[i].name); - sender_list = para_strcat(sender_list, " "); } ut = uptime_str(); ret = rc4_send_va_buffer(rc4c, "up: %s\nplayed: %u\n" @@ -253,7 +260,6 @@ int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv) "connections (active/accepted/total): %u/%u/%u\n" "current loglevel: %s\n" "supported audio formats: %s\n" - "supported senders: %s\n" "%s", ut, mmd->num_played, (int)getppid(), @@ -263,12 +269,10 @@ int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv) mmd->num_connects, conf.loglevel_arg, supported_audio_formats(), - sender_list, sender_info ); mutex_unlock(mmd_mutex); free(ut); - free(sender_list); free(sender_info); return ret; }