- Implement RtlIpv4StringToAddressExW. Patch by Mark Jansen.
CORE-6490

svn path=/trunk/; revision=66270
This commit is contained in:
Thomas Faber 2015-02-14 19:14:32 +00:00
parent 279e2f65b3
commit a3e8496b8d

View file

@ -337,17 +337,52 @@ Done:
} }
/* /*
* @unimplemented * @implemented
*/ */
NTSTATUS NTSTATUS
NTAPI NTAPI
RtlIpv4StringToAddressExW(IN PCWSTR AddressString, RtlIpv4StringToAddressExW(
IN BOOLEAN Strict, _In_ PCWSTR AddressString,
OUT struct in_addr *Address, _In_ BOOLEAN Strict,
OUT PUSHORT Port) _Out_ struct in_addr *Address,
_Out_ PUSHORT Port)
{ {
UNIMPLEMENTED; PCWSTR CurrentChar;
return STATUS_NOT_IMPLEMENTED; ULONG ConvertedPort;
NTSTATUS Status;
if (!AddressString || !Address || !Port)
return STATUS_INVALID_PARAMETER;
Status = RtlIpv4StringToAddressW(AddressString,
Strict,
&CurrentChar,
Address);
if (!NT_SUCCESS(Status))
return Status;
if (!*CurrentChar)
{
*Port = 0;
return STATUS_SUCCESS;
}
if (*CurrentChar != L':')
return STATUS_INVALID_PARAMETER;
++CurrentChar;
Status = RtlpStringToUlong(CurrentChar,
FALSE,
&CurrentChar,
&ConvertedPort);
if (!NT_SUCCESS(Status))
return Status;
if (*CurrentChar || !ConvertedPort || ConvertedPort > 0xffff)
return STATUS_INVALID_PARAMETER;
*Port = WN2H(ConvertedPort);
return STATUS_SUCCESS;
} }
/* /*