summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-static-1.2.1/dhcp-hostname.patch
blob: e0adea662ef96f49b7d653ef2e942bb513136386 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#
# Patch managed by http://www.holgerschurig.de/patcher.html
#

--- busybox-1.01/networking/udhcp/dhcpc.c~dhcp-hostname
+++ busybox-1.01/networking/udhcp/dhcpc.c
@@ -193,6 +193,7 @@
 	int max_fd;
 	int sig;
 	int no_clientid = 0;
+ 	char hostbuf[256];	/* SUSv2: hostnames are <= 255 bytes */
 
 	static const struct option arg_options[] = {
 		{"clientid",	required_argument,	0, 'c'},
@@ -211,6 +212,14 @@
 		{0, 0, 0, 0}
 	};
 
+	if (gethostname (hostbuf, sizeof (hostbuf)) == 0) {
+		len = strlen (hostbuf);
+		client_config.hostname = xmalloc (len + 2);
+		client_config.hostname[OPT_CODE] = DHCP_HOST_NAME;
+		client_config.hostname[OPT_LEN] = len;
+		strncpy(client_config.hostname + 2, hostbuf, len);
+	}
+
 	/* get options */
 	while (1) {
 		int option_index = 0;