From 630551f6fd76af806d20c5fab1f7c156f0a654d7 Mon Sep 17 00:00:00 2001 From: SASANO Takayoshi Date: Wed, 7 Oct 2020 19:09:14 +0900 Subject: [PATCH 1/2] CNetworkInfo::getNetworkInterface() FreeBSD support modified IPv4 default routing information request code to support FreeBSD --- NetworkInfo.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/NetworkInfo.cpp b/NetworkInfo.cpp index 7df2d3c..3b17168 100644 --- a/NetworkInfo.cpp +++ b/NetworkInfo.cpp @@ -26,13 +26,13 @@ #include #include -#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) +#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) #include #include #include #include #include -#if defined(__OpenBSD__) || defined(__NetBSD__) +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) #include #include #include @@ -66,7 +66,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) ::strcpy((char*)info, "(address unknown)"); -#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) char* dflt = NULL; #if defined(__linux__) @@ -91,7 +91,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) ::fclose(fp); -#elif defined(__OpenBSD__) || defined(__NetBSD__) +#elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) const int mib[] = { CTL_NET, PF_ROUTE, @@ -99,7 +99,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) AF_INET, // IPv4 routing NET_RT_DUMP, 0, // show all routes -#if defined(__OpenBSD__) +#if defined(__OpenBSD__) || defined(__FreeBSD__) 0, // table id #endif }; @@ -126,7 +126,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) continue; #if defined(__OpenBSD__) struct sockaddr_in *sa = (struct sockaddr_in *)(p + rtm->rtm_hdrlen); -#elif defined(__NetBSD__) +#elif defined(__NetBSD__) || defined(__FreeBSD__) struct sockaddr_in *sa = (struct sockaddr_in *)(rtm + 1); #endif if (sa->sin_addr.s_addr == INADDR_ANY) { From 1f72bf16d85bc05c634654fb7f2d7aebfe46b256 Mon Sep 17 00:00:00 2001 From: SASANO Takayoshi Date: Sat, 10 Oct 2020 04:48:59 +0900 Subject: [PATCH 2/2] add OSX support to NetworkInfo.cpp (EXPERIMENTAL) --- NetworkInfo.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/NetworkInfo.cpp b/NetworkInfo.cpp index 3b17168..d21c780 100644 --- a/NetworkInfo.cpp +++ b/NetworkInfo.cpp @@ -26,13 +26,13 @@ #include #include -#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) +#if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) #include #include #include #include #include -#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) #include #include #include @@ -66,7 +66,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) ::strcpy((char*)info, "(address unknown)"); -#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) +#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__APPLE__) char* dflt = NULL; #if defined(__linux__) @@ -91,7 +91,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) ::fclose(fp); -#elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) +#elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) const int mib[] = { CTL_NET, PF_ROUTE, @@ -126,7 +126,7 @@ void CNetworkInfo::getNetworkInterface(unsigned char* info) continue; #if defined(__OpenBSD__) struct sockaddr_in *sa = (struct sockaddr_in *)(p + rtm->rtm_hdrlen); -#elif defined(__NetBSD__) || defined(__FreeBSD__) +#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__APPLE__) struct sockaddr_in *sa = (struct sockaddr_in *)(rtm + 1); #endif if (sa->sin_addr.s_addr == INADDR_ANY) {