mirror of
https://github.com/systemd/systemd.git
synced 2025-03-09 12:58:26 +03:00
Merge pull request #32372 from yuwata/sd-radv-trivial-cleanups
sd-radv: several trivial cleanups
This commit is contained in:
commit
8f0de5c433
@ -79,11 +79,10 @@
|
||||
/* Pref64 option type (RFC8781, section 4) */
|
||||
#define RADV_OPT_PREF64 38
|
||||
|
||||
enum RAdvState {
|
||||
typedef enum RAdvState {
|
||||
RADV_STATE_IDLE = 0,
|
||||
RADV_STATE_ADVERTISING = 1,
|
||||
};
|
||||
typedef enum RAdvState RAdvState;
|
||||
} RAdvState;
|
||||
|
||||
struct sd_radv_opt_dns {
|
||||
uint8_t type;
|
||||
|
@ -384,11 +384,8 @@ int sd_radv_send(sd_radv *ra) {
|
||||
int sd_radv_stop(sd_radv *ra) {
|
||||
int r;
|
||||
|
||||
if (!ra)
|
||||
return 0;
|
||||
|
||||
if (ra->state == RADV_STATE_IDLE)
|
||||
return 0;
|
||||
if (!sd_radv_is_running(ra))
|
||||
return 0; /* Already stopped. */
|
||||
|
||||
log_radv(ra, "Stopping IPv6 Router Advertisement daemon");
|
||||
|
||||
@ -441,8 +438,8 @@ int sd_radv_start(sd_radv *ra) {
|
||||
assert_return(ra->event, -EINVAL);
|
||||
assert_return(ra->ifindex > 0, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return 0;
|
||||
if (sd_radv_is_running(ra))
|
||||
return 0; /* Already started. */
|
||||
|
||||
r = radv_setup_recv_event(ra);
|
||||
if (r < 0)
|
||||
@ -470,13 +467,10 @@ int sd_radv_start(sd_radv *ra) {
|
||||
|
||||
int sd_radv_set_ifindex(sd_radv *ra, int ifindex) {
|
||||
assert_return(ra, -EINVAL);
|
||||
assert_return(!sd_radv_is_running(ra), -EBUSY);
|
||||
assert_return(ifindex > 0, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return -EBUSY;
|
||||
|
||||
ra->ifindex = ifindex;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -520,9 +514,6 @@ int sd_radv_set_link_local_address(sd_radv *ra, const struct in6_addr *addr) {
|
||||
int sd_radv_set_mac(sd_radv *ra, const struct ether_addr *mac_addr) {
|
||||
assert_return(ra, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return -EBUSY;
|
||||
|
||||
if (mac_addr)
|
||||
ra->mac_addr = *mac_addr;
|
||||
else
|
||||
@ -592,31 +583,20 @@ int sd_radv_set_preference(sd_radv *ra, uint8_t preference) {
|
||||
int sd_radv_set_home_agent_information(sd_radv *ra, int home_agent) {
|
||||
assert_return(ra, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return -EBUSY;
|
||||
|
||||
SET_FLAG(ra->flags, ND_RA_FLAG_HOME_AGENT, home_agent);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sd_radv_set_home_agent_preference(sd_radv *ra, uint16_t preference) {
|
||||
assert_return(ra, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return -EBUSY;
|
||||
|
||||
ra->home_agent.nd_opt_home_agent_info_preference = htobe16(preference);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sd_radv_set_home_agent_lifetime(sd_radv *ra, uint64_t lifetime_usec) {
|
||||
assert_return(ra, -EINVAL);
|
||||
|
||||
if (ra->state != RADV_STATE_IDLE)
|
||||
return -EBUSY;
|
||||
|
||||
if (lifetime_usec > RADV_HOME_AGENT_MAX_LIFETIME_USEC)
|
||||
return -EINVAL;
|
||||
|
||||
@ -684,7 +664,7 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
|
||||
log_radv(ra, "Added prefix %s", addr_p);
|
||||
}
|
||||
|
||||
if (ra->state == RADV_STATE_IDLE)
|
||||
if (!sd_radv_is_running(ra))
|
||||
return 0;
|
||||
|
||||
if (ra->ra_sent == 0)
|
||||
@ -780,7 +760,7 @@ int sd_radv_add_route_prefix(sd_radv *ra, sd_radv_route_prefix *p) {
|
||||
log_radv(ra, "Added route prefix %s", strna(addr_p));
|
||||
}
|
||||
|
||||
if (ra->state == RADV_STATE_IDLE)
|
||||
if (!sd_radv_is_running(ra))
|
||||
return 0;
|
||||
|
||||
if (ra->ra_sent == 0)
|
||||
@ -852,7 +832,7 @@ int sd_radv_add_pref64_prefix(sd_radv *ra, sd_radv_pref64_prefix *p) {
|
||||
log_radv(ra, "Added PREF64 prefix %s", strna(addr_p));
|
||||
}
|
||||
|
||||
if (ra->state == RADV_STATE_IDLE)
|
||||
if (!sd_radv_is_running(ra))
|
||||
return 0;
|
||||
|
||||
if (ra->ra_sent == 0)
|
||||
|
@ -627,9 +627,6 @@ static int radv_configure(Link *link) {
|
||||
}
|
||||
|
||||
int radv_update_mac(Link *link) {
|
||||
bool restart;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
|
||||
if (!link->radv)
|
||||
@ -638,23 +635,7 @@ int radv_update_mac(Link *link) {
|
||||
if (link->hw_addr.length != ETH_ALEN)
|
||||
return 0;
|
||||
|
||||
restart = sd_radv_is_running(link->radv);
|
||||
|
||||
r = sd_radv_stop(link->radv);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_radv_set_mac(link->radv, &link->hw_addr.ether);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (restart) {
|
||||
r = sd_radv_start(link->radv);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return sd_radv_set_mac(link->radv, &link->hw_addr.ether);
|
||||
}
|
||||
|
||||
static int radv_is_ready_to_configure(Link *link) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user