--- src/VBox/Main/ConsoleImpl2.cpp.orig +++ src/VBox/Main/ConsoleImpl2.cpp @@ -86,6 +86,7 @@ # include # include # include +# include #endif #if defined(RT_OS_WINDOWS) && defined(VBOX_WITH_NETFLT) @@ -2495,6 +2496,33 @@ DECLCALLBACK(int) Console::configConstru } else Log(("Failed to open wireless socket\n")); +# elif defined(RT_OS_FREEBSD) + int iSock = socket(AF_INET, SOCK_DGRAM, 0); + if (iSock >= 0) + { + struct ieee80211req ireq; + uint8_t data[32]; + + (void) memset(&ireq, 0, sizeof(ireq)); + (void) strncpy(ireq.i_name, pszHifName, sizeof(ireq.i_name)); + ireq.i_type = IEEE80211_IOC_SSID; + ireq.i_val = -1; + ireq.i_data = data; + ireq.i_len = sizeof(data); + + bool fSharedMacOnWire = ioctl(iSock, SIOCG80211, &ireq) >= 0; + close(iSock); + if (fSharedMacOnWire) + { + rc = CFGMR3InsertInteger(pCfg, "SharedMacOnWire", true); + RC_CHECK(); + Log(("Set SharedMacOnWire\n")); + } + else + Log(("Failed to get wireless name\n")); + } + else + Log(("Failed to open wireless socket\n")); # elif defined(RT_OS_WINDOWS) # define DEVNAME_PREFIX L"\\\\.\\" /* we are getting the medium type via IOCTL_NDIS_QUERY_GLOBAL_STATS Io Control