Skip to content

Commit

Permalink
More logging.
Browse files Browse the repository at this point in the history
  • Loading branch information
reitermarkus committed Dec 23, 2023
1 parent 3ed42d0 commit c07855f
Showing 1 changed file with 47 additions and 43 deletions.
90 changes: 47 additions & 43 deletions edge-dhcp/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,58 +42,62 @@ impl<'a> ServerOptions<'a> {
}
});

if let Some(message_type) = message_type {
let server_identifier = request.options.iter().find_map(|option| {
if let DhcpOption::ServerIdentifier(ip) = option {
Some(ip)
} else {
None
}
});
let message_type = if let Some(message_type) = message_type {
message_type
} else {
info!("Ignoring DHCP packet, no message type found: {request:?}");
return None;
};

if server_identifier == Some(self.ip)
|| server_identifier.is_none() && matches!(message_type, MessageType::Discover)
{
info!("Received {message_type} request: {request:?}");
let server_identifier = request.options.iter().find_map(|option| {
if let DhcpOption::ServerIdentifier(ip) = option {
Some(ip)
} else {
None
}
});

let request = match message_type {
MessageType::Discover => {
let requested_ip = request.options.iter().find_map(|option| {
if server_identifier == Some(self.ip)
|| server_identifier.is_none() && matches!(message_type, MessageType::Discover)
{
info!("Received {message_type} request: {request:?}");

let 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,
};

return request;
} else {
info!("Ignoring {message_type} request: {request:?}");
}
})
.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,
};

return request;
}

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

Expand Down

0 comments on commit c07855f

Please sign in to comment.