void* userdata;
};
-static void ipv4ll_set_state(sd_ipv4ll *ll, IPv4LLState st, int reset_counter) {
+static void ipv4ll_set_state(sd_ipv4ll *ll, IPv4LLState st, bool reset_counter) {
assert(ll);
assert(st < _IPV4LL_STATE_MAX);
if (ll) {
ll->claimed_address = 0;
- ipv4ll_set_state (ll, IPV4LL_STATE_INIT, 1);
+ ipv4ll_set_state (ll, IPV4LL_STATE_INIT, true);
}
return ll;
if (ll->state == IPV4LL_STATE_INIT) {
log_ipv4ll(ll, "PROBE");
- ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_PROBE, 1);
+ ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_PROBE, true);
ipv4ll_set_next_wakeup(ll, 0, PROBE_WAIT);
} else if (ll->state == IPV4LL_STATE_WAITING_PROBE ||
goto out;
}
- ipv4ll_set_state(ll, IPV4LL_STATE_PROBING, 0);
+ ipv4ll_set_state(ll, IPV4LL_STATE_PROBING, false);
ipv4ll_set_next_wakeup(ll, PROBE_MIN, (PROBE_MAX-PROBE_MIN));
goto out;
}
- ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_ANNOUNCE, 1);
+ ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_ANNOUNCE, true);
ipv4ll_set_next_wakeup(ll, ANNOUNCE_WAIT, 0);
goto out;
}
- ipv4ll_set_state(ll, IPV4LL_STATE_ANNOUNCING, 0);
+ ipv4ll_set_state(ll, IPV4LL_STATE_ANNOUNCING, false);
ipv4ll_set_next_wakeup(ll, ANNOUNCE_INTERVAL, 0);
} else if ((ll->state == IPV4LL_STATE_ANNOUNCING &&
ll->iteration >= ANNOUNCE_NUM-1)) {
- ipv4ll_set_state(ll, IPV4LL_STATE_RUNNING, 0);
+ ipv4ll_set_state(ll, IPV4LL_STATE_RUNNING, false);
ll->next_wakeup_valid = 0;
}
ll->conflict++;
ll->defend_window = 0;
- ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_PROBE, 1);
+ ipv4ll_set_state(ll, IPV4LL_STATE_WAITING_PROBE, true);
if (ll->conflict >= MAX_CONFLICTS) {
log_ipv4ll(ll, "MAX_CONFLICTS");
if (r < (int) sizeof(struct ether_arp))
goto out;
- if (IN_SET(ll->state, IPV4LL_STATE_ANNOUNCING, IPV4LL_STATE_RUNNING)) {
-
+ switch (ll->state) {
+ case IPV4LL_STATE_ANNOUNCING:
+ case IPV4LL_STATE_RUNNING:
if (ipv4ll_arp_conflict(ll, &packet)) {
usec_t ts;
}
}
- } else if (IN_SET(ll->state, IPV4LL_STATE_WAITING_PROBE,
- IPV4LL_STATE_PROBING,
- IPV4LL_STATE_WAITING_ANNOUNCE)) {
- if (ipv4ll_arp_probe_conflict(ll, &packet)) {
- r = ipv4ll_on_conflict(ll);
- if (r < 0)
- goto out;
- }
+ break;
+ case IPV4LL_STATE_WAITING_PROBE:
+ case IPV4LL_STATE_PROBING:
+ case IPV4LL_STATE_WAITING_ANNOUNCE:
+ if (ipv4ll_arp_probe_conflict(ll, &packet)) {
+ r = ipv4ll_on_conflict(ll);
+ if (r < 0)
+ goto out;
+ }
+
+ break;
+ default:
+ assert_not_reached("Invalid state.");
}
out:
safe_close(ll->fd);
ll->fd = r;
- ipv4ll_set_state (ll, IPV4LL_STATE_INIT, 1);
+ ipv4ll_set_state (ll, IPV4LL_STATE_INIT, true);
r = sd_event_add_io(ll->event, &ll->receive_message, ll->fd,
EPOLLIN, ipv4ll_on_packet, ll);
int sd_ipv4ll_stop(sd_ipv4ll *ll) {
ipv4ll_stop(ll, IPV4LL_EVENT_STOP);
if (ll)
- ipv4ll_set_state(ll, IPV4LL_STATE_STOPPED, 1);
+ ipv4ll_set_state(ll, IPV4LL_STATE_STOPPED, true);
return 0;
}