X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=networking%2Fudhcp%2Fdhcpc.h;h=20f4e52b8dc82bcc099fdd8229029ca1d2596809;hb=3f1123103cff3d6a67f5faa2f4b25f3c1e92a501;hp=4cc1c4cc1d7e181ba888c0e58595a2f0564f5824;hpb=28de951b022d39516de271ce0ba53560aa3c5555;p=oweals%2Fbusybox.git diff --git a/networking/udhcp/dhcpc.h b/networking/udhcp/dhcpc.h index 4cc1c4cc1..20f4e52b8 100644 --- a/networking/udhcp/dhcpc.h +++ b/networking/udhcp/dhcpc.h @@ -1,12 +1,8 @@ +/* vi: set sw=4 ts=4: */ /* dhcpc.h */ #ifndef _DHCPC_H #define _DHCPC_H -#define DEFAULT_SCRIPT "/usr/share/udhcpc/default.script" - -/* allow libbb_udhcp.h to redefine DEFAULT_SCRIPT */ -#include "libbb_udhcp.h" - #define INIT_SELECTING 0 #define REQUESTING 1 #define BOUND 2 @@ -16,24 +12,39 @@ #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 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 */ - 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