X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=hostname.c;h=44d529c83fc287e2625fc658bdbe5b282d6b61fc;hb=8c725e624a6fa97175f48e0fc34b37403e3b8613;hp=77b545dedbae65b5a4a16f48650f33d05ee34a11;hpb=bf181b9338152759fd56c8009e9a962a84808e7c;p=oweals%2Fbusybox.git diff --git a/hostname.c b/hostname.c index 77b545ded..44d529c83 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.15 2000/10/12 22:30:31 andersen Exp $ * Mini hostname implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -23,7 +23,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "internal.h" +#include "busybox.h" #include #include #include @@ -46,18 +46,14 @@ void do_sethostname(char *s, int isfile) 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); - } } } } @@ -93,6 +89,12 @@ int hostname_main(int argc, char **argv) } filename = *(++argv); break; + case '-': + if (strcmp(++(*argv), "file") || --argc ==0 ) { + usage(hostname_usage); + } + filename = *(++argv); + break; default: usage(hostname_usage); }