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=951662e56c00aa44302790a70d6577e7a3496033;hp=0f16e996179f53e12a9efb74f66fff9204c52837;hb=d78f66f754716d82da11dd60c23e514d0603af6f;hpb=b25ef18b334d85d54f50478446bf81fe214cb2fc diff --git a/src/systemd/sd-dhcp-client.h b/src/systemd/sd-dhcp-client.h index 0f16e9961..951662e56 100644 --- a/src/systemd/sd-dhcp-client.h +++ b/src/systemd/sd-dhcp-client.h @@ -26,13 +26,14 @@ #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_IP_ACQUIRE = 1, + DHCP_EVENT_IP_CHANGE = 2, + DHCP_EVENT_EXPIRED = 3, + DHCP_EVENT_RENEW = 4, }; typedef struct sd_dhcp_client sd_dhcp_client; @@ -46,22 +47,25 @@ int sd_dhcp_client_set_callback(sd_dhcp_client *client, sd_dhcp_client_cb_t cb, 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_request_broadcast(sd_dhcp_client *client, int broadcast); 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_get_address(sd_dhcp_client *client, struct in_addr *addr); -int sd_dhcp_client_get_netmask(sd_dhcp_client *client, struct in_addr *addr); -int sd_dhcp_client_prefixlen(const struct in_addr *addr); -int sd_dhcp_client_get_router(sd_dhcp_client *client, struct in_addr *addr); -int sd_dhcp_client_get_dns(sd_dhcp_client *client, struct in_addr **addr, size_t *addr_size); -int sd_dhcp_client_get_mtu(sd_dhcp_client *client, uint16_t *mtu); -int sd_dhcp_client_get_domainname(sd_dhcp_client *client, const char **domainname); -int sd_dhcp_client_get_hostname(sd_dhcp_client *client, const char **hostname); +int sd_dhcp_client_set_mac(sd_dhcp_client *client, const uint8_t *addr, + size_t addr_len, uint16_t arp_type); +int sd_dhcp_client_set_client_id(sd_dhcp_client *client, uint8_t type, + const uint8_t *data, size_t data_len); +int sd_dhcp_client_get_client_id(sd_dhcp_client *client, uint8_t *type, + const uint8_t **data, size_t *data_len); +int sd_dhcp_client_set_mtu(sd_dhcp_client *client, uint32_t mtu); +int sd_dhcp_client_set_hostname(sd_dhcp_client *client, const char *hostname); +int sd_dhcp_client_set_vendor_class_identifier(sd_dhcp_client *client, const char *vci); +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); -void sd_dhcp_client_free(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); int sd_dhcp_client_attach_event(sd_dhcp_client *client, sd_event *event, int priority);