From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FIcZF-0005En-VA for qemu-devel@nongnu.org; Sun, 12 Mar 2006 21:13:53 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FIcZC-0005EH-8d for qemu-devel@nongnu.org; Sun, 12 Mar 2006 21:13:53 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FIcZC-0005Dq-2H for qemu-devel@nongnu.org; Sun, 12 Mar 2006 21:13:50 -0500 Received: from [64.233.182.205] (helo=nproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FIcd4-0006dZ-2d for qemu-devel@nongnu.org; Sun, 12 Mar 2006 21:17:50 -0500 Received: by nproxy.gmail.com with SMTP id p46so300664nfa for ; Sun, 12 Mar 2006 18:13:48 -0800 (PST) Message-ID: Date: Sun, 12 Mar 2006 18:13:48 -0800 From: "Ed Swierk" Subject: Re: [Qemu-devel] [PATCH] Set hostname in DHCP response In-Reply-To: <200603112219.27328.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_7509_16101609.1142216028533" References: <200603112219.27328.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: paul@codesourcery.com ------=_Part_7509_16101609.1142216028533 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline T24gMy8xMS8wNiwgUGF1bCBCcm9vayA8cGF1bEBjb2Rlc291cmNlcnkuY29tPiB3cm90ZToKPiBU aGlzIHNob3VsZCBiZSBzZXQgdmlhIC1uZXQgdXNlcixob3N0bmFtZT1mb28uIE5vIG5lZWQgZm9y IGEgc2VwYXJhdGUgb3B0aW9uLgoKSSBhZ3JlZSwgc2luY2UgdGhlIGhvc3RuYW1lIGlzIHJlbGV2 YW50IG9ubHkgZm9yIHVzZXItbmV0IGludGVyZmFjZXMuCkFuIHVwZGF0ZWQgcGF0Y2ggaXMgYXR0 YWNoZWQuCgpUaGUgb25seSBpc3N1ZSBpcyB0aGF0IHRoZXJlJ3MganVzdCBhIHNpbmdsZSwgZ2xv YmFsIGhvc3RuYW1lLCBub3QgYQpob3N0bmFtZSBwZXIgdXNlci1uZXQgaW50ZXJmYWNlLiBPbiB0 aGUgb3RoZXIgaGFuZCwgSSdtIG5vdCBzdXJlIGlmCnFlbXUgc3VwcG9ydHMgbXVsdGlwbGUgdXNl ci1uZXQgaW50ZXJmYWNlcyBpbiB0aGUgZmlyc3QgcGxhY2UuIERvZXMKdGhlIGZvbGxvd2luZyBj b25maWd1cmF0aW9uIG1ha2Ugc2Vuc2U/CgogICAgLW5ldCBuaWMsdmxhbj0wIC1uZXQgdXNlcix2 bGFuPTAgLW5ldCBuaWMsdmxhbj0xIC1uZXQgdXNlcix2bGFuPTEKCi0tRWQK ------=_Part_7509_16101609.1142216028533 Content-Type: text/x-patch; name=qemu-hostname.patch; charset=us-ascii Content-Transfer-Encoding: 7bit X-Attachment-Id: f_ekq5voti Content-Disposition: attachment; filename="qemu-hostname.patch" diff -BurN qemu-snapshot-2006-03-06_23.orig/slirp/bootp.c qemu-snapshot-2006-03-06_23/slirp/bootp.c --- qemu-snapshot-2006-03-06_23.orig/slirp/bootp.c 2005-06-05 17:11:42.000000000 +0000 +++ qemu-snapshot-2006-03-06_23/slirp/bootp.c 2006-03-10 07:11:19.000000000 +0000 @@ -228,6 +228,16 @@ val = htonl(LEASE_TIME); memcpy(q, &val, 4); q += 4; + + if (slirp_hostname && *slirp_hostname) { + val = strlen(slirp_hostname); + if (val > 32) + val = 32; + *q++ = RFC1533_HOSTNAME; + *q++ = val; + memcpy(q, slirp_hostname, val); + q += val; + } } *q++ = RFC1533_END; diff -BurN qemu-snapshot-2006-03-06_23.orig/slirp/libslirp.h qemu-snapshot-2006-03-06_23/slirp/libslirp.h --- qemu-snapshot-2006-03-06_23.orig/slirp/libslirp.h 2005-06-05 17:11:42.000000000 +0000 +++ qemu-snapshot-2006-03-06_23/slirp/libslirp.h 2006-03-10 06:47:32.000000000 +0000 @@ -32,6 +32,7 @@ int guest_port); extern const char *tftp_prefix; +extern const char *slirp_hostname; #ifdef __cplusplus } diff -BurN qemu-snapshot-2006-03-06_23.orig/slirp/slirp.c qemu-snapshot-2006-03-06_23/slirp/slirp.c --- qemu-snapshot-2006-03-06_23.orig/slirp/slirp.c 2005-09-03 10:45:09.000000000 +0000 +++ qemu-snapshot-2006-03-06_23/slirp/slirp.c 2006-03-10 06:46:28.000000000 +0000 @@ -25,6 +25,8 @@ /* XXX: suppress those select globals */ fd_set *global_readfds, *global_writefds, *global_xfds; +const char *slirp_hostname = NULL; + #ifdef _WIN32 static int get_dns_addr(struct in_addr *pdns_addr) diff -BurN qemu-snapshot-2006-03-06_23.orig/vl.c qemu-snapshot-2006-03-06_23/vl.c --- qemu-snapshot-2006-03-06_23.orig/vl.c 2006-02-20 00:33:36.000000000 +0000 +++ qemu-snapshot-2006-03-06_23/vl.c 2006-03-13 01:35:45.000000000 +0000 @@ -2758,6 +2758,12 @@ } else #ifdef CONFIG_SLIRP if (!strcmp(device, "user")) { + if (get_param_value(buf, sizeof(buf), "hostname", p)) { + if (slirp_hostname) + fprintf(stderr, "hostname already set; ignoring hostname=%s\n", buf); + else + slirp_hostname = strdup(buf); + } ret = net_slirp_init(vlan); } else #endif @@ -4157,8 +4163,9 @@ "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" " create a new Network Interface Card and connect it to VLAN 'n'\n" #ifdef CONFIG_SLIRP - "-net user[,vlan=n]\n" - " connect the user mode network stack to VLAN 'n'\n" + "-net user[,vlan=n][,hostname=host]\n" + " connect the user mode network stack to VLAN 'n' and send\n" + " hostname 'host' to DHCP clients\n" #endif #ifdef _WIN32 "-net tap[,vlan=n],ifname=name\n" ------=_Part_7509_16101609.1142216028533--