along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <stdlib.h>
-#include <assert.h>
#include <errno.h>
#include <stdio.h>
-#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include "util.h"
-#include "socket-util.h"
#include "sd-event.h"
#include "event-util.h"
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,
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;
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;
}