if pidfile turned out to be !regular file, do not unlink it.
[oweals/busybox.git] / networking / udhcp / dhcpc.h
index 6cf59a950ae68e96941c97cdb9de4982c54fce8d..20f4e52b8dc82bcc099fdd8229029ca1d2596809 100644 (file)
@@ -3,9 +3,6 @@
 #ifndef _DHCPC_H
 #define _DHCPC_H
 
-/* grab define DEFAULT_SCRIPT */
-#include "libbb_udhcp.h"
-
 #define INIT_SELECTING 0
 #define REQUESTING     1
 #define BOUND          2
 #define RENEW_REQUESTED 6
 #define RELEASED       7
 
-
 struct client_config_t {
-       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 *interface;                /* The name of the interface to use */
-       char *pidfile;                  /* Optionally store the process ID */
-       char *script;                   /* User script to run at dhcp events */
-       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 */
-       int retries;                    /* Max number of request packets */
-       int timeout;                    /* Number of seconds to try to get a lease */
-       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 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 */
+       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 */
+       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 */
+       int retries;                    /* Max number of request packets */
+       int timeout;                    /* Number of seconds to try to get a lease */
+       uint8_t arp[6];                 /* Our arp address */
 };
 
 extern struct client_config_t client_config;
 
 
+/*** 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);
+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);
+
+
 #endif