}
}
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS DNS Shared Library
- * FILE: lib/dnslib/hostent.c
- * PURPOSE: Functions for dealing with Host Entry structures
- */
-
-/* INCLUDES ******************************************************************/
-#include "precomp.h"
-
-/* DATA **********************************************************************/
-
-/* FUNCTIONS *****************************************************************/
-
-PHOSTENT
-WINAPI
-Hostent_Init(IN PVOID *Buffer,
- IN WORD AddressFamily,
- IN ULONG AddressSize,
- IN ULONG AddressCount,
- IN ULONG AliasCount)
-{
- PHOSTENT Hostent;
- ULONG_PTR BufferPosition = (ULONG_PTR)*Buffer;
-
- /* Align the hostent on the buffer's 4 byte boundary */
- BufferPosition += 3 & ~3;
-
- /* Set up the basic data */
- Hostent = (PHOSTENT)BufferPosition;
- Hostent->h_length = (WORD)AddressSize;
- Hostent->h_addrtype = AddressFamily;
-
- /* Put aliases after Hostent */
- Hostent->h_aliases = (PCHAR*)((ULONG_PTR)(Hostent + 1) & ~3);
-
- /* Zero it out */
- RtlZeroMemory(Hostent->h_aliases, AliasCount * sizeof(PCHAR));
-
- /* Put addresses after aliases */
- Hostent->h_addr_list = (PCHAR*)
- ((ULONG_PTR)Hostent->h_aliases +
- (AliasCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Update the location */
- BufferPosition = (ULONG_PTR)Hostent->h_addr_list +
- ((AddressCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Send it back */
- *Buffer = (PVOID)BufferPosition;
-
- /* Return the hostent */
- return Hostent;
-}
-
-VOID
-WINAPI
-Dns_PtrArrayToOffsetArray(PCHAR *List,
- ULONG_PTR Base)
-{
- /* Loop every pointer in the list */
- do
- {
- /* Update the pointer */
- *List = (PCHAR)((ULONG_PTR)*List - Base);
- } while(*List++);
-}
-
-VOID
-WINAPI
-Hostent_ConvertToOffsets(IN PHOSTENT Hostent)
-{
- /* Do we have a name? */
- if (Hostent->h_name)
- {
- /* Update it */
- Hostent->h_name -= (ULONG_PTR)Hostent;
- }
-
- /* Do we have aliases? */
- if (Hostent->h_aliases)
- {
- /* Update the pointer */
- Hostent->h_aliases -= (ULONG_PTR)Hostent;
-
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_aliases, (ULONG_PTR)Hostent);
- }
-
- /* Do we have addresses? */
- if (Hostent->h_addr_list)
- {
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_addr_list, (ULONG_PTR)Hostent);
- }
-}
-
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS DNS Shared Library
- * FILE: lib/dnslib/hostent.c
- * PURPOSE: Functions for dealing with Host Entry structures
- */
-
-/* INCLUDES ******************************************************************/
-#include "precomp.h"
-
-/* DATA **********************************************************************/
-
-/* FUNCTIONS *****************************************************************/
-
-PHOSTENT
-WINAPI
-Hostent_Init(IN PVOID *Buffer,
- IN WORD AddressFamily,
- IN ULONG AddressSize,
- IN ULONG AddressCount,
- IN ULONG AliasCount)
-{
- PHOSTENT Hostent;
- ULONG_PTR BufferPosition = (ULONG_PTR)*Buffer;
-
- /* Align the hostent on the buffer's 4 byte boundary */
- BufferPosition += 3 & ~3;
-
- /* Set up the basic data */
- Hostent = (PHOSTENT)BufferPosition;
- Hostent->h_length = (WORD)AddressSize;
- Hostent->h_addrtype = AddressFamily;
-
- /* Put aliases after Hostent */
- Hostent->h_aliases = (PCHAR*)((ULONG_PTR)(Hostent + 1) & ~3);
-
- /* Zero it out */
- RtlZeroMemory(Hostent->h_aliases, AliasCount * sizeof(PCHAR));
-
- /* Put addresses after aliases */
- Hostent->h_addr_list = (PCHAR*)
- ((ULONG_PTR)Hostent->h_aliases +
- (AliasCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Update the location */
- BufferPosition = (ULONG_PTR)Hostent->h_addr_list +
- ((AddressCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Send it back */
- *Buffer = (PVOID)BufferPosition;
-
- /* Return the hostent */
- return Hostent;
-}
-
-VOID
-WINAPI
-Dns_PtrArrayToOffsetArray(PCHAR *List,
- ULONG_PTR Base)
-{
- /* Loop every pointer in the list */
- do
- {
- /* Update the pointer */
- *List = (PCHAR)((ULONG_PTR)*List - Base);
- } while(*List++);
-}
-
-VOID
-WINAPI
-Hostent_ConvertToOffsets(IN PHOSTENT Hostent)
-{
- /* Do we have a name? */
- if (Hostent->h_name)
- {
- /* Update it */
- Hostent->h_name -= (ULONG_PTR)Hostent;
- }
-
- /* Do we have aliases? */
- if (Hostent->h_aliases)
- {
- /* Update the pointer */
- Hostent->h_aliases -= (ULONG_PTR)Hostent;
-
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_aliases, (ULONG_PTR)Hostent);
- }
-
- /* Do we have addresses? */
- if (Hostent->h_addr_list)
- {
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_addr_list, (ULONG_PTR)Hostent);
- }
-}
-
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS DNS Shared Library
- * FILE: lib/dnslib/hostent.c
- * PURPOSE: Functions for dealing with Host Entry structures
- */
-
-/* INCLUDES ******************************************************************/
-#include "precomp.h"
-
-/* DATA **********************************************************************/
-
-/* FUNCTIONS *****************************************************************/
-
-PHOSTENT
-WINAPI
-Hostent_Init(IN PVOID *Buffer,
- IN WORD AddressFamily,
- IN ULONG AddressSize,
- IN ULONG AddressCount,
- IN ULONG AliasCount)
-{
- PHOSTENT Hostent;
- ULONG_PTR BufferPosition = (ULONG_PTR)*Buffer;
-
- /* Align the hostent on the buffer's 4 byte boundary */
- BufferPosition += 3 & ~3;
-
- /* Set up the basic data */
- Hostent = (PHOSTENT)BufferPosition;
- Hostent->h_length = (WORD)AddressSize;
- Hostent->h_addrtype = AddressFamily;
-
- /* Put aliases after Hostent */
- Hostent->h_aliases = (PCHAR*)((ULONG_PTR)(Hostent + 1) & ~3);
-
- /* Zero it out */
- RtlZeroMemory(Hostent->h_aliases, AliasCount * sizeof(PCHAR));
-
- /* Put addresses after aliases */
- Hostent->h_addr_list = (PCHAR*)
- ((ULONG_PTR)Hostent->h_aliases +
- (AliasCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Update the location */
- BufferPosition = (ULONG_PTR)Hostent->h_addr_list +
- ((AddressCount * sizeof(PCHAR)) + sizeof(PCHAR));
-
- /* Send it back */
- *Buffer = (PVOID)BufferPosition;
-
- /* Return the hostent */
- return Hostent;
-}
-
-VOID
-WINAPI
-Dns_PtrArrayToOffsetArray(PCHAR *List,
- ULONG_PTR Base)
-{
- /* Loop every pointer in the list */
- do
- {
- /* Update the pointer */
- *List = (PCHAR)((ULONG_PTR)*List - Base);
- } while(*List++);
-}
-
-VOID
-WINAPI
-Hostent_ConvertToOffsets(IN PHOSTENT Hostent)
-{
- /* Do we have a name? */
- if (Hostent->h_name)
- {
- /* Update it */
- Hostent->h_name -= (ULONG_PTR)Hostent;
- }
-
- /* Do we have aliases? */
- if (Hostent->h_aliases)
- {
- /* Update the pointer */
- Hostent->h_aliases -= (ULONG_PTR)Hostent;
-
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_aliases, (ULONG_PTR)Hostent);
- }
-
- /* Do we have addresses? */
- if (Hostent->h_addr_list)
- {
- /* Fix them up */
- Dns_PtrArrayToOffsetArray(Hostent->h_addr_list, (ULONG_PTR)Hostent);
- }
-}
-