Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "inc.h"
VOID HandleAddress( LONG lNumArgs, PWCHAR rgpwszArgs[] ) { DWORD dwResult, i;
PMIB_IPADDRTABLE pTable;
//
// Get the address table
//
dwResult = AllocateAndGetIpAddrTableFromStack(&pTable, TRUE, GetProcessHeap(), HEAP_NO_SERIALIZE);
if(dwResult isnot NO_ERROR) { PWCHAR pwszEntry;
pwszEntry = MakeString(STR_ADDRTABLE);
if(pwszEntry) { DisplayMessage(EMSG_RETRIEVAL_ERROR1, dwResult, pwszEntry);
FreeString(pwszEntry); } else { DisplayMessage(EMSG_RETRIEVAL_ERROR2, dwResult); }
return; }
if(pTable->dwNumEntries is 0) { PWCHAR pwszEntryType;
pwszEntryType = MakeString(TOKEN_ADDRESS);
if(pwszEntryType) { DisplayMessage(EMSG_NO_ENTRIES1, pwszEntryType);
FreeString(pwszEntryType); } else { DisplayMessage(EMSG_NO_ENTRIES2); }
HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, pTable);
return; }
DisplayMessage(MSG_ADDRTABLE_HDR);
for(i = 0; i < pTable->dwNumEntries; i++) { ADDR_STRING rgwcAddr, rgwcMask; PWCHAR pwszBCast;
NetworkToUnicode(pTable->table[i].dwAddr, rgwcAddr);
NetworkToUnicode(pTable->table[i].dwMask, rgwcMask);
pwszBCast = (pTable->table[i].dwBCastAddr)?L"255.255.255.255":L"0.0.0.0";
wprintf(L"%-15s\t%-15s\t%-15s\t\t%-4d\t%d\n", rgwcAddr, rgwcMask, pwszBCast, pTable->table[i].dwIndex, pTable->table[i].dwReasmSize); }
HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, pTable); }
|