Add tracing, add WINS configuration to GetAdaptersInfo, correct

ScopeID reading in GetFixedInfo.
This commit is contained in:
Juan Lang 2004-01-02 03:55:05 +00:00 committed by Alexandre Julliard
parent dfd315b415
commit cb759ba94e

View File

@ -26,6 +26,9 @@
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
# include <arpa/inet.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
@ -104,6 +107,8 @@ DWORD WINAPI AllocateAndGetIfTableFromStack(PMIB_IFTABLE *ppIfTable,
{
DWORD ret;
TRACE("ppIfTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n", ppIfTable,
(DWORD)bOrder, (DWORD)heap, flags);
if (!ppIfTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -115,6 +120,7 @@ DWORD WINAPI AllocateAndGetIfTableFromStack(PMIB_IFTABLE *ppIfTable,
ret = GetIfTable(*ppIfTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -140,6 +146,8 @@ DWORD WINAPI AllocateAndGetIpAddrTableFromStack(PMIB_IPADDRTABLE *ppIpAddrTable,
{
DWORD ret;
TRACE("ppIpAddrTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n",
ppIpAddrTable, (DWORD)bOrder, (DWORD)heap, flags);
if (!ppIpAddrTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -151,6 +159,7 @@ DWORD WINAPI AllocateAndGetIpAddrTableFromStack(PMIB_IPADDRTABLE *ppIpAddrTable,
ret = GetIpAddrTable(*ppIpAddrTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -174,6 +183,8 @@ DWORD WINAPI AllocateAndGetIpForwardTableFromStack(PMIB_IPFORWARDTABLE *
{
DWORD ret;
TRACE("ppIpForwardTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n",
ppIpForwardTable, (DWORD)bOrder, (DWORD)heap, flags);
if (!ppIpForwardTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -185,6 +196,7 @@ DWORD WINAPI AllocateAndGetIpForwardTableFromStack(PMIB_IPFORWARDTABLE *
ret = GetIpForwardTable(*ppIpForwardTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -210,6 +222,8 @@ DWORD WINAPI AllocateAndGetIpNetTableFromStack(PMIB_IPNETTABLE *ppIpNetTable,
{
DWORD ret;
TRACE("ppIpNetTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n",
ppIpNetTable, (DWORD)bOrder, (DWORD)heap, flags);
if (!ppIpNetTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -221,6 +235,7 @@ DWORD WINAPI AllocateAndGetIpNetTableFromStack(PMIB_IPNETTABLE *ppIpNetTable,
ret = GetIpNetTable(*ppIpNetTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -246,6 +261,8 @@ DWORD WINAPI AllocateAndGetTcpTableFromStack(PMIB_TCPTABLE *ppTcpTable,
{
DWORD ret;
TRACE("ppTcpTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n",
ppTcpTable, (DWORD)bOrder, (DWORD)heap, flags);
if (!ppTcpTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -257,6 +274,7 @@ DWORD WINAPI AllocateAndGetTcpTableFromStack(PMIB_TCPTABLE *ppTcpTable,
ret = GetTcpTable(*ppTcpTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -282,6 +300,8 @@ DWORD WINAPI AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable,
{
DWORD ret;
TRACE("ppUdpTable %p, bOrder %ld, heap 0x%08lx, flags 0x%08lx\n",
ppUdpTable, (DWORD)bOrder, (DWORD)heap, flags);
if (!ppUdpTable)
ret = ERROR_INVALID_PARAMETER;
else {
@ -293,6 +313,7 @@ DWORD WINAPI AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable,
ret = GetUdpTable(*ppUdpTable, &dwSize, bOrder);
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -312,6 +333,7 @@ DWORD WINAPI AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable,
*/
DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute)
{
TRACE("pRoute %p\n", pRoute);
/* could use SIOCADDRT, not sure I want to */
FIXME(":stub\n");
return (DWORD) 0;
@ -333,6 +355,7 @@ DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute)
*/
DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry)
{
TRACE("pArpEntry %p\n", pArpEntry);
/* could use SIOCSARP on systems that support it, not sure I want to */
FIXME(":stub\n");
return (DWORD) 0;
@ -356,6 +379,8 @@ DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry)
*/
DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex)
{
TRACE("dwAddress 0x%08lx, dwMask 0x%08lx, dwIfIndex 0x%08lx\n", dwAddress,
dwMask, dwIfIndex);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -377,6 +402,7 @@ DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex)
*/
DWORD WINAPI DeleteIPAddress(ULONG NTEContext)
{
TRACE("NTEContext %ld\n", NTEContext);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -398,6 +424,7 @@ DWORD WINAPI DeleteIPAddress(ULONG NTEContext)
*/
DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute)
{
TRACE("pRoute %p\n", pRoute);
/* could use SIOCDELRT, not sure I want to */
FIXME(":stub\n");
return (DWORD) 0;
@ -419,6 +446,7 @@ DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute)
*/
DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry)
{
TRACE("pArpEntry %p\n", pArpEntry);
/* could use SIOCDARP on systems that support it, not sure I want to */
FIXME(":stub\n");
return (DWORD) 0;
@ -442,6 +470,8 @@ DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry)
*/
DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex)
{
TRACE("dwAddress 0x%08lx, dwMask 0x%08lx, dwIfIndex 0x%08lx\n", dwAddress,
dwMask, dwIfIndex);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -464,6 +494,7 @@ DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask, DWORD dwIfIndex)
*/
DWORD WINAPI EnableRouter(HANDLE * pHandle, OVERLAPPED * pOverlapped)
{
TRACE("pHandle %p, pOverlapped %p\n", pHandle, pOverlapped);
FIXME(":stub\n");
/* could echo "1" > /proc/net/sys/net/ipv4/ip_forward, not sure I want to
could map EACCESS to ERROR_ACCESS_DENIED, I suppose
@ -487,6 +518,7 @@ DWORD WINAPI EnableRouter(HANDLE * pHandle, OVERLAPPED * pOverlapped)
*/
DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex)
{
TRACE("dwIfIndex 0x%08lx\n", dwIfIndex);
FIXME(":stub\n");
/* this flushes the arp cache of the given index
marking Win2K+ functions not supported */
@ -510,6 +542,7 @@ DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex)
*/
DWORD WINAPI GetAdapterIndex(LPWSTR AdapterName, PULONG IfIndex)
{
TRACE("AdapterName %p, IfIndex %p\n", AdapterName, IfIndex);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -534,6 +567,7 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
{
DWORD ret;
TRACE("pAdapterInfo %p, pOutBufLen %p\n", pAdapterInfo, pOutBufLen);
if (!pOutBufLen)
ret = ERROR_INVALID_PARAMETER;
else {
@ -544,7 +578,7 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
that's okay, because:
- we don't get multiple addresses per adapter anyway
- we don't know about per-adapter gateways
- we don't know about DHCP or WINS (and these must be single anyway) */
- DHCP and WINS servers can have max one entry per list */
ULONG size = sizeof(IP_ADAPTER_INFO) * numNonLoopbackInterfaces;
if (!pAdapterInfo || *pOutBufLen < size) {
@ -562,8 +596,30 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
}
else {
DWORD ndx;
HKEY hKey;
BOOL winsEnabled = FALSE;
IP_ADDRESS_STRING primaryWINS, secondaryWINS;
memset(pAdapterInfo, 0, size);
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"\\Software\\Wine\\Wine\\Config\\Network", 0, KEY_READ,
&hKey) == ERROR_SUCCESS) {
DWORD size = sizeof(primaryWINS.String);
unsigned long addr;
RegQueryValueExA(hKey, "WinsServer", NULL, NULL,
primaryWINS.String, &size);
addr = inet_addr(primaryWINS.String);
if (addr != INADDR_NONE && addr != INADDR_ANY)
winsEnabled = TRUE;
size = sizeof(secondaryWINS.String);
RegQueryValueExA(hKey, "BackupWinsServer", NULL, NULL,
secondaryWINS.String, &size);
addr = inet_addr(secondaryWINS.String);
if (addr != INADDR_NONE && addr != INADDR_ANY)
winsEnabled = TRUE;
RegCloseKey(hKey);
}
for (ndx = 0; ndx < table->numIndexes; ndx++) {
PIP_ADAPTER_INFO ptr = &pAdapterInfo[ndx];
DWORD addrLen = sizeof(ptr->Address), type;
@ -585,6 +641,13 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
ptr->IpAddressList.IpAddress.String);
toIPAddressString(getInterfaceMaskByIndex(table->indexes[ndx]),
ptr->IpAddressList.IpMask.String);
if (winsEnabled) {
ptr->HaveWins = TRUE;
memcpy(ptr->PrimaryWinsServer.IpAddress.String,
primaryWINS.String, sizeof(primaryWINS.String));
memcpy(ptr->SecondaryWinsServer.IpAddress.String,
secondaryWINS.String, sizeof(secondaryWINS.String));
}
if (ndx < table->numIndexes - 1)
ptr->Next = &pAdapterInfo[ndx + 1];
else
@ -601,6 +664,7 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
else
ret = ERROR_NO_DATA;
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -623,6 +687,7 @@ DWORD WINAPI GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex)
{
DWORD ret;
TRACE("dwDestAddr 0x%08lx, pdwBestIfIndex %p\n", dwDestAddr, pdwBestIfIndex);
if (!pdwBestIfIndex)
ret = ERROR_INVALID_PARAMETER;
else {
@ -632,6 +697,7 @@ DWORD WINAPI GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex)
if (ret == ERROR_SUCCESS)
*pdwBestIfIndex = ipRow.dwForwardIfIndex;
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -656,6 +722,8 @@ DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDRO
PMIB_IPFORWARDTABLE table;
DWORD ret;
TRACE("dwDestAddr 0x%08lx, dwSourceAddr 0x%08lx, pBestRoute %p\n", dwDestAddr,
dwSourceAddr, pBestRoute);
if (!pBestRoute)
return ERROR_INVALID_PARAMETER;
@ -683,6 +751,7 @@ DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, PMIB_IPFORWARDRO
}
else
ret = ERROR_OUTOFMEMORY;
TRACE("returning %ld\n", ret);
return ret;
}
@ -705,6 +774,7 @@ DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex)
/* windows doesn't validate these, either, just makes sure the top byte is
cleared. I assume my ifenum module never gives an index with the top
byte set. */
TRACE("returning %ld\n", IfIndex);
return IfIndex;
}
@ -724,7 +794,12 @@ DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex)
*/
DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats)
{
return getICMPStats(pStats);
DWORD ret;
TRACE("pStats %p\n", pStats);
ret = getICMPStats(pStats);
TRACE("returning %ld\n", ret);
return ret;
}
@ -746,6 +821,7 @@ DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow)
DWORD ret;
const char *name;
TRACE("pIfRow %p\n", pIfRow);
if (!pIfRow)
return ERROR_INVALID_PARAMETER;
@ -757,6 +833,7 @@ DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow)
}
else
ret = ERROR_INVALID_DATA;
TRACE("returning %ld\n", ret);
return ret;
}
@ -792,6 +869,8 @@ DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder)
{
DWORD ret;
TRACE("pIfTable %p, pdwSize %p, bOrder %ld\n", pdwSize, pdwSize,
(DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -832,6 +911,7 @@ DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder)
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -854,6 +934,7 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen)
{
DWORD ret;
TRACE("pIfTable %p, dwOutBufLen %p\n", pIfTable, dwOutBufLen);
if (!dwOutBufLen)
ret = ERROR_INVALID_PARAMETER;
else {
@ -901,6 +982,7 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen)
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -936,6 +1018,8 @@ DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, BOOL
{
DWORD ret;
TRACE("pIpAddrTable %p, pdwSize %p, bOrder %ld\n", pIpAddrTable, pdwSize,
(DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -986,6 +1070,7 @@ DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, BOOL
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1032,6 +1117,8 @@ DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable, PULONG pdwSi
{
DWORD ret;
TRACE("pIpForwardTable %p, pdwSize %p, bOrder %ld\n", pIpForwardTable,
pdwSize, (DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -1094,6 +1181,7 @@ DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable, PULONG pdwSi
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1129,6 +1217,8 @@ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize, BOOL bOr
{
DWORD ret;
TRACE("pIpNetTable %p, pdwSize %p, bOrder %ld\n", pIpNetTable, pdwSize,
(DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -1163,6 +1253,7 @@ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize, BOOL bOr
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1182,7 +1273,12 @@ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize, BOOL bOr
*/
DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats)
{
return getIPStats(pStats);
DWORD ret;
TRACE("pStats %p\n", pStats);
ret = getIPStats(pStats);
TRACE("returning %ld\n", ret);
return ret;
}
@ -1202,9 +1298,11 @@ DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats)
*/
DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen)
{
DWORD size;
DWORD ret, size;
LONG regReturn;
HKEY hKey;
TRACE("pFixedInfo %p, pOutBufLen %p\n", pFixedInfo, pOutBufLen);
if (!pOutBufLen)
return ERROR_INVALID_PARAMETER;
@ -1238,9 +1336,13 @@ DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen)
}
}
pFixedInfo->NodeType = HYBRID_NODETYPE;
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"\\SYSTEM\\CurrentControlSet\\Services\\VxD\\MSTCP", 0, KEY_READ, &hKey)
== ERROR_SUCCESS)
regReturn = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Services\\VxD\\MSTCP", 0, KEY_READ, &hKey);
if (regReturn != ERROR_SUCCESS)
regReturn = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters", 0, KEY_READ,
&hKey);
if (regReturn == ERROR_SUCCESS)
{
DWORD size = sizeof(pFixedInfo->ScopeId);
@ -1250,7 +1352,9 @@ DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen)
/* FIXME: can check whether routing's enabled in /proc/sys/net/ipv4/ip_forward
I suppose could also check for a listener on port 53 to set EnableDns */
return NO_ERROR;
ret = NO_ERROR;
TRACE("returning %ld\n", ret);
return ret;
}
@ -1271,12 +1375,14 @@ DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf)
{
DWORD ret;
TRACE("pdwNumIf %p\n", pdwNumIf);
if (!pdwNumIf)
ret = ERROR_INVALID_PARAMETER;
else {
*pdwNumIf = getNumInterfaces();
ret = NO_ERROR;
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1298,6 +1404,8 @@ DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf)
*/
DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen)
{
TRACE("IfIndex %ld, pPerAdapterInfo %p, pOutBufLen %p\n", IfIndex,
pPerAdapterInfo, pOutBufLen);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -1322,6 +1430,8 @@ DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterIn
*/
BOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount, ULONG MaxHops, PULONG RTT)
{
TRACE("DestIpAddress 0x%08lx, HopCount %p, MaxHops %ld, RTT %p\n",
DestIpAddress, HopCount, MaxHops, RTT);
FIXME(":stub\n");
return (BOOL) 0;
}
@ -1342,7 +1452,12 @@ BOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount, ULONG MaxHo
*/
DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats)
{
return getTCPStats(pStats);
DWORD ret;
TRACE("pStats %p\n", pStats);
ret = getTCPStats(pStats);
TRACE("returning %ld\n", ret);
return ret;
}
@ -1388,6 +1503,8 @@ DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder)
{
DWORD ret;
TRACE("pTcpTable %p, pdwSize %p, bOrder %ld\n", pTcpTable, pdwSize,
(DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -1421,6 +1538,7 @@ DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder)
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1440,7 +1558,12 @@ DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder)
*/
DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats)
{
return getUDPStats(pStats);
DWORD ret;
TRACE("pStats %p\n", pStats);
ret = getUDPStats(pStats);
TRACE("returning %ld\n", ret);
return ret;
}
@ -1480,6 +1603,8 @@ DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder)
{
DWORD ret;
TRACE("pUdpTable %p, pdwSize %p, bOrder %ld\n", pUdpTable, pdwSize,
(DWORD)bOrder);
if (!pdwSize)
ret = ERROR_INVALID_PARAMETER;
else {
@ -1513,6 +1638,7 @@ DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder)
ret = ERROR_OUTOFMEMORY;
}
}
TRACE("returning %ld\n", ret);
return ret;
}
@ -1533,6 +1659,7 @@ DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder)
*/
DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen)
{
TRACE("pIPIfInfo %p, dwOutBufLen %p\n", pIPIfInfo, dwOutBufLen);
/* a unidirectional adapter?? not bloody likely! */
return ERROR_NOT_SUPPORTED;
}
@ -1553,6 +1680,7 @@ DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIP
*/
DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
{
TRACE("AdapterInfo %p\n", AdapterInfo);
/* not a stub, never going to support this (and I never mark an adapter as
DHCP enabled, see GetAdaptersInfo, so this should never get called) */
return ERROR_NOT_SUPPORTED;
@ -1574,6 +1702,7 @@ DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
*/
DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
{
TRACE("AdapterInfo %p\n", AdapterInfo);
/* not a stub, never going to support this (and I never mark an adapter as
DHCP enabled, see GetAdaptersInfo, so this should never get called) */
return ERROR_NOT_SUPPORTED;
@ -1596,6 +1725,7 @@ DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
*/
DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped)
{
TRACE("Handle %p, overlapped %p\n", Handle, overlapped);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -1618,6 +1748,7 @@ DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped)
*/
DWORD WINAPI NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped)
{
TRACE("Handle %p, overlapped %p\n", Handle, overlapped);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -1642,6 +1773,8 @@ DWORD WINAPI NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped)
*/
DWORD WINAPI SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, PULONG PhyAddrLen)
{
TRACE("DestIP 0x%08lx, SrcIP 0x%08lx, pMacAddr %p, PhyAddrLen %p\n", DestIP,
SrcIP, pMacAddr, PhyAddrLen);
FIXME(":stub\n");
/* marking Win2K+ functions not supported */
return ERROR_NOT_SUPPORTED;
@ -1663,6 +1796,7 @@ DWORD WINAPI SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, PULONG PhyAdd
*/
DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow)
{
TRACE("pIfRow %p\n", pIfRow);
/* this is supposed to set an administratively interface up or down.
Could do SIOCSIFFLAGS and set/clear IFF_UP, but, not sure I want to, and
this sort of down is indistinguishable from other sorts of down (e.g. no
@ -1687,6 +1821,7 @@ DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow)
*/
DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute)
{
TRACE("pRoute %p\n", pRoute);
/* this is to add a route entry, how's it distinguishable from
CreateIpForwardEntry?
could use SIOCADDRT, not sure I want to */
@ -1710,6 +1845,7 @@ DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute)
*/
DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry)
{
TRACE("pArpEntry %p\n", pArpEntry);
/* same as CreateIpNetEntry here, could use SIOCSARP, not sure I want to */
FIXME(":stub\n");
return (DWORD) 0;
@ -1731,6 +1867,7 @@ DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry)
*/
DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats)
{
TRACE("pIpStats %p\n", pIpStats);
FIXME(":stub\n");
return (DWORD) 0;
}
@ -1751,6 +1888,7 @@ DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats)
*/
DWORD WINAPI SetIpTTL(UINT nTTL)
{
TRACE("nTTL %d\n", nTTL);
/* could echo nTTL > /proc/net/sys/net/ipv4/ip_default_ttl, not sure I
want to. Could map EACCESS to ERROR_ACCESS_DENIED, I suppose */
FIXME(":stub\n");
@ -1773,6 +1911,7 @@ DWORD WINAPI SetIpTTL(UINT nTTL)
*/
DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow)
{
TRACE("pTcpRow %p\n", pTcpRow);
FIXME(":stub\n");
return (DWORD) 0;
}
@ -1794,6 +1933,7 @@ DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow)
*/
DWORD WINAPI UnenableRouter(OVERLAPPED * pOverlapped, LPDWORD lpdwEnableCount)
{
TRACE("pOverlapped %p, lpdwEnableCount %p\n", pOverlapped, lpdwEnableCount);
FIXME(":stub\n");
/* could echo "0" > /proc/net/sys/net/ipv4/ip_forward, not sure I want to
could map EACCESS to ERROR_ACCESS_DENIED, I suppose