1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-27 10:25:37 +03:00

Merge pull request #32372 from yuwata/sd-radv-trivial-cleanups

sd-radv: several trivial cleanups
This commit is contained in:
Luca Boccassi 2024-04-20 15:24:02 +02:00 committed by GitHub
commit 8f0de5c433
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 51 deletions

View File

@ -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;

View File

@ -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)

View File

@ -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) {