From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/netprofm/list.c | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-)
diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c index de6f6869e3e..14cdc1a3a63 100644 --- a/dlls/netprofm/list.c +++ b/dlls/netprofm/list.c @@ -489,11 +489,16 @@ static HRESULT WINAPI network_GetConnectivity( FIXME( "%p, %p\n", iface, pConnectivity );
*pConnectivity = NLM_CONNECTIVITY_DISCONNECTED; - if (network->ipv4) - *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; - if (network->ipv6) - *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; - + if (network->connected_to_internet) + { + if (network->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + if (network->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; + } + else if (network->connected) + { + if (network->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + if (network->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_LOCALNETWORK; + } return S_OK; }
@@ -1350,8 +1355,16 @@ static HRESULT WINAPI list_manager_GetConnectivity(
LIST_FOR_EACH_ENTRY( network, &mgr->networks, struct network, entry ) { - if (network->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; - if (network->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; + if (network->connected_to_internet) + { + if (network->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + if (network->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; + } + else if (network->connected) + { + if (network->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + if (network->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_LOCALNETWORK; + } }
return S_OK; @@ -1591,11 +1604,16 @@ static HRESULT WINAPI connection_GetConnectivity( FIXME( "%p, %p\n", iface, pConnectivity );
*pConnectivity = NLM_CONNECTIVITY_DISCONNECTED; - if (connection->ipv4) - *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; - if (connection->ipv6) - *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; - + if (connection->connected_to_internet) + { + if (connection->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + if (connection->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_INTERNET; + } + else if (connection->connected) + { + if (connection->ipv4) *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + if (connection->ipv6) *pConnectivity |= NLM_CONNECTIVITY_IPV6_LOCALNETWORK; + } return S_OK; }