summaryrefslogtreecommitdiffstats
path: root/misc-utils/hostname.c.orig
diff options
context:
space:
mode:
Diffstat (limited to 'misc-utils/hostname.c.orig')
-rw-r--r--misc-utils/hostname.c.orig187
1 files changed, 0 insertions, 187 deletions
diff --git a/misc-utils/hostname.c.orig b/misc-utils/hostname.c.orig
deleted file mode 100644
index b7e61d1f7..000000000
--- a/misc-utils/hostname.c.orig
+++ /dev/null
@@ -1,187 +0,0 @@
-/* hostname -- set the host name or show the host/domain name
-
- Copyright (C) 1994 Peter Tobias
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <getopt.h>
-#include <string.h>
-#include <netdb.h>
-#include <errno.h>
-#include <sys/param.h>
-
-#define NO_OPT -1
-
-static char *program_name;
-static const char *version_string = "hostname 1.5";
-
-static void sethname(char *);
-static void showhname(char *, int);
-static void usage(void);
-
-static void sethname(char *hname)
-{
- if(sethostname(hname, strlen(hname))) {
- switch(errno) {
- case EPERM:
- fprintf(stderr,"%s: you must be root to change the host name\n", program_name);
- break;
- case EINVAL:
- fprintf(stderr,"%s: name too long\n", program_name);
- break;
- default:
- }
- exit(1);
- };
-}
-
-static void showhname(char *hname, int c)
-{
- struct hostent *hp;
- register char *p;
-
- if (!(hp = gethostbyname(hname))) {
- herror(program_name);
- exit(1);
- }
-
- if (!(p = strchr(hp->h_name, '.'))) {
- fprintf(stderr,"%s: can't find a FQDN for the host name `%s'\n", program_name, hname);
- exit(1);
- }
-
- switch(c) {
- case 'd':
- printf("%s\n", ++p);
- break;
- case 'f':
- printf("%s\n", hp->h_name);
- break;
- case 's':
- *p = '\0';
- printf("%s\n", hp->h_name);
- break;
- default:
- }
-}
-
-static void usage(void)
-{
- printf("Usage: %s [OPTION]... [hostname]\n\n\
- -d, --domain display the DNS domain name\n\
- -F, --file filename read the host name from file\n\
- -f, --fqdn, --long display the long host name (FQDN)\n\
- -s, --short display the short host name\n\
- -h, --help display this help and exit\n\
- -v, --version output version information and exit\n\
-\n\
- When the program is called without any arguments, it displays the\n\
- current host name as set by the hostname command. If an argument\n\
- is given, the program will set the value of the host name to the\n\
- value specified.\n\
- Unless you are using bind or NIS for host lookups you can change the\n\
- FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n\
- part of the FQDN) in the /etc/hosts file.\n", program_name);
-}
-
-int main(int argc, char **argv)
-{
- int c;
- int option_index = 0;
-
- char myname[MAXHOSTNAMELEN+1];
-
- static const struct option long_options[] =
- {
- {"domain", no_argument, 0, 'd'},
- {"file", required_argument, 0, 'F'},
- {"fqdn", no_argument, 0, 'f'},
- {"help", no_argument, 0, 'h'},
- {"long", no_argument, 0, 'f'},
- {"short", no_argument, 0, 's'},
- {"version", no_argument, 0, 'v'},
- {0, 0, 0, 0}
- };
-
- program_name = (rindex(argv[0], '/')) ? rindex(argv[0], '/') + 1 : argv[0];
-
- if (strcmp(program_name, "dnsdomainname") == 0) {
- if (argc > 1) {
- fprintf(stderr,"%s: You can't change the DNS domainname with this command\n", program_name);
- fprintf(stderr,"\nUnless you are using bind or NIS for host lookups you can change the DNS\n");
- fprintf(stderr,"domain name (which is part of the FQDN) in the /etc/hosts file.\n");
- exit(1);
- }
- c = 'd';
- } else
- c = getopt_long(argc, argv, "dfF:hsv", long_options, &option_index);
-
- gethostname(myname, sizeof(myname));
-
- switch(c)
- {
- case 'd':
- case 'f':
- case 's':
- showhname(myname, c);
- break;
- case 'F':
- {
- register FILE *fd;
- register char *p;
- char fline[MAXHOSTNAMELEN];
-
- if ((fd = fopen(optarg, "r")) != NULL) {
- while (fgets(fline, sizeof(fline), fd) != NULL)
- if ((p = index(fline, '\n')) != NULL) {
- *p = '\0';
- if (fline[0] == '#')
- continue;
- sethname(fline);
- }
- (void) fclose(fd);
- } else {
- fprintf(stderr,"%s: can't open `%s'\n",
- program_name, optarg);
- exit(1);
- }
- }
- break;
- case 'h':
- usage();
- break;
- case 'v':
- printf("%s\n", version_string);
- break;
- case '?':
- fprintf(stderr,"Try `%s --help' for more information.\n", program_name);
- exit(1);
- break;
- case NO_OPT:
- if (optind < argc) {
- sethname(argv[optind]);
- exit(0);
- }
- default:
- printf("%s\n", myname);
-
- };
- exit(0);
-}