X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemd%2Fsd-dhcp-client.h;h=87f5adb597a83a83a21d17b87e2fa344d54fc847;hb=4fb7242cbbed0d865eb343548b8f0ee0fee71d85;hp=beb8642a898ae19110a9756898860fe0e0385d82;hpb=7ae4ef6d23bc884d0e0ee2ec9cf87ec99d0686bb;p=elogind.git diff --git a/src/systemd/sd-dhcp-client.h b/src/systemd/sd-dhcp-client.h index beb8642a8..87f5adb59 100644 --- a/src/systemd/sd-dhcp-client.h +++ b/src/systemd/sd-dhcp-client.h @@ -36,6 +36,7 @@ enum { }; typedef struct sd_dhcp_client sd_dhcp_client; +typedef struct sd_dhcp_lease sd_dhcp_lease; typedef void (*sd_dhcp_client_cb_t)(sd_dhcp_client *client, int event, void *userdata); @@ -49,18 +50,25 @@ int sd_dhcp_client_set_request_address(sd_dhcp_client *client, 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_hostname(sd_dhcp_client *client, const char **hostname); +int sd_dhcp_client_get_lease(sd_dhcp_client *client, sd_dhcp_lease **ret); + +sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease); +sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease); +int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr); +int sd_dhcp_lease_get_netmask(sd_dhcp_lease *lease, struct in_addr *addr); +int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, struct in_addr *addr); +int sd_dhcp_lease_get_dns(sd_dhcp_lease *lease, struct in_addr **addr, size_t *addr_size); +int sd_dhcp_lease_get_mtu(sd_dhcp_lease *lease, uint16_t *mtu); +int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname); +int sd_dhcp_lease_get_hostname(sd_dhcp_lease *lease, const char **hostname); int sd_dhcp_client_stop(sd_dhcp_client *client); int sd_dhcp_client_start(sd_dhcp_client *client); -sd_dhcp_client *sd_dhcp_client_free(sd_dhcp_client *client); -sd_dhcp_client *sd_dhcp_client_new(sd_event *event); +void sd_dhcp_client_free(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); +int sd_dhcp_client_detach_event(sd_dhcp_client *client); +sd_event *sd_dhcp_client_get_event(sd_dhcp_client *client); #endif