From 85d97f05f6f8e4c1d73cd2bb096806839d16f3b0 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 31 10月 2020 10:27:16 +0800 Subject: [PATCH] Pc identifier Mac address issues #108 & #107 --- src/library/hw_identifier/ethernet.cpp | 20 ++++++++++++++------ 1 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/library/hw_identifier/ethernet.cpp b/src/library/hw_identifier/ethernet.cpp index 55b5197..fe68a51 100644 --- a/src/library/hw_identifier/ethernet.cpp +++ b/src/library/hw_identifier/ethernet.cpp @@ -33,17 +33,25 @@ for (auto &it : adapters) { unsigned int k, data_len; - array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> identifier; + array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> identifier = {}; data_len = use_ip ? sizeof(os::OsAdapterInfo::ipv4_address) : sizeof(os::OsAdapterInfo::mac_address); - - for (k = 0; k < HW_IDENTIFIER_PROPRIETARY_DATA; k++) { - if (k < data_len) { - identifier[k] = use_ip ? it.ipv4_address[k] : it.mac_address[k]; + bool all_zero = true; + for (k = 0; k < data_len && all_zero;k++) { + all_zero = all_zero && ((use_ip ? it.ipv4_address[k] : it.mac_address[k]) == 0); + } + if (all_zero) { + continue; + } + for (k = 1; k < HW_IDENTIFIER_PROPRIETARY_DATA; k++) { + if ((k - 1) < data_len) { + identifier[k] = + use_ip ? it.ipv4_address[k - 1] : it.mac_address[k - 1]; } else { identifier[k] = 42; } } - identifier[0] = identifier[0] & 0x1F; + //identifier[0] = identifier[0] & 0x1F; + identifier[0] = 0; data.push_back(identifier); } -- Gitblit v1.9.1