[NETSTAT] Formatting; use _wsystem() call; do not hardcode buffer lengths.

This commit is contained in:
Hermès Bélusca-Maïto 2019-06-29 17:05:43 +02:00
parent f6f66fa987
commit ab7dc56d6c
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
2 changed files with 40 additions and 41 deletions

View file

@ -176,8 +176,7 @@ BOOL DisplayOutput(VOID)
if (bDoShowRouteTable) if (bDoShowRouteTable)
{ {
/* mingw doesn't have lib for _tsystem */ if (_wsystem(L"route print") == -1)
if (system("route print") == -1)
{ {
ConResPuts(StdErr, IDS_ERROR_ROUTE); ConResPuts(StdErr, IDS_ERROR_ROUTE);
return EXIT_FAILURE; return EXIT_FAILURE;
@ -458,8 +457,8 @@ VOID ShowTcpTable(VOID)
|| (tcpTable->table[i].dwState == MIB_TCP_STATE_TIME_WAIT)) || (tcpTable->table[i].dwState == MIB_TCP_STATE_TIME_WAIT))
{ {
/* I've split this up so it's easier to follow */ /* I've split this up so it's easier to follow */
GetIpHostName(TRUE, tcpTable->table[i].dwLocalAddr, HostIp, HOSTNAMELEN); GetIpHostName(TRUE, tcpTable->table[i].dwLocalAddr, HostIp, sizeof(HostIp));
GetPortName(tcpTable->table[i].dwLocalPort, "tcp", HostPort, PORTNAMELEN); GetPortName(tcpTable->table[i].dwLocalPort, "tcp", HostPort, sizeof(HostPort));
sprintf(Host, "%s:%s", HostIp, HostPort); sprintf(Host, "%s:%s", HostIp, HostPort);
if (tcpTable->table[i].dwState == MIB_TCP_STATE_LISTEN) if (tcpTable->table[i].dwState == MIB_TCP_STATE_LISTEN)
@ -468,8 +467,8 @@ VOID ShowTcpTable(VOID)
} }
else else
{ {
GetIpHostName(FALSE, tcpTable->table[i].dwRemoteAddr, RemoteIp, HOSTNAMELEN); GetIpHostName(FALSE, tcpTable->table[i].dwRemoteAddr, RemoteIp, sizeof(RemoteIp));
GetPortName(tcpTable->table[i].dwRemotePort, "tcp", RemotePort, PORTNAMELEN); GetPortName(tcpTable->table[i].dwRemotePort, "tcp", RemotePort, sizeof(RemotePort));
sprintf(Remote, "%s:%s", RemoteIp, RemotePort); sprintf(Remote, "%s:%s", RemoteIp, RemotePort);
} }
@ -522,8 +521,8 @@ VOID ShowUdpTable(VOID)
{ {
/* I've split this up so it's easier to follow */ /* I've split this up so it's easier to follow */
GetIpHostName(TRUE, udpTable->table[i].dwLocalAddr, HostIp, HOSTNAMELEN); GetIpHostName(TRUE, udpTable->table[i].dwLocalAddr, HostIp, sizeof(HostIp));
GetPortName(udpTable->table[i].dwLocalPort, "tcp", HostPort, PORTNAMELEN); GetPortName(udpTable->table[i].dwLocalPort, "tcp", HostPort, sizeof(HostPort));
sprintf(Host, "%s:%s", HostIp, HostPort); sprintf(Host, "%s:%s", HostIp, HostPort);
@ -567,7 +566,7 @@ GetPortName(UINT Port, PCSTR Proto, CHAR Name[], INT NameLen)
* convert addresses into dotted decimal or hostname * convert addresses into dotted decimal or hostname
*/ */
PCHAR PCHAR
GetIpHostName(BOOL Local, UINT IpAddr, CHAR Name[], int NameLen) GetIpHostName(BOOL Local, UINT IpAddr, CHAR Name[], INT NameLen)
{ {
// struct hostent *phostent; // struct hostent *phostent;
UINT nIpAddr; UINT nIpAddr;

View file

@ -51,5 +51,5 @@ VOID ShowUdpStatistics(VOID);
VOID ShowEthernetStatistics(VOID); VOID ShowEthernetStatistics(VOID);
VOID ShowTcpTable(VOID); VOID ShowTcpTable(VOID);
VOID ShowUdpTable(VOID); VOID ShowUdpTable(VOID);
PCHAR GetPortName(UINT Port, PCSTR Proto, CHAR Name[PORTNAMELEN], INT NameLen); PCHAR GetPortName(UINT Port, PCSTR Proto, CHAR Name[], INT NameLen);
PCHAR GetIpHostName(BOOL local, UINT ipaddr, CHAR name[HOSTNAMELEN], int namelen); PCHAR GetIpHostName(BOOL Local, UINT IpAddr, CHAR Name[], INT NameLen);