X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;h=deb21a6fc2ace4df2fcc2fd55852d0ce7c56f121;hp=3932ed2215691ea12fbbf04b7c7de9884c4cce4b;hb=36bc7580a5ddee8f6e46bccfea7519291f372f0f;hpb=b17c70f1f96ca624064dd5202c54be55ed4d71c6 diff --git a/command.c b/command.c index 3932ed22..deb21a6f 100644 --- a/command.c +++ b/command.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2008 Andre Noll + * Copyright (C) 1997-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -192,7 +192,7 @@ static int check_sender_args(int argc, char * const * argv, struct sender_comman case SENDER_ALLOW: if (argc != 4 && argc != 5) return -E_COMMAND_SYNTAX; - if (!inet_pton(AF_INET, argv[3], &scd->addr)) + if (!is_valid_ipv4_address(argv[3])) return -E_COMMAND_SYNTAX; scd->netmask = 32; if (argc == 5) { @@ -200,19 +200,13 @@ static int check_sender_args(int argc, char * const * argv, struct sender_comman if (scd->netmask < 0 || scd->netmask > 32) return -E_COMMAND_SYNTAX; } + strncpy(scd->host, argv[3], sizeof(scd->host)); break; case SENDER_ADD: case SENDER_DELETE: - if (argc != 4 && argc != 5) - return -E_COMMAND_SYNTAX; - if (!inet_pton(AF_INET, argv[3], &scd->addr)) + if (argc != 4 || parse_url(argv[3], scd->host, + sizeof(scd->host), &scd->port) == NULL) return -E_COMMAND_SYNTAX; - scd->port = -1; - if (argc == 5) { - scd->port = atoi(argv[4]); - if (scd->port < 0 || scd->port > 65535) - return -E_COMMAND_SYNTAX; - } break; default: return -E_COMMAND_SYNTAX; @@ -254,7 +248,7 @@ int com_sender(int fd, int argc, char * const * argv) usleep(100 * 1000); continue; } - mmd->sender_cmd_data = scd; + memcpy(&mmd->sender_cmd_data, &scd, sizeof(scd)); mutex_unlock(mmd_mutex); break; } @@ -283,7 +277,7 @@ int com_si(int fd, int argc, __a_unused char * const * argv) "server_pid: %d\n" "afs_pid: %d\n" "connections (active/accepted/total): %u/%u/%u\n" - "current loglevel: %i\n" + "current loglevel: %s\n" "supported audio formats: %s\n" "supported senders: %s\n" "%s",