Commit 115defd163ff4977cfffbaa5a02e8d19d89e03d2
1 parent
ffcdb539
Set slirp client hostname.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1813 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
5 changed files
with
22 additions
and
4 deletions
qemu-doc.texi
| ... | ... | @@ -262,9 +262,10 @@ Qemu can emulate several different models of network card. Valid values for |
| 262 | 262 | @code{smc91c111} and @code{lance}. Not all devices are supported on all |
| 263 | 263 | targets. |
| 264 | 264 | |
| 265 | -@item -net user[,vlan=n] | |
| 265 | +@item -net user[,vlan=n][,hostname=name] | |
| 266 | 266 | Use the user mode network stack which requires no administrator |
| 267 | -priviledge to run. | |
| 267 | +priviledge to run. @option{hotname=name} can be used to specify the client | |
| 268 | +hostname reported by the builtin DHCP server. | |
| 268 | 269 | |
| 269 | 270 | @item -net tap[,vlan=n][,fd=h][,ifname=name][,script=file] |
| 270 | 271 | Connect the host TAP network interface @var{name} to VLAN @var{n} and | ... | ... |
slirp/bootp.c
| ... | ... | @@ -228,6 +228,14 @@ static void bootp_reply(struct bootp_t *bp) |
| 228 | 228 | val = htonl(LEASE_TIME); |
| 229 | 229 | memcpy(q, &val, 4); |
| 230 | 230 | q += 4; |
| 231 | + | |
| 232 | + if (*slirp_hostname) { | |
| 233 | + val = strlen(slirp_hostname); | |
| 234 | + *q++ = RFC1533_HOSTNAME; | |
| 235 | + *q++ = val; | |
| 236 | + memcpy(q, slirp_hostname, val); | |
| 237 | + q += val; | |
| 238 | + } | |
| 231 | 239 | } |
| 232 | 240 | *q++ = RFC1533_END; |
| 233 | 241 | ... | ... |
slirp/libslirp.h
slirp/slirp.c
vl.c
| ... | ... | @@ -3151,6 +3151,11 @@ int net_client_init(const char *str) |
| 3151 | 3151 | } else |
| 3152 | 3152 | #ifdef CONFIG_SLIRP |
| 3153 | 3153 | if (!strcmp(device, "user")) { |
| 3154 | + if (get_param_value(buf, sizeof(buf), "hostname", p)) { | |
| 3155 | + if (strlen(buf) > 32) | |
| 3156 | + buf[32] = 0; | |
| 3157 | + strcpy(slirp_hostname, buf); | |
| 3158 | + } | |
| 3154 | 3159 | ret = net_slirp_init(vlan); |
| 3155 | 3160 | } else |
| 3156 | 3161 | #endif |
| ... | ... | @@ -4597,8 +4602,9 @@ void help(void) |
| 4597 | 4602 | "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" |
| 4598 | 4603 | " create a new Network Interface Card and connect it to VLAN 'n'\n" |
| 4599 | 4604 | #ifdef CONFIG_SLIRP |
| 4600 | - "-net user[,vlan=n]\n" | |
| 4601 | - " connect the user mode network stack to VLAN 'n'\n" | |
| 4605 | + "-net user[,vlan=n][,hostname=host]\n" | |
| 4606 | + " connect the user mode network stack to VLAN 'n' and send\n" | |
| 4607 | + " hostname 'host' to DHCP clients\n" | |
| 4602 | 4608 | #endif |
| 4603 | 4609 | #ifdef _WIN32 |
| 4604 | 4610 | "-net tap[,vlan=n],ifname=name\n" | ... | ... |