| | |
| | | } |
| | | |
| | | for (auto &it : adapters) { |
| | | unsigned int k, data_len, data_byte; |
| | | array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> identifier; |
| | | unsigned int k, data_len; |
| | | 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); |
| | | } |
| | | |
| | |
| | | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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()); |