aboutsummaryrefslogtreecommitdiff
path: root/slirp
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-04-16 11:06:58 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-04-16 11:06:58 +0000
commit115defd163ff4977cfffbaa5a02e8d19d89e03d2 (patch)
tree88076d7b335285e1bedf19f71ddbd3c54a1c01cf /slirp
parentffcdb539debe426e75290cb76f73e5c7b4fc645d (diff)
Set slirp client hostname.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1813 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'slirp')
-rw-r--r--slirp/bootp.c8
-rw-r--r--slirp/libslirp.h1
-rw-r--r--slirp/slirp.c2
3 files changed, 11 insertions, 0 deletions
diff --git a/slirp/bootp.c b/slirp/bootp.c
index 9f0652fd63..62cbcfd8f3 100644
--- a/slirp/bootp.c
+++ b/slirp/bootp.c
@@ -228,6 +228,14 @@ static void bootp_reply(struct bootp_t *bp)
val = htonl(LEASE_TIME);
memcpy(q, &val, 4);
q += 4;
+
+ if (*slirp_hostname) {
+ val = strlen(slirp_hostname);
+ *q++ = RFC1533_HOSTNAME;
+ *q++ = val;
+ memcpy(q, slirp_hostname, val);
+ q += val;
+ }
}
*q++ = RFC1533_END;
diff --git a/slirp/libslirp.h b/slirp/libslirp.h
index cff159e791..36c8ec21fd 100644
--- a/slirp/libslirp.h
+++ b/slirp/libslirp.h
@@ -32,6 +32,7 @@ int slirp_add_exec(int do_pty, const char *args, int addr_low_byte,
int guest_port);
extern const char *tftp_prefix;
+extern const char slirp_hostname[33];
#ifdef __cplusplus
}
diff --git a/slirp/slirp.c b/slirp/slirp.c
index 404cce8f76..28b8c887a4 100644
--- a/slirp/slirp.c
+++ b/slirp/slirp.c
@@ -25,6 +25,8 @@ struct ex_list *exec_list;
/* XXX: suppress those select globals */
fd_set *global_readfds, *global_writefds, *global_xfds;
+const char slirp_hostname[33];
+
#ifdef _WIN32
static int get_dns_addr(struct in_addr *pdns_addr)