Module: wine Branch: master Commit: 01fb4b5e7a1823233fc28648eaaeb3647323ddbf URL: https://gitlab.winehq.org/wine/wine/-/commit/01fb4b5e7a1823233fc28648eaaeb36...
Author: Gabriel Ivăncescu gabrielopcode@gmail.com Date: Tue Oct 18 19:40:05 2022 +0300
netprofm: Handle non-internet connectivity.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com
---
dlls/netprofm/list.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c index 254cf60c263..e22609dcaf6 100644 --- a/dlls/netprofm/list.c +++ b/dlls/netprofm/list.c @@ -480,9 +480,17 @@ static HRESULT WINAPI network_GetConnectivity( INetwork *iface, NLM_CONNECTIVITY *pConnectivity ) { + struct network *network = impl_from_INetwork( iface ); + FIXME( "%p, %p\n", iface, pConnectivity );
- *pConnectivity = NLM_CONNECTIVITY_IPV4_INTERNET; + *pConnectivity = NLM_CONNECTIVITY_DISCONNECTED; + + if (network->connected_to_internet) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + else if (network->connected) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + return S_OK; }
@@ -1330,9 +1338,21 @@ static HRESULT WINAPI list_manager_GetConnectivity( INetworkListManager *iface, NLM_CONNECTIVITY *pConnectivity ) { + struct list_manager *mgr = impl_from_INetworkListManager( iface ); + struct network *network; + FIXME( "%p, %p\n", iface, pConnectivity );
- *pConnectivity = NLM_CONNECTIVITY_IPV4_INTERNET; + *pConnectivity = NLM_CONNECTIVITY_DISCONNECTED; + + LIST_FOR_EACH_ENTRY( network, &mgr->networks, struct network, entry ) + { + if (network->connected_to_internet) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + else if (network->connected) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + } + return S_OK; }
@@ -1565,9 +1585,17 @@ static HRESULT WINAPI connection_GetConnectivity( INetworkConnection *iface, NLM_CONNECTIVITY *pConnectivity ) { + struct connection *connection = impl_from_INetworkConnection( iface ); + FIXME( "%p, %p\n", iface, pConnectivity );
- *pConnectivity = NLM_CONNECTIVITY_IPV4_INTERNET; + *pConnectivity = NLM_CONNECTIVITY_DISCONNECTED; + + if (connection->connected_to_internet) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_INTERNET; + else if (connection->connected) + *pConnectivity |= NLM_CONNECTIVITY_IPV4_LOCALNETWORK; + return S_OK; }