udhcp: add PXELINUX config file option (code 209) definition
[oweals/busybox.git] / networking / udhcp / dhcpc.h
index c8acd498237efe01f33e02c1b4bf357cd0a8d91a..9f423a5b241f2f75acbc77e34da7a4c3e5fe9474 100644 (file)
@@ -1,64 +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
-
-#define INIT_SELECTING 0
-#define REQUESTING     1
-#define BOUND          2
-#define RENEWING       3
-#define REBINDING      4
-#define INIT_REBOOT    5
-#define RENEW_REQUESTED 6
-#define RELEASED       7
+PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
 struct client_config_t {
-       /* TODO: combine flag fields into single "unsigned opt" */
-       /* (can be set directly to the result of getopt32) */
-       char foreground;                /* Do not fork */
-       char quit_after_lease;          /* Quit after obtaining lease */
-       char release_on_quit;           /* Perform release on quit */
-       char abort_if_no_lease;         /* Abort if no lease */
-       char background_if_no_lease;    /* Fork to background if no lease */
-       char no_default_options;        /* Do not include default optins in request */
+       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 */
-       int ifindex;                    /* Index number of the interface to use */
-#if ENABLE_FEATURE_UDHCP_PORT
-       uint16_t port;
-#endif
-       uint8_t arp[6];                 /* Our arp address */
-       uint8_t opt_mask[256 / 8];      /* Bitmask of options to send (-O option) */
-};
+
+       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]))
+#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
-#endif
-
-
-/*** clientpacket.h ***/
-
-uint32_t random_xid(void);
-int send_discover(uint32_t xid, uint32_t requested);
-int send_selecting(uint32_t xid, uint32_t server, uint32_t requested);
-#if ENABLE_FEATURE_UDHCPC_ARPING
-int send_decline(uint32_t xid, uint32_t server, uint32_t requested);
+#define CLIENT_PORT  68
+#define CLIENT_PORT6 546
 #endif
-int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr);
-int send_renew(uint32_t xid, uint32_t server, uint32_t ciaddr);
-int send_release(uint32_t server, uint32_t ciaddr);
-int get_raw_packet(struct dhcpMessage *payload, int fd);
 
+POP_SAVED_FUNCTION_VISIBILITY
 
 #endif