aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/common.h
diff options
context:
space:
mode:
authorMartin Lewis <martin.lewis.x84@gmail.com>2020-06-23 15:25:08 -0500
committerDenys Vlasenko <vda.linux@googlemail.com>2020-06-29 14:57:02 +0200
commitacdc8eed89399a9fa5e7478ee40b928c65e3ab4e (patch)
tree406e5c338b8d22c895cb16bdee9151202efe0ead /networking/udhcp/common.h
parentfc2ce04a38ebfb03f9aeff205979786839cd5a7c (diff)
downloadbusybox-acdc8eed89399a9fa5e7478ee40b928c65e3ab4e.tar.gz
udhcp: add option scanner
Added an option scanner to udhcp to enable iteration over packet options. Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/udhcp/common.h')
-rw-r--r--networking/udhcp/common.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
index 6214db06a..81c1dcbdc 100644
--- a/networking/udhcp/common.h
+++ b/networking/udhcp/common.h
@@ -107,6 +107,12 @@ enum {
OPTION_LIST = 0x20,
};
+struct dhcp_scan_state {
+ int overload;
+ int rem;
+ uint8_t *optionptr;
+};
+
/* DHCP option codes (partial list). See RFC 2132 and
* http://www.iana.org/assignments/bootp-dhcp-parameters/
* Commented out options are handled by common option machinery,
@@ -206,6 +212,8 @@ extern const uint8_t dhcp_option_lengths[] ALIGN1;
unsigned FAST_FUNC udhcp_option_idx(const char *name, const char *option_strings);
+void init_scan_state(struct dhcp_packet *packet, struct dhcp_scan_state *scan_state) FAST_FUNC;
+uint8_t *udhcp_scan_options(struct dhcp_packet *packet, struct dhcp_scan_state *scan_state) FAST_FUNC;
uint8_t *udhcp_get_option(struct dhcp_packet *packet, int code) FAST_FUNC;
/* Same as above + ensures that option length is 4 bytes
* (returns NULL if size is different)