summaryrefslogtreecommitdiff
path: root/src/sys/socket
diff options
context:
space:
mode:
authorAlan Somers <asomers@gmail.com>2022-03-13 22:57:00 -0600
committerAlan Somers <asomers@gmail.com>2022-03-13 22:57:00 -0600
commitd97e292a5da5cb74f7a7c901e882fca022c387a4 (patch)
tree4a04ecd2b4957eaf08440f372815f9b4f3a0815d /src/sys/socket
parent9e63cb732384c6039c369db85cfbbd45a2ddd5e9 (diff)
downloadnix-d97e292a5da5cb74f7a7c901e882fca022c387a4.zip
Use the same signature for LinkAddr::addr on all platforms
This should've been done as part of #1675
Diffstat (limited to 'src/sys/socket')
-rw-r--r--src/sys/socket/addr.rs26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/sys/socket/addr.rs b/src/sys/socket/addr.rs
index 9fd9e30a..7803ec76 100644
--- a/src/sys/socket/addr.rs
+++ b/src/sys/socket/addr.rs
@@ -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(())
+ }
}
}
}