1677: Use the same signature for LinkAddr::addr on all platforms r=rtzoeller a=asomers

This should've been done as part of #1675

Co-authored-by: Alan Somers <asomers@gmail.com>
This commit is contained in:
bors[bot] 2022-03-14 13:05:45 +00:00 committed by GitHub
commit 445a4387ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 11 deletions

View File

@ -81,6 +81,7 @@ This project adheres to [Semantic Versioning](https://semver.org/).
(#[1642](https://github.com/nix-rust/nix/pull/1642))
- Fixed a panic in `LinkAddr::addr`. That function now returns an `Option`.
(#[1675](https://github.com/nix-rust/nix/pull/1675))
(#[1677](https://github.com/nix-rust/nix/pull/1677))
### Removed

View File

@ -1351,28 +1351,32 @@ mod datalink {
}
/// Physical-layer address (MAC)
pub fn addr(&self) -> [u8; 6] {
[
// Returns an Option just for cross-platform compatibility
pub fn addr(&self) -> Option<[u8; 6]> {
Some([
self.0.sll_addr[0] as u8,
self.0.sll_addr[1] as u8,
self.0.sll_addr[2] as u8,
self.0.sll_addr[3] as u8,
self.0.sll_addr[4] as u8,
self.0.sll_addr[5] as u8,
]
])
}
}
impl fmt::Display for LinkAddr {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let addr = self.addr();
write!(f, "{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}",
addr[0],
addr[1],
addr[2],
addr[3],
addr[4],
addr[5])
if let Some(addr) = self.addr() {
write!(f, "{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}",
addr[0],
addr[1],
addr[2],
addr[3],
addr[4],
addr[5])
} else {
Ok(())
}
}
}
}