diff options
author | Fam Zheng <famz@redhat.com> | 2018-09-14 15:26:16 +0800 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-10-21 21:24:55 +0200 |
commit | 0fca92b9077af9817c04545cdfc519fe95c6fde9 (patch) | |
tree | 2b9a1093bebb6adc699d5031e623f25f243e9259 /slirp/bootp.c | |
parent | 6e157a0339793bb081705f52318fc77afd10addf (diff) |
slirp: Implement RFC2132 TFTP server name
This new usernet option can be used to add data for option 66 (tftp
server name) in the BOOTP reply, which is useful in PXE based automatic
OS install such as OpenBSD.
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'slirp/bootp.c')
-rw-r--r-- | slirp/bootp.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/slirp/bootp.c b/slirp/bootp.c index 1e8185f0ec..7b1af73c95 100644 --- a/slirp/bootp.c +++ b/slirp/bootp.c @@ -318,6 +318,19 @@ static void bootp_reply(Slirp *slirp, const struct bootp_t *bp) } } + if (slirp->tftp_server_name) { + val = strlen(slirp->tftp_server_name); + if (q + val + 2 >= end) { + g_warning("DHCP packet size exceeded, " + "omitting tftp-server-name option."); + } else { + *q++ = RFC2132_TFTP_SERVER_NAME; + *q++ = val; + memcpy(q, slirp->tftp_server_name, val); + q += val; + } + } + if (slirp->vdnssearch) { val = slirp->vdnssearch_len; if (q + val >= end) { |