133 lines
2.7 KiB
C
133 lines
2.7 KiB
C
/*++
|
|
|
|
Copyright (c) 1998-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
virthost.h
|
|
|
|
Abstract:
|
|
|
|
The public definition of the virtual host interfaces.
|
|
|
|
Author:
|
|
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _VIRTHOST_H_
|
|
#define _VIRTHOST_H_
|
|
|
|
typedef struct _HTTP_URL_MAP_HEADER *PHTTP_URL_MAP_HEADER;
|
|
|
|
//
|
|
// Type of our internal virtual host ID structure, and macros for manipulating
|
|
// it.
|
|
typedef SIZE_T VIRTUAL_HOST_ID, *PVIRTUAL_HOST_ID;
|
|
#define VALID_HOST_ID(HostID) ((HostID) != 0)
|
|
#define HOST_ID_EQUAL(HostID1, HostID2) ((HostID1) == (HostID2))
|
|
|
|
//
|
|
// Structure defining a virtual host object.
|
|
//
|
|
|
|
typedef struct _VIRTUAL_HOST // VirtHost
|
|
{
|
|
ERESOURCE UpdateResource;
|
|
KEVENT DeleteEvent;
|
|
SIZE_T UpdateCount;
|
|
SIZE_T DeleteInProgress:1;
|
|
PTA_ADDRESS pLocalAddress;
|
|
PUCHAR pHostName;
|
|
|
|
VIRTUAL_HOST_ID HostID;
|
|
|
|
PHTTP_CACHE_TABLE pCacheTable;
|
|
PHTTP_URL_MAP_HEADER pURLMapHeader;
|
|
|
|
} VIRTUAL_HOST, *PVIRTUAL_HOST;
|
|
|
|
#define GetURLMapFromVirtualHost(pVirtHost) \
|
|
(pVirtHost)->pURLMapHeader
|
|
|
|
|
|
|
|
PVIRTUAL_HOST
|
|
FindVirtualHost(
|
|
IN PHTTP_CONNECTION pHttpConn,
|
|
IN PHTTP_CACHE_TABLE *ppCacheTable,
|
|
IN PHTTP_URL_MAP_HEADER *ppURLMapHeader
|
|
);
|
|
|
|
NTSTATUS
|
|
UlCreateVirtualHost(
|
|
IN PTRANSPORT_ADDRESS pHostAddress,
|
|
IN OPTIONAL PUCHAR pHostName,
|
|
IN SIZE_T HostNameLength,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
UlDeleteVirtualHost(
|
|
IN PTRANSPORT_ADDRESS pHostAddress,
|
|
IN OPTIONAL PUCHAR pHostName,
|
|
IN SIZE_T HostNameLength
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
InsertVirtualHost(
|
|
IN PVIRTUAL_HOST pVirtHost,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
VOID
|
|
FindVirtualHostID(
|
|
OUT PVIRTUAL_HOST_ID VirtHostID,
|
|
IN PTRANSPORT_ADDRESS pAddress,
|
|
IN PUCHAR pHostName,
|
|
IN SIZE_T HostNameLength
|
|
);
|
|
|
|
PVIRTUAL_HOST
|
|
AcquireVirtualHostUpdateResource(
|
|
IN PVIRTUAL_HOST_ID pVirtHostID
|
|
);
|
|
|
|
VOID
|
|
ReleaseVirtualHostUpdateResource(
|
|
IN PVIRTUAL_HOST pVirtualHost,
|
|
IN PVIRTUAL_HOST_ID pVirtHostID
|
|
);
|
|
|
|
VOID
|
|
UpdateURLMapTable(
|
|
IN PVIRTUAL_HOST pVirtHost,
|
|
IN PVIRTUAL_HOST_ID pVirtHostID,
|
|
IN PHTTP_URL_MAP_HEADER pNewMapHeader
|
|
);
|
|
|
|
#define DEFAULT_VIRTUAL_HOST 0x01
|
|
|
|
NTSTATUS
|
|
InitializeVirtHost(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
TerminateVirtHost(
|
|
VOID
|
|
);
|
|
|
|
VIRTUAL_HOST_ID
|
|
GetNextVirtualHostID(
|
|
VOID
|
|
);
|
|
|
|
|
|
#endif
|
|
|