X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=hostname.c;h=a6e001d54459dcfb502d680c25c3818a35b1d1f8;hb=e5f39576650933770153e82c63a46f27fcd72b0e;hp=77b545dedbae65b5a4a16f48650f33d05ee34a11;hpb=bf181b9338152759fd56c8009e9a962a84808e7c;p=oweals%2Fbusybox.git diff --git a/hostname.c b/hostname.c index 77b545ded..a6e001d54 100644 --- a/hostname.c +++ b/hostname.c @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * $Id: hostname.c,v 1.12 2000/07/16 20:57:15 kraai Exp $ + * $Id: hostname.c,v 1.26 2001/03/09 21:24:12 andersen Exp $ * Mini hostname implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -23,14 +23,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "internal.h" +#include "busybox.h" #include #include #include #include +#include #include +#include -void do_sethostname(char *s, int isfile) +static void do_sethostname(char *s, int isfile) { FILE *f; char buf[255]; @@ -40,25 +42,17 @@ void do_sethostname(char *s, int isfile) if (!isfile) { if (sethostname(s, strlen(s)) < 0) { if (errno == EPERM) - errorMsg("you must be root to change the hostname\n"); + error_msg_and_die("you must be root to change the hostname"); else - perror("sethostname"); - exit(1); + perror_msg_and_die("sethostname"); } } else { - if ((f = fopen(s, "r")) == NULL) { - perror(s); - exit(1); - } else { - fgets(buf, 255, f); - fclose(f); - if (buf[strlen(buf) - 1] == '\n') - buf[strlen(buf) - 1] = 0; - if (sethostname(buf, strlen(buf)) < 0) { - perror("sethostname"); - exit(1); - } - } + f = xfopen(s, "r"); + fgets(buf, 255, f); + fclose(f); + chomp(buf); + if (sethostname(buf, strlen(buf)) < 0) + perror_msg_and_die("sethostname"); } } @@ -73,7 +67,7 @@ int hostname_main(int argc, char **argv) char *s = NULL; if (argc < 1) - usage(hostname_usage); + show_usage(); while (--argc > 0 && **(++argv) == '-') { while (*(++(*argv))) { @@ -89,12 +83,18 @@ int hostname_main(int argc, char **argv) break; case 'F': if (--argc == 0) { - usage(hostname_usage); + show_usage(); + } + filename = *(++argv); + break; + case '-': + if (strcmp(++(*argv), "file") || --argc ==0 ) { + show_usage(); } filename = *(++argv); break; default: - usage(hostname_usage); + show_usage(); } if (filename != NULL) break;