X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=hostname.c;h=44d529c83fc287e2625fc658bdbe5b282d6b61fc;hb=8c725e624a6fa97175f48e0fc34b37403e3b8613;hp=8cc334da00344b15519006743e6475a0cd968f4b;hpb=e49d5ecbbe51718fa925b6890a735e5937cc2aa2;p=oweals%2Fbusybox.git diff --git a/hostname.c b/hostname.c index 8cc334da0..44d529c83 100644 --- a/hostname.c +++ b/hostname.c @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * $Id: hostname.c,v 1.7 2000/02/08 19:58:47 erik Exp $ + * $Id: hostname.c,v 1.15 2000/10/12 22:30:31 andersen Exp $ * Mini hostname implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -23,25 +23,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "internal.h" +#include "busybox.h" #include #include #include #include #include -static const char *hostname_usage = - "hostname [OPTION] {hostname | -F file}\n\n" - "Get or set the hostname or DNS domain name. If a hostname is given\n" - "(or a file with the -F parameter), the host name will be set.\n\n" - "Options:\n" - "\t-s\t\tShort\n" - - "\t-i\t\tAddresses for the hostname\n" - "\t-d\t\tDNS domain name\n" - "\t-F FILE\t\tUse the contents of FILE to specify the hostname\n"; - - void do_sethostname(char *s, int isfile) { FILE *f; @@ -52,25 +40,20 @@ void do_sethostname(char *s, int isfile) if (!isfile) { if (sethostname(s, strlen(s)) < 0) { if (errno == EPERM) - fprintf(stderr, - "hostname: you must be root to change the hostname\n"); + errorMsg("you must be root to change the hostname\n"); else perror("sethostname"); exit(1); } } else { - if ((f = fopen(s, "r")) == NULL) { - perror(s); + f = xfopen(s, "r"); + 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); - } 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); - } } } } @@ -101,12 +84,17 @@ int hostname_main(int argc, char **argv) opt_domain = 1; break; case 'F': - filename = optarg; if (--argc == 0) { usage(hostname_usage); } filename = *(++argv); break; + case '-': + if (strcmp(++(*argv), "file") || --argc ==0 ) { + usage(hostname_usage); + } + filename = *(++argv); + break; default: usage(hostname_usage); } @@ -141,5 +129,5 @@ int hostname_main(int argc, char **argv) printf("%s\n", buf); } } - exit(0); + return(0); }