netlink: fix an error in formatting MAC address

When formatting MAC address, we should left-padding zeros instead
of right-padding.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
This commit is contained in:
Liu Jiang
2020-05-31 20:50:52 +08:00
parent de23ec1943
commit f5cfd412e4

View File

@@ -104,11 +104,11 @@ pub unsafe fn format_address(addr: *const u8, len: u32) -> Result<String> {
let mut i = 1; let mut i = 1;
let mut p = addr as i64; let mut p = addr as i64;
a = format!("{:0<2X}", *(p as *const u8)); a = format!("{:0>2X}", *(p as *const u8));
while i < len { while i < len {
p += 1; p += 1;
i += 1; i += 1;
a.push_str(format!(":{:0<2X}", *(p as *const u8)).as_str()); a.push_str(format!(":{:0>2X}", *(p as *const u8)).as_str());
} }
return Ok(a); return Ok(a);
@@ -188,7 +188,6 @@ mod tests {
parse_mac_addr("FF:FF:FF:FF:FF").unwrap_err(); parse_mac_addr("FF:FF:FF:FF:FF").unwrap_err();
} }
/*
#[test] #[test]
fn test_format_address() { fn test_format_address() {
let buf = [1u8, 2u8, 3u8, 4u8]; let buf = [1u8, 2u8, 3u8, 4u8];
@@ -199,5 +198,4 @@ mod tests {
let addr = unsafe { format_address(&buf as *const u8, 6).unwrap() }; let addr = unsafe { format_address(&buf as *const u8, 6).unwrap() };
assert_eq!(addr, "01:02:03:04:05:06"); assert_eq!(addr, "01:02:03:04:05:06");
} }
*/
} }