blob: e5b1f51883aec008fad29d2f71f68220e63e1821 [file] [log] [blame]
Erik Andersene49d5ec2000-02-08 19:58:47 +00001/* vi: set sw=4 ts=4: */
Erik Andersen31638212000-01-15 22:28:50 +00002/*
3 * Mini hostid implementation for busybox
4 *
5 * Copyright (C) 2000 Edward Betts <edward@debian.org>.
6 *
Denys Vlasenko0ef64bd2010-08-16 20:14:46 +02007 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
Erik Andersen31638212000-01-15 22:28:50 +00008 */
9
Manuel Novoa III cad53642003-03-19 09:13:01 +000010/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */
11
Tanguy Pruvot8a6c2c22012-04-28 00:24:09 +020012//config:config HOSTID
13//config: bool "hostid"
14//config: default y
15//config: help
16//config: hostid prints the numeric identifier (in hexadecimal) for
17//config: the current host.
18
19//applet:IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid))
20
21//kbuild:lib-$(CONFIG_HOSTID) += hostid.o
22
Pere Orga34425382011-03-31 14:43:25 +020023//usage:#define hostid_trivial_usage
24//usage: ""
25//usage:#define hostid_full_usage "\n\n"
26//usage: "Print out a unique 32-bit identifier for the machine"
27
Denis Vlasenkob6adbf12007-05-26 19:00:18 +000028#include "libbb.h"
Erik Andersen31638212000-01-15 22:28:50 +000029
Denis Vlasenko99912ca2007-04-10 15:43:37 +000030/* This is a NOFORK applet. Be very careful! */
31
Denis Vlasenko9b49a5e2007-10-11 10:05:36 +000032int hostid_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
Denys Vlasenko2ec91ae2010-01-04 14:15:38 +010033int hostid_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
Erik Andersene49d5ec2000-02-08 19:58:47 +000034{
Denys Vlasenko2ec91ae2010-01-04 14:15:38 +010035 if (argv[1]) {
Manuel Novoa III cad53642003-03-19 09:13:01 +000036 bb_show_usage();
37 }
38
maxwen27116ba2015-08-14 21:41:28 +020039 /* POSIX says gethostid returns a "32-bit identifier" */
40 printf("%08x\n", (unsigned)(uint32_t)gethostid());
Manuel Novoa III cad53642003-03-19 09:13:01 +000041
Denys Vlasenko8131eea2009-11-02 14:19:51 +010042 return fflush_all();
Erik Andersen31638212000-01-15 22:28:50 +000043}