X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=networking%2Fudhcp%2Fdhcpc.h;h=20f4e52b8dc82bcc099fdd8229029ca1d2596809;hb=bb23c069191f18ed11b826371ed3571e214b41e3;hp=808e919244134fca652a88d993238659e3fe98a2;hpb=ea6360e3938d016b2dfa6d0cbc9c9577070dca75;p=oweals%2Fbusybox.git diff --git a/networking/udhcp/dhcpc.h b/networking/udhcp/dhcpc.h index 808e91924..20f4e52b8 100644 --- a/networking/udhcp/dhcpc.h +++ b/networking/udhcp/dhcpc.h @@ -1,11 +1,8 @@ +/* vi: set sw=4 ts=4: */ /* dhcpc.h */ #ifndef _DHCPC_H #define _DHCPC_H -#ifndef DEFAULT_SCRIPT -#define DEFAULT_SCRIPT "/usr/share/udhcpc/default.script" -#endif - #define INIT_SELECTING 0 #define REQUESTING 1 #define BOUND 2 @@ -15,25 +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 */ - int retries; /* Max number of request packets */ - 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