X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-dhcp%2Fdhcp-client.c;h=fe410676003541fdf36611defb1ab17d5c87e880;hp=01d406c27b3cc946958b8f45c95ccb078a0c2705;hb=3b349af69aab440a625fedb21377e2bdc461098e;hpb=d2fe46b514ef3f6e0c0eb16b2d853c6dd6fa1808 diff --git a/src/libsystemd-dhcp/dhcp-client.c b/src/libsystemd-dhcp/dhcp-client.c index 01d406c27..fe4106760 100644 --- a/src/libsystemd-dhcp/dhcp-client.c +++ b/src/libsystemd-dhcp/dhcp-client.c @@ -36,10 +36,10 @@ struct DHCPLease { uint32_t t1; uint32_t t2; uint32_t lifetime; - uint32_t address; - uint32_t server_address; - uint32_t subnet_mask; - uint32_t router; + be32_t address; + be32_t server_address; + be32_t subnet_mask; + be32_t router; }; typedef struct DHCPLease DHCPLease; @@ -54,7 +54,7 @@ struct sd_dhcp_client { sd_event_source *receive_message; uint8_t *req_opts; size_t req_opts_size; - uint32_t last_addr; + be32_t last_addr; struct ether_addr mac_addr; uint32_t xid; usec_t start_time; @@ -897,6 +897,9 @@ static int client_receive_raw_message(sd_event_source *s, int fd, client->receive_message = sd_event_source_unref(client->receive_message); } + + r = 0; + break; case DHCP_STATE_INIT: @@ -910,7 +913,7 @@ static int client_receive_raw_message(sd_event_source *s, int fd, } error: - if (r < 0) + if (r < 0 || r == DHCP_EVENT_NO_LEASE) return client_stop(client, r); return 0;