aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-11-13 22:35:10 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2016-11-13 22:35:10 +0100
commit67fd2f2858ac63d46f42ef3c096b007ac7362849 (patch)
tree6ddad3566873d9874434cd5ad4a7e3eb9b251b8d
parent9655f95d0f501b03b33c7896b7b0c23d090aff81 (diff)
downloadbusybox-67fd2f2858ac63d46f42ef3c096b007ac7362849.tar.gz
dnsdomainname: split it from "hostname", make it independently selectable
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--include/applets.src.h2
-rw-r--r--networking/Config.src6
-rw-r--r--networking/Kbuild.src1
-rw-r--r--networking/hostname.c26
4 files changed, 24 insertions, 11 deletions
diff --git a/include/applets.src.h b/include/applets.src.h
index 248d539c4..dbc45953c 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -112,7 +112,6 @@ IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_HOSTNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
@@ -158,7 +157,6 @@ IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP))
IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
-IF_HOSTNAME(APPLET(hostname, BB_DIR_BIN, BB_SUID_DROP))
IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
diff --git a/networking/Config.src b/networking/Config.src
index eb0536a7c..398a5ee25 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -160,12 +160,6 @@ config FEATURE_FTPGETPUT_LONG_OPTIONS
help
Support long options for the ftpget/ftpput applet.
-config HOSTNAME
- bool "hostname"
- default y
- help
- Show or set the system's host name.
-
config HTTPD
bool "httpd"
default y
diff --git a/networking/Kbuild.src b/networking/Kbuild.src
index 79f54824b..e14070647 100644
--- a/networking/Kbuild.src
+++ b/networking/Kbuild.src
@@ -16,7 +16,6 @@ lib-$(CONFIG_FAKEIDENTD) += isrv_identd.o isrv.o
lib-$(CONFIG_FTPD) += ftpd.o
lib-$(CONFIG_FTPGET) += ftpgetput.o
lib-$(CONFIG_FTPPUT) += ftpgetput.o
-lib-$(CONFIG_HOSTNAME) += hostname.o
lib-$(CONFIG_HTTPD) += httpd.o
lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
diff --git a/networking/hostname.c b/networking/hostname.c
index b3e352242..04a051ede 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -10,6 +10,24 @@
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config HOSTNAME
+//config: bool "hostname"
+//config: default y
+//config: help
+//config: Show or set the system's host name.
+//config:
+//config:config DNSDOMAINNAME
+//config: bool "dnsdomainname"
+//config: default y
+//config: help
+//config: Alias to "hostname -d".
+
+//applet:IF_DNSDOMAINNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
+//applet:IF_HOSTNAME(APPLET(hostname, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild: lib-$(CONFIG_HOSTNAME) += hostname.o
+//kbuild: lib-$(CONFIG_DNSDOMAINNAME) += hostname.o
+
//usage:#define hostname_trivial_usage
//usage: "[OPTIONS] [HOSTNAME | -F FILE]"
//usage:#define hostname_full_usage "\n\n"
@@ -131,8 +149,12 @@ int hostname_main(int argc UNUSED_PARAM, char **argv)
opts = getopt32(argv, "dfisF:v", &hostname_str);
argv += optind;
buf = safe_gethostname();
- if (applet_name[0] == 'd') /* dnsdomainname? */
- opts = OPT_d;
+ if (ENABLE_DNSDOMAINNAME) {
+ if (!ENABLE_HOSTNAME || applet_name[0] == 'd') {
+ /* dnsdomainname */
+ opts = OPT_d;
+ }
+ }
if (opts & OPT_dfi) {
/* Cases when we need full hostname (or its part) */