X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-network%2Ftest-dhcp-client.c;h=8e88641430389404e8a647196a1c9db9cf12a2ea;hb=76f282c636f33b41bdbc93a5b2945945ee0029bf;hp=a3d69f338c2b28b22ba4e8f0502c815d3b2b4f20;hpb=5bac5235934fabe5a3e6a9d47f4812f81034c427;p=elogind.git diff --git a/src/libsystemd-network/test-dhcp-client.c b/src/libsystemd-network/test-dhcp-client.c index a3d69f338..8e8864143 100644 --- a/src/libsystemd-network/test-dhcp-client.c +++ b/src/libsystemd-network/test-dhcp-client.c @@ -218,7 +218,13 @@ int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link, int dhcp_network_bind_udp_socket(be32_t address, uint16_t port) { - return 0; + int fd; + + fd = socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, 0); + if (fd < 0) + return -errno; + + return fd; } int dhcp_network_send_udp_socket(int s, be32_t address, uint16_t port, @@ -474,8 +480,7 @@ static void test_addr_acq(sd_event *e) { assert_se(sd_dhcp_client_set_index(client, 42) >= 0); assert_se(sd_dhcp_client_set_mac(client, mac_addr, ETH_ALEN, ARPHRD_ETHER) >= 0); - assert_se(sd_dhcp_client_set_callback(client, test_addr_acq_acquired, e) - >= 0); + assert_se(sd_dhcp_client_set_callback(client, test_addr_acq_acquired, e) >= 0); callback_recv = test_addr_acq_recv_discover; @@ -516,5 +521,12 @@ int main(int argc, char *argv[]) { test_discover_message(e); test_addr_acq(e); +#ifdef VALGRIND + /* Make sure the async_close thread has finished. + * valgrind would report some of the phread_* structures + * as not cleaned up properly. */ + sleep(1); +#endif + return 0; }