From d2fe46b514ef3f6e0c0eb16b2d853c6dd6fa1808 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Mon, 9 Dec 2013 23:43:32 +0200 Subject: [PATCH 1/1] dhcp: Add function to free DHCP client data --- src/libsystemd-dhcp/dhcp-client.c | 13 +++++++++++++ src/systemd/sd-dhcp-client.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/libsystemd-dhcp/dhcp-client.c b/src/libsystemd-dhcp/dhcp-client.c index 03a846df3..01d406c27 100644 --- a/src/libsystemd-dhcp/dhcp-client.c +++ b/src/libsystemd-dhcp/dhcp-client.c @@ -961,6 +961,19 @@ int sd_dhcp_client_stop(sd_dhcp_client *client) return client_stop(client, DHCP_EVENT_STOP); } +sd_dhcp_client *sd_dhcp_client_free(sd_dhcp_client *client) +{ + assert_return(client, NULL); + + sd_dhcp_client_stop(client); + + sd_event_unref(client->event); + free(client->req_opts); + free(client); + + return NULL; +} + sd_dhcp_client *sd_dhcp_client_new(sd_event *event) { sd_dhcp_client *client; diff --git a/src/systemd/sd-dhcp-client.h b/src/systemd/sd-dhcp-client.h index 395c12d25..fdc5b2dcb 100644 --- a/src/systemd/sd-dhcp-client.h +++ b/src/systemd/sd-dhcp-client.h @@ -57,6 +57,7 @@ int sd_dhcp_client_get_router(sd_dhcp_client *client, struct in_addr *addr); 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); #endif -- 2.30.2