d5c8a4ba5ef1d42978c4b7a8616a6d88555585fd
[oweals/busybox.git] / networking / udhcp / dhcpc.h
1 /* vi: set sw=4 ts=4: */
2 /* dhcpc.h */
3 #ifndef _DHCPC_H
4 #define _DHCPC_H
5
6 #define INIT_SELECTING  0
7 #define REQUESTING      1
8 #define BOUND           2
9 #define RENEWING        3
10 #define REBINDING       4
11 #define INIT_REBOOT     5
12 #define RENEW_REQUESTED 6
13 #define RELEASED        7
14
15 struct client_config_t {
16         char foreground;                /* Do not fork */
17         char quit_after_lease;          /* Quit after obtaining lease */
18         char release_on_quit;           /* perform release on quit */
19         char abort_if_no_lease;         /* Abort if no lease */
20         char background_if_no_lease;    /* Fork to background if no lease */
21         char *interface;                /* The name of the interface to use */
22         char *pidfile;                  /* Optionally store the process ID */
23         char *script;                   /* User script to run at dhcp events */
24         uint8_t *clientid;              /* Optional client id to use */
25         uint8_t *vendorclass;           /* Optional vendor class-id to use */
26         uint8_t *hostname;              /* Optional hostname to use */
27         uint8_t *fqdn;                  /* Optional fully qualified domain name to use */
28         int ifindex;                    /* Index number of the interface to use */
29         int retries;                    /* Max number of request packets */
30         int timeout;                    /* Number of seconds to try to get a lease */
31         uint8_t arp[6];                 /* Our arp address */
32 };
33
34 extern struct client_config_t client_config;
35
36
37 /*** clientpacket.h ***/
38
39 unsigned long random_xid(void);
40 int send_discover(unsigned long xid, unsigned long requested);
41 int send_selecting(unsigned long xid, unsigned long server, unsigned long requested);
42 int send_renew(unsigned long xid, unsigned long server, unsigned long ciaddr);
43 int send_renew(unsigned long xid, unsigned long server, unsigned long ciaddr);
44 int send_release(unsigned long server, unsigned long ciaddr);
45 int get_raw_packet(struct dhcpMessage *payload, int fd);
46
47
48 #endif