Skip to content

Commit

Permalink
Use early return.
Browse files Browse the repository at this point in the history
  • Loading branch information
reitermarkus committed Dec 23, 2023
1 parent c07855f commit 7ab8158
Showing 1 changed file with 31 additions and 34 deletions.
65 changes: 31 additions & 34 deletions edge-dhcp/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ impl<'a> ServerOptions<'a> {
let message_type = if let Some(message_type) = message_type {
message_type
} else {
info!("Ignoring DHCP packet, no message type found: {request:?}");
info!("Ignoring DHCP request, no message type found: {request:?}");
return None;
};

Expand All @@ -57,48 +57,45 @@ impl<'a> ServerOptions<'a> {
}
});

if server_identifier == Some(self.ip)
|| server_identifier.is_none() && matches!(message_type, MessageType::Discover)
if !(server_identifier == Some(self.ip)
|| server_identifier.is_none() && matches!(message_type, MessageType::Discover))
{
info!("Received {message_type} request: {request:?}");
info!("Ignoring {message_type} request, not addressed to this server: {request:?}");
return None;
}

let request = match message_type {
MessageType::Discover => {
let requested_ip = request.options.iter().find_map(|option| {
info!("Received {message_type} request: {request:?}");
match message_type {
MessageType::Discover => {
let requested_ip = request.options.iter().find_map(|option| {
if let DhcpOption::RequestedIpAddress(ip) = option {
Some(ip)
} else {
None
}
});

Some(Action::Discover(requested_ip, &request.chaddr))
}
MessageType::Request => {
let ip = request
.options
.iter()
.find_map(|option| {
if let DhcpOption::RequestedIpAddress(ip) = option {
Some(ip)
} else {
None
}
});

Some(Action::Discover(requested_ip, &request.chaddr))
}
MessageType::Request => {
let ip = request
.options
.iter()
.find_map(|option| {
if let DhcpOption::RequestedIpAddress(ip) = option {
Some(ip)
} else {
None
}
})
.unwrap_or(request.ciaddr);

Some(Action::Request(ip, &request.chaddr))
}
MessageType::Release => Some(Action::Release(request.yiaddr, &request.chaddr)),
MessageType::Decline => Some(Action::Decline(request.yiaddr, &request.chaddr)),
_ => None,
};
})
.unwrap_or(request.ciaddr);

return request;
Some(Action::Request(ip, &request.chaddr))
}
MessageType::Release => Some(Action::Release(request.yiaddr, &request.chaddr)),
MessageType::Decline => Some(Action::Decline(request.yiaddr, &request.chaddr)),
_ => None,
}

info!("Ignoring {message_type} request: {request:?}");
None
}

pub fn offer(
Expand Down

0 comments on commit 7ab8158

Please sign in to comment.