From d97e292a5da5cb74f7a7c901e882fca022c387a4 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sun, 13 Mar 2022 22:57:00 -0600 Subject: Use the same signature for LinkAddr::addr on all platforms This should've been done as part of #1675 --- src/sys/socket/addr.rs | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src/sys/socket/addr.rs') 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(()) + } } } } -- cgit v1.2.3