netstat: Fix compilation on systems that don't support nameless unions.

Francois Gouget fgouget at free.fr
Sat Jan 5 09:17:30 CST 2013


---
 programs/netstat/netstat.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/programs/netstat/netstat.c b/programs/netstat/netstat.c
index a3f584c..ade7c52 100644
--- a/programs/netstat/netstat.c
+++ b/programs/netstat/netstat.c
@@ -24,6 +24,12 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(netstat);
 
+#ifdef NONAMELESSUNION
+# define U(x)  (x).u
+#else
+# define U(x)  (x)
+#endif
+
 static const WCHAR ipW[] = {'I', 'P', 0};
 static const WCHAR ipv6W[] = {'I', 'P', 'v', '6', 0};
 static const WCHAR icmpW[] = {'I', 'C', 'M', 'P', 0};
@@ -178,9 +184,9 @@ static void NETSTAT_tcp_table(void)
 
     for (i = 0; i < table->dwNumEntries; i++)
     {
-        if ((table->table[i].dwState ==  MIB_TCP_STATE_CLOSE_WAIT) ||
-            (table->table[i].dwState ==  MIB_TCP_STATE_ESTAB) ||
-            (table->table[i].dwState ==  MIB_TCP_STATE_TIME_WAIT))
+        if ((U(table->table[i]).dwState ==  MIB_TCP_STATE_CLOSE_WAIT) ||
+            (U(table->table[i]).dwState ==  MIB_TCP_STATE_ESTAB) ||
+            (U(table->table[i]).dwState ==  MIB_TCP_STATE_TIME_WAIT))
         {
             NETSTAT_host_name(table->table[i].dwLocalAddr, HostIp);
             NETSTAT_port_name(table->table[i].dwLocalPort, HostPort);
@@ -189,7 +195,7 @@ static void NETSTAT_tcp_table(void)
 
             sprintfW(Host, fmtcolon, HostIp, HostPort);
             sprintfW(Remote, fmtcolon, RemoteIp, RemotePort);
-            NETSTAT_wprintf(fmttcpout, tcpW, Host, Remote, NETSTAT_load_message(table->table[i].dwState));
+            NETSTAT_wprintf(fmttcpout, tcpW, Host, Remote, NETSTAT_load_message(U(table->table[i]).dwState));
         }
     }
     HeapFree(GetProcessHeap(), 0, table);
-- 
1.7.10.4



More information about the wine-patches mailing list