[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/7] slirp: Add DHCP vendor option to DHCP Offer/Ack
From: |
Fedor Lyakhov |
Subject: |
[Qemu-devel] [PATCH 5/7] slirp: Add DHCP vendor option to DHCP Offer/Ack packet |
Date: |
Sat, 26 Apr 2014 02:11:01 +0400 |
Signed-off-by: Fedor Lyakhov <address@hidden>
---
slirp/bootp.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/slirp/bootp.c b/slirp/bootp.c
index b7db9fa..df8d527 100644
--- a/slirp/bootp.c
+++ b/slirp/bootp.c
@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
-#include <slirp.h>
+#include "slirp.h"
/* XXX: only DHCP is supported */
@@ -289,7 +289,7 @@ static void bootp_reply(Slirp *slirp, const struct bootp_t
*bp)
}
if (slirp->vdnssearch) {
- size_t spaceleft = sizeof(rbp->bp_vend) - (q - rbp->bp_vend);
+ size_t spaceleft = DHCP_OPT_LEN - (q - rbp->bp_vend);
val = slirp->vdnssearch_len;
if (val + 1 > spaceleft) {
g_warning("DHCP packet size exceeded, "
@@ -299,6 +299,18 @@ static void bootp_reply(Slirp *slirp, const struct bootp_t
*bp)
q += val;
}
}
+
+ if (slirp->dhcp_vendopt) {
+ size_t spaceleft = DHCP_OPT_LEN - (q - rbp->bp_vend);
+ val = slirp->dhcp_vendopt_len;
+ if (val + 1 > spaceleft) {
+ g_warning("DHCP packet size exceeded, "
+ "omitting vendor-specific option.");
+ } else {
+ memcpy(q, slirp->dhcp_vendopt, val);
+ q += val;
+ }
+ }
} else {
static const char nak_msg[] = "requested address not available";
--
1.8.4.5
- [Qemu-devel] [PATCH 0/7] slirp: Add support of vendor-specific info option to built-in DHCP server, Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 4/7] slirp: Add translator of DHCP vendor option string to DHCP TLV representation, Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 7/7] slirp: Add unit test for slirp/dhcp_vendopt.c module, Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 1/7] slirp: Move BOOTP/DHCP protocol defines to a separate header, Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 2/7] slirp: Add header inclusion guard to slirp/debug.h, Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 3/7] slirp: Add new command-line suboption "[, dhcpvendopt=optstring]" to "-net user", Fedor Lyakhov, 2014/04/25
- [Qemu-devel] [PATCH 5/7] slirp: Add DHCP vendor option to DHCP Offer/Ack packet,
Fedor Lyakhov <=
- [Qemu-devel] [PATCH 6/7] slirp: Add description of new "dhcpvendopt" suboption to the help and man page, Fedor Lyakhov, 2014/04/25