#include "route.h"
#include "wine/debug.h"
#include "dhcpcsdk.h"
-#include "dhcp/rosdhcp_public.h"
+#include "dhcpcapi.h"
WINE_DEFAULT_DEBUG_CHANNEL(iphlpapi);
*/
DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
{
- COMM_DHCP_REPLY Reply;
- COMM_DHCP_REQ Request;
- DWORD BytesRead;
+ DWORD Status, Version = 0;
- Request.AdapterIndex = AdapterInfo->Index;
- Request.Type = DhcpReqReleaseIpAddress;
+ if (!AdapterInfo || !AdapterInfo->Name)
+ return ERROR_INVALID_PARAMETER;
- TRACE("AdapterInfo %p\n", AdapterInfo);
+ /* Maybe we should do this in DllMain */
+ if (DhcpCApiInitialize(&Version) != ERROR_SUCCESS)
+ return ERROR_PROC_NOT_FOUND;
- if (CallNamedPipe(DHCP_PIPE_NAME,
- &Request,
- sizeof(Request),
- &Reply,
- sizeof(Reply),
- &BytesRead,
- NMPWAIT_USE_DEFAULT_WAIT))
- {
- if (Reply.Reply)
- return NO_ERROR;
+ if (DhcpReleaseIpAddressLease(AdapterInfo->Index))
+ Status = ERROR_SUCCESS;
+ else
+ Status = ERROR_PROC_NOT_FOUND;
- return ERROR_INVALID_PARAMETER;
- }
+ DhcpCApiCleanup();
- return ERROR_PROC_NOT_FOUND;
+ return Status;
}
*/
DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
{
- COMM_DHCP_REPLY Reply;
- COMM_DHCP_REQ Request;
- DWORD BytesRead;
+ DWORD Status, Version = 0;
- Request.AdapterIndex = AdapterInfo->Index;
- Request.Type = DhcpReqRenewIpAddress;
+ if (!AdapterInfo || !AdapterInfo->Name)
+ return ERROR_INVALID_PARAMETER;
- TRACE("AdapterInfo %p\n", AdapterInfo);
+ /* Maybe we should do this in DllMain */
+ if (DhcpCApiInitialize(&Version) != ERROR_SUCCESS)
+ return ERROR_PROC_NOT_FOUND;
- if (CallNamedPipe(DHCP_PIPE_NAME,
- &Request,
- sizeof(Request),
- &Reply,
- sizeof(Reply),
- &BytesRead,
- NMPWAIT_USE_DEFAULT_WAIT))
- {
- if (Reply.Reply)
- return NO_ERROR;
+ if (DhcpRenewIpAddressLease(AdapterInfo->Index))
+ Status = ERROR_SUCCESS;
+ else
+ Status = ERROR_PROC_NOT_FOUND;
- return ERROR_INVALID_PARAMETER;
- }
+ DhcpCApiCleanup();
- return ERROR_PROC_NOT_FOUND;
+ return Status;
}
*/
DWORD WINAPI GetAdaptersAddresses(ULONG Family,ULONG Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen)
{
+#if 0
InterfaceIndexTable *indexTable;
IFInfo ifInfo;
int i;
free(indexTable);
return NO_ERROR;
+#else
+ if (!pOutBufLen) return ERROR_INVALID_PARAMETER;
+ if (!pAdapterAddresses || *pOutBufLen == 0)
+ return ERROR_BUFFER_OVERFLOW;
+ if (Reserved) return ERROR_INVALID_PARAMETER;
+
+ FIXME(":stub\n");
+ return ERROR_NO_DATA;
+#endif
}
/*