X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsystemd%2Fsd-dhcp-client.h;h=c3ea0592f69844e5668b6a501cbe5815620ea2d0;hp=9b19a1dc97a98922ae26229d346c92e2407768d5;hb=4cc7a82c9490a3c5ae03b1d6d168ce40ba499e23;hpb=011feef852de96a1adaba476037ce01b5efefc35 diff --git a/src/systemd/sd-dhcp-client.h b/src/systemd/sd-dhcp-client.h index 9b19a1dc9..c3ea0592f 100644 --- a/src/systemd/sd-dhcp-client.h +++ b/src/systemd/sd-dhcp-client.h @@ -23,14 +23,47 @@ ***/ #include +#include + +#include "sd-event.h" +#include "sd-dhcp-lease.h" + +enum { + DHCP_EVENT_STOP = 0, + DHCP_EVENT_NO_LEASE = 1, + DHCP_EVENT_IP_ACQUIRE = 2, + DHCP_EVENT_IP_CHANGE = 3, + DHCP_EVENT_EXPIRED = 4, + DHCP_EVENT_RENEW = 5, +}; typedef struct sd_dhcp_client sd_dhcp_client; +typedef void (*sd_dhcp_client_cb_t)(sd_dhcp_client *client, int event, + void *userdata); +int sd_dhcp_client_set_callback(sd_dhcp_client *client, sd_dhcp_client_cb_t cb, + void *userdata); + + int sd_dhcp_client_set_request_option(sd_dhcp_client *client, uint8_t option); int sd_dhcp_client_set_request_address(sd_dhcp_client *client, const struct in_addr *last_address); int sd_dhcp_client_set_index(sd_dhcp_client *client, int interface_index); +int sd_dhcp_client_set_mac(sd_dhcp_client *client, + const struct ether_addr *addr); +int sd_dhcp_client_set_hostname(sd_dhcp_client *client, const char *hostname); +int sd_dhcp_client_get_lease(sd_dhcp_client *client, sd_dhcp_lease **ret); + +int sd_dhcp_client_stop(sd_dhcp_client *client); +int sd_dhcp_client_start(sd_dhcp_client *client); + +sd_dhcp_client *sd_dhcp_client_ref(sd_dhcp_client *client); +sd_dhcp_client *sd_dhcp_client_unref(sd_dhcp_client *client); + +int sd_dhcp_client_new(sd_dhcp_client **ret); -sd_dhcp_client *sd_dhcp_client_new(void); +int sd_dhcp_client_attach_event(sd_dhcp_client *client, sd_event *event, int priority); +int sd_dhcp_client_detach_event(sd_dhcp_client *client); +sd_event *sd_dhcp_client_get_event(sd_dhcp_client *client); #endif