fd17917d05638cceb4965d17ed670facfaffcaed
[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         /* TODO: combine flag fields into single "unsigned opt" */
17         /* (can be set directly to the result of getopt32) */
18         char foreground;                /* Do not fork */
19         char quit_after_lease;          /* Quit after obtaining lease */
20         char release_on_quit;           /* perform release on quit */
21         char abort_if_no_lease;         /* Abort if no lease */
22         char background_if_no_lease;    /* Fork to background if no lease */
23         char *interface;                /* The name of the interface to use */
24         char *pidfile;                  /* Optionally store the process ID */
25         char *script;                   /* User script to run at dhcp events */
26         uint8_t *clientid;              /* Optional client id to use */
27         uint8_t *vendorclass;           /* Optional vendor class-id to use */
28         uint8_t *hostname;              /* Optional hostname to use */
29         uint8_t *fqdn;                  /* Optional fully qualified domain name to use */
30         int ifindex;                    /* Index number of the interface to use */
31         int retries;                    /* Max number of request packets */
32         int timeout;                    /* Number of seconds to try to get a lease */
33         uint8_t arp[6];                 /* Our arp address */
34 };
35
36 extern struct client_config_t client_config;
37
38
39 /*** clientpacket.h ***/
40
41 unsigned long random_xid(void);
42 int send_discover(unsigned long xid, unsigned long requested);
43 int send_selecting(unsigned long xid, unsigned long server, unsigned long requested);
44 int send_renew(unsigned long xid, unsigned long server, unsigned long ciaddr);
45 int send_renew(unsigned long xid, unsigned long server, unsigned long ciaddr);
46 int send_release(unsigned long server, unsigned long ciaddr);
47 int get_raw_packet(struct dhcpMessage *payload, int fd);
48
49
50 #endif