Hans Leidekker : nsiproxy.sys: Support media connect state on Linux.

Alexandre Julliard julliard at winehq.org
Tue Aug 9 15:19:54 CDT 2022


Module: wine
Branch: master
Commit: fa8a5692c28bd982cf90306383d6bd69f4da204e
URL:    https://gitlab.winehq.org/wine/wine/-/commit/fa8a5692c28bd982cf90306383d6bd69f4da204e

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Mon Aug  8 11:25:36 2022 +0200

nsiproxy.sys: Support media connect state on Linux.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53499

---

 dlls/nsiproxy.sys/ndis.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/dlls/nsiproxy.sys/ndis.c b/dlls/nsiproxy.sys/ndis.c
index 667d399b0cb..c34630d8aec 100644
--- a/dlls/nsiproxy.sys/ndis.c
+++ b/dlls/nsiproxy.sys/ndis.c
@@ -333,7 +333,23 @@ static void ifinfo_fill_dynamic( struct if_entry *entry, struct nsi_ndis_ifinfo_
     data->flags.unk = 0;
     data->flags.not_media_conn = 0;
     data->flags.unk2 = 0;
+#ifdef __linux__
+    {
+        char filename[64];
+        FILE *fp;
+
+        sprintf( filename, "/sys/class/net/%s/carrier", entry->if_unix_name );
+        if (!(fp = fopen( filename, "r" ))) data->media_conn_state = MediaConnectStateUnknown;
+        else
+        {
+            if (fgetc( fp ) == '1') data->media_conn_state = MediaConnectStateConnected;
+            else data->media_conn_state = MediaConnectStateDisconnected;
+            fclose( fp );
+        }
+    }
+#else
     data->media_conn_state = MediaConnectStateConnected;
+#endif
     data->unk = 0;
 
     if (!ioctl( fd, SIOCGIFMTU, &req )) data->mtu = req.ifr_mtu;




More information about the wine-cvs mailing list