gcontini
2020-05-16 ea54b844fb8d41241db5cd2088319e226cfd8b68
tentative fix for issue #92 and #97

issue with network adapter NI_MAXHOST
2个文件已修改
14 ■■■■ 已修改文件
src/library/os/linux/network.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/os/network.hpp 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/os/linux/network.cpp
@@ -60,7 +60,7 @@
        if (ifa->ifa_addr == NULL || (ifa->ifa_flags & IFF_LOOPBACK) != 0) {
            continue;
        }
        string if_name(ifa->ifa_name, mstrnlen_s(ifa->ifa_name, NI_MAXHOST));
        string if_name(ifa->ifa_name, mstrnlen_s(ifa->ifa_name, LCC_ADAPTER_DESCRIPTION_LEN));
        // if_name_position = ifname_position(ifnames, ifa->ifa_name, if_num);
        // interface name not seen en advance
        OsAdapterInfo *currentAdapter;
@@ -68,7 +68,7 @@
        if (adapterByName.find(if_name) == adapterByName.end()) {
            OsAdapterInfo newAdapter;
            memset(&newAdapter, 0, sizeof(OsAdapterInfo));
            strncpy(&newAdapter.description[0], ifa->ifa_name, NI_MAXHOST);
            strncpy(&newAdapter.description[0], ifa->ifa_name, LCC_ADAPTER_DESCRIPTION_LEN);
            adapterByName[if_name] = newAdapter;
        }
        auto it = adapterByName.find(if_name);
src/library/os/network.hpp
@@ -17,9 +17,17 @@
typedef enum { IFACE_TYPE_ETHERNET, IFACE_TYPE_WIRELESS } IFACE_TYPE;
#ifdef __unix__
#include <netdb.h>
#define LCC_ADAPTER_DESCRIPTION_LEN NI_MAXHOST
#else
#include <iphlpapi.h>
#define LCC_ADAPTER_DESCRIPTION_LEN MAX_ADAPTER_DESCRIPTION_LENGTH
#endif
typedef struct {
    int id;
    char description[1024];
    char description[LCC_ADAPTER_DESCRIPTION_LEN + 1];
    unsigned char mac_address[8];
    unsigned char ipv4_address[4];
    IFACE_TYPE type;