X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=networking%2Fudhcp%2Fdhcpc.h;h=8da1dd8e1726deaaf37dd1dc75f1cfe3a918f4ea;hb=96e1b38586e80a0f014038bf4fdf4689c668fbd6;hp=3dff11ab0691baa7df1c964000e0c54baf40f99d;hpb=9213a9e0f2d8fd638ecd02e2628d96dd5c7d233e;p=oweals%2Fbusybox.git diff --git a/networking/udhcp/dhcpc.h b/networking/udhcp/dhcpc.h index 3dff11ab0..8da1dd8e1 100644 --- a/networking/udhcp/dhcpc.h +++ b/networking/udhcp/dhcpc.h @@ -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 @@ -15,26 +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 */ - 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; +#define client_config (*(struct client_config_t*)&bb_common_bufsiz1) + + +/*** 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