gcontini
2020-11-29 ecd2f38f3d9c8b28aaa4c47bc09789f11dcaa7f7
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);
   }
@@ -54,7 +62,7 @@
Ethernet::~Ethernet() {}
LCC_API_IDENTIFICATION_STRATEGY Ethernet::identification_strategy() const {
LCC_API_HW_IDENTIFICATION_STRATEGY Ethernet::identification_strategy() const {
   return use_ip ? STRATEGY_IP_ADDRESS : STRATEGY_ETHERNET;
}
@@ -63,7 +71,7 @@
   FUNCTION_RETURN result = generate_ethernet_pc_id(data, use_ip);
   vector<HwIdentifier> identifiers;
   if (result == FUNC_RET_OK) {
      identifiers.resize(data.size());
      identifiers.reserve(data.size());
      for (auto &it : data) {
         HwIdentifier pc_id;
         pc_id.set_identification_strategy(identification_strategy());