applying fix for:
[oweals/busybox.git] / networking / udhcp / dhcpd.h
index 2971e19db0543f07d370c8993546cee4b9d4fc55..65c8348bf641e48c88c0901152c2b4260f316e47 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "libbb_udhcp.h"
 #include "leases.h"
+#include "version.h"
 
 /************************************/
 /* Defaults _you_ may want to tweak */
@@ -14,6 +15,7 @@
 
 /* the period of time the client is allowed to use that address */
 #define LEASE_TIME              (60*60*24*10) /* 10 days of seconds */
+#define LEASES_FILE            "/var/lib/misc/udhcpd.leases"
 
 /* where to find the DHCP server configuration file */
 #define DHCPD_CONF_FILE         "/etc/udhcpd.conf"
@@ -61,6 +63,7 @@
 #define DHCP_T2                        0x3b
 #define DHCP_VENDOR            0x3c
 #define DHCP_CLIENT_ID         0x3d
+#define DHCP_FQDN              0x51
 
 #define DHCP_END               0xFF
 
 #define SNAME_FIELD            2
 
 /* miscellaneous defines */
-#define MAC_BCAST_ADDR         (unsigned char *) "\xff\xff\xff\xff\xff\xff"
+#define MAC_BCAST_ADDR         (uint8_t *) "\xff\xff\xff\xff\xff\xff"
 #define OPT_CODE 0
 #define OPT_LEN 1
 #define OPT_DATA 2
 
 struct option_set {
-       unsigned char *data;
+       uint8_t *data;
        struct option_set *next;
 };
 
+struct static_lease {
+       uint8_t *mac;
+       uint32_t *ip;
+       struct static_lease *next;
+};
+
 struct server_config_t {
-       u_int32_t server;               /* Our IP, in network order */
-       u_int32_t start;                /* Start address of leases, network order */
-       u_int32_t end;                  /* End of leases, network order */
+       uint32_t server;                /* Our IP, in network order */
+       uint32_t start;         /* Start address of leases, network order */
+       uint32_t end;                   /* End of leases, network order */
        struct option_set *options;     /* List of DHCP options loaded from the config file */
        char *interface;                /* The name of the interface to use */
        int ifindex;                    /* Index number of the interface to use */
-       unsigned char arp[6];           /* Our arp address */
+       uint8_t arp[6];         /* Our arp address */
        unsigned long lease;            /* lease time in seconds (host order) */
        unsigned long max_leases;       /* maximum number of leases (including reserved address) */
        char remaining;                 /* should the lease file be interpreted as lease time remaining, or
@@ -119,13 +128,14 @@ struct server_config_t {
        char *lease_file;
        char *pidfile;
        char *notify_file;              /* What to run whenever leases are written */
-       u_int32_t siaddr;               /* next server bootp option */
+       uint32_t siaddr;                /* next server bootp option */
        char *sname;                    /* bootp server name */
        char *boot_file;                /* bootp boot file option */
-};     
+       struct static_lease *static_leases; /* List of ip/mac pairs to assign static leases */
+};
 
 extern struct server_config_t server_config;
 extern struct dhcpOfferedAddr *leases;
-               
+
 
 #endif