udhcp: add PXELINUX config file option (code 209) definition
[oweals/busybox.git] / networking / udhcp / dhcpc.h
index 6ca440071904603579bf9dc3783260676e1198d0..9f423a5b241f2f75acbc77e34da7a4c3e5fe9474 100644 (file)
@@ -1,56 +1,41 @@
 /* vi: set sw=4 ts=4: */
-/* dhcpc.h */
+/*
+ * Licensed under GPLv2, see file LICENSE in this source tree.
+ */
+#ifndef UDHCP_DHCPC_H
+#define UDHCP_DHCPC_H 1
 
-#ifndef _DHCPC_H
-#define _DHCPC_H
-
-#if __GNUC_PREREQ(4,1)
-# pragma GCC visibility push(hidden)
-#endif
+PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
 struct client_config_t {
-       uint8_t arp[6];                 /* Our arp address */
-       /* TODO: combine flag fields into single "unsigned opt" */
-       /* (can be set directly to the result of getopt32) */
-       char no_default_options;        /* Do not include default optins in request */
-       USE_FEATURE_UDHCP_PORT(uint16_t port;)
+       uint8_t client_mac[6];          /* Our mac address */
+       IF_FEATURE_UDHCP_PORT(uint16_t port;)
        int ifindex;                    /* Index number of the interface to use */
        uint8_t opt_mask[256 / 8];      /* Bitmask of options to send (-O option) */
        const char *interface;          /* The name of the interface to use */
        char *pidfile;                  /* Optionally store the process ID */
        const char *script;             /* User script to run at dhcp events */
+       struct option_set *options;     /* list of DHCP options to send to server */
        uint8_t *clientid;              /* Optional client id to use */
        uint8_t *vendorclass;           /* Optional vendor class-id to use */
        uint8_t *hostname;              /* Optional hostname to use */
        uint8_t *fqdn;                  /* Optional fully qualified domain name to use */
-};
+
+       uint16_t first_secs;
+       uint16_t last_secs;
+} FIX_ALIASING;
 
 /* server_config sits in 1st half of bb_common_bufsiz1 */
 #define client_config (*(struct client_config_t*)(&bb_common_bufsiz1[COMMON_BUFSIZE / 2]))
 
 #if ENABLE_FEATURE_UDHCP_PORT
-#define CLIENT_PORT (client_config.port)
+#define CLIENT_PORT  (client_config.port)
+#define CLIENT_PORT6 (client_config.port)
 #else
-#define CLIENT_PORT 68
+#define CLIENT_PORT  68
+#define CLIENT_PORT6 546
 #endif
 
-
-/*** clientpacket.h ***/
-
-uint32_t random_xid(void) FAST_FUNC;
-int send_discover(uint32_t xid, uint32_t requested) FAST_FUNC;
-int send_selecting(uint32_t xid, uint32_t server, uint32_t requested) FAST_FUNC;
-#if ENABLE_FEATURE_UDHCPC_ARPING
-int send_decline(uint32_t xid, uint32_t server, uint32_t requested) FAST_FUNC;
-#endif
-int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr) FAST_FUNC;
-int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr) FAST_FUNC;
-int send_release(uint32_t server, uint32_t ciaddr) FAST_FUNC;
-
-int udhcp_recv_raw_packet(struct dhcpMessage *payload, int fd) FAST_FUNC;
-
-#if __GNUC_PREREQ(4,1)
-# pragma GCC visibility pop
-#endif
+POP_SAVED_FUNCTION_VISIBILITY
 
 #endif