annotate toys/hostname.c @ 463:dc88e450288c

Add hostname from Andre Renaud.
author Rob Landley <rob@landley.net>
date Wed, 15 Feb 2012 05:47:38 -0600
parents
children 9e1fe8e287a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
463
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 /* vi: set sw=4 ts=4:
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
2 *
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
3 * hostname.c - Get/Set the hostname
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
4 *
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
5 * Copyright 2012 Andre Renaud <andre@bluewatersys.com>
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
6 *
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
7 * Not in SUSv4.
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
8
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
9 USE_HOSTNAME(NEWTOY(hostname, "", TOYFLAG_BIN))
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
10
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
11 config HOSTNAME
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
12 bool "hostname"
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
13 default n
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
14 help
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
15 usage: hostname [newname]
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
16
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
17 Get/Set the current hostname
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
18 */
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
19
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
20 #include "toys.h"
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
21
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
22 void hostname_main(void)
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
23 {
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
24 const char *hostname = toys.optargs[0];
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
25 if (hostname) {
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 int len = strlen(hostname);
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
27 if (sethostname(hostname, len))
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 perror_exit("cannot set hostname to '%s'", hostname);
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
29 } else {
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
30 char buffer[256];
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
31 if (gethostname(buffer, sizeof(buffer)))
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
32 perror_exit("cannot get hostname");
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
33 xprintf("%s\n", buffer);
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
34 }
dc88e450288c Add hostname from Andre Renaud.
Rob Landley <rob@landley.net>
parents:
diff changeset
35 }