[NETSTAT] Simplify some code; don't use exit(); call WSACleanup() on exit.
[reactos.git] / base / applications / network / netstat / netstat.h
1
2 /* Maximum string lengths for ASCII ip address and port names */
3 #define HOSTNAMELEN 256
4 #define PORTNAMELEN 256
5 #define ADDRESSLEN HOSTNAMELEN+PORTNAMELEN
6
7 /* command line options */
8 BOOL bNoOptions = FALSE; // print default
9 BOOL bDoShowAllCons = FALSE; // -a
10 BOOL bDoShowProcName = FALSE; // -b
11 BOOL bDoShowEthStats = FALSE; // -e
12 BOOL bDoShowNumbers = FALSE; // -n
13 BOOL bDoShowProtoCons = FALSE; // -p
14 BOOL bDoShowRouteTable = FALSE; // -r
15 BOOL bDoShowProtoStats = FALSE; // -s
16 BOOL bDoShowProcessId = FALSE; // -o
17 BOOL bDoDispSeqComp = FALSE; // -v
18 BOOL bLoopOutput = FALSE; // interval
19
20 /* Undocumented extended information structures available only on XP and higher */
21 typedef struct {
22 DWORD dwState; // state of the connection
23 DWORD dwLocalAddr; // address on local computer
24 DWORD dwLocalPort; // port number on local computer
25 DWORD dwRemoteAddr; // address on remote computer
26 DWORD dwRemotePort; // port number on remote computer
27 DWORD dwProcessId;
28 } MIB_TCPEXROW, *PMIB_TCPEXROW;
29
30 typedef struct {
31 DWORD dwNumEntries;
32 MIB_TCPEXROW table;
33 } MIB_TCPEXTABLE, *PMIB_TCPEXTABLE;
34
35 typedef struct {
36 DWORD dwLocalAddr; // address on local computer
37 DWORD dwLocalPort; // port number on local computer
38 DWORD dwProcessId;
39 } MIB_UDPEXROW, *PMIB_UDPEXROW;
40
41 typedef struct {
42 DWORD dwNumEntries;
43 MIB_UDPEXROW table;
44 } MIB_UDPEXTABLE, *PMIB_UDPEXTABLE;
45
46 /* function declarations */
47 VOID ShowIpStatistics(VOID);
48 VOID ShowIcmpStatistics(VOID);
49 VOID ShowTcpStatistics(VOID);
50 VOID ShowUdpStatistics(VOID);
51 VOID ShowEthernetStatistics(VOID);
52 BOOL ShowTcpTable(VOID);
53 BOOL ShowUdpTable(VOID);
54 PCHAR GetPortName(UINT Port, PCSTR Proto, CHAR Name[], INT NameLen);
55 PCHAR GetIpHostName(BOOL Local, UINT IpAddr, CHAR Name[], INT NameLen);