1394 lines
29 KiB
C
1394 lines
29 KiB
C
/*++
|
||
|
||
Copyright (c) 1995 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
rpcstub.c
|
||
|
||
Abstract:
|
||
|
||
Domain Name System (DNS) Server -- Admin Client API
|
||
|
||
Client stubs for NT4 RPC API.
|
||
|
||
Note: some RPC calls were never used by the admin:
|
||
- R_DnsResetBootMethod
|
||
- R_DnsGetZoneWinsInfo
|
||
- R_DnsUpdateWinsRecord
|
||
|
||
They can not be removed from the IDL as order in the interface is
|
||
important. However the corresponding stub API are tossed.
|
||
|
||
In addition the R_DnsEnumNodeRecords call is completely
|
||
subsumed by the current behavior of the server by the old
|
||
DnsEnumChildNodesAndRecords call (renamed DnsEnumRecords)
|
||
with proper (no children) setting of select flag.
|
||
|
||
The old admin source has been updated, so that it sets the flag
|
||
to get the desired behavior. Hence the DnsEnumNodeRecords() call
|
||
is a no-op stub.
|
||
|
||
Author:
|
||
|
||
Jim Gilroy (jamesg) September 1995
|
||
|
||
Environment:
|
||
|
||
User Mode - Win32
|
||
|
||
Revision History:
|
||
|
||
jamesg April 1997 -- remove dead code
|
||
|
||
--*/
|
||
|
||
|
||
#include "dnsclip.h"
|
||
|
||
|
||
|
||
|
||
//
|
||
// Server configuration API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_GetServerInfo(
|
||
IN LPCSTR Server,
|
||
OUT PDNS_SERVER_INFO * ppServerInfo
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_GetServerInfo()\n"
|
||
"\tServer = %s\n"
|
||
"\tppServerInfo = %p\n"
|
||
"\t*ppServerInfo = %p\n",
|
||
Server,
|
||
ppServerInfo,
|
||
(ppServerInfo ? *ppServerInfo : NULL) ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_GetServerInfo(
|
||
Server,
|
||
ppServerInfo
|
||
);
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_GetServerInfo(): status %d / %p\n"
|
||
"\tServer = %s\n"
|
||
"\tppServerInfo = %p\n"
|
||
"\t*ppServerInfo = %p\n",
|
||
status,
|
||
status,
|
||
Server,
|
||
ppServerInfo,
|
||
(ppServerInfo ? *ppServerInfo : NULL) ));
|
||
if ( ppServerInfo )
|
||
{
|
||
Dns4_Dbg_RpcServerInfo(
|
||
NULL,
|
||
*ppServerInfo );
|
||
}
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetServerListenAddresses(
|
||
IN LPCSTR Server,
|
||
IN DWORD cListenAddrs,
|
||
IN PIP_ADDRESS aipListenAddrs
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetListenIpAddrs()\n"
|
||
"\tServer = %s\n"
|
||
"\tcListenAddrs = %d\n"
|
||
"\taipListenAddrs = %p\n",
|
||
Server,
|
||
cListenAddrs,
|
||
aipListenAddrs ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetServerListenAddresses(
|
||
Server,
|
||
cListenAddrs,
|
||
aipListenAddrs );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetListenIpAddrs: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetForwarders(
|
||
IN LPCSTR Server,
|
||
IN DWORD cForwarders,
|
||
IN PIP_ADDRESS aipForwarders,
|
||
IN DNS_HANDLE dwForwardTimeout,
|
||
IN DWORD fSlave
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetForwarders()\n"
|
||
"\tServer = %s\n"
|
||
"\tcForwarders = %d\n"
|
||
"\taipForwarders = %p\n"
|
||
"\tdwForwardTimeout = %d\n"
|
||
"\tfSlave = %d\n",
|
||
Server,
|
||
cForwarders,
|
||
aipForwarders,
|
||
dwForwardTimeout,
|
||
fSlave ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetForwarders(
|
||
Server,
|
||
cForwarders,
|
||
aipForwarders,
|
||
dwForwardTimeout,
|
||
fSlave );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetForwarders: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
//
|
||
// Server Statistics API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_GetStatistics(
|
||
IN LPCSTR Server,
|
||
OUT PDNS4_STATISTICS * ppStatistics
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_GetStatistics()\n"
|
||
"\tServer = %s\n"
|
||
"\tppStatistics = %p\n"
|
||
"\t*ppStatistics = %p\n",
|
||
Server,
|
||
ppStatistics,
|
||
(ppStatistics ? *ppStatistics : NULL) ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_GetStatistics(
|
||
Server,
|
||
ppStatistics
|
||
);
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_GetStatistics(): status %d / %p\n"
|
||
"\tServer = %s\n"
|
||
"\tppStatistics = %p\n"
|
||
"\t*ppStatistics = %p\n",
|
||
status,
|
||
status,
|
||
Server,
|
||
ppStatistics,
|
||
(ppStatistics ? *ppStatistics : NULL) ));
|
||
|
||
if ( ppStatistics )
|
||
{
|
||
Dns4_Dbg_RpcStatistics(
|
||
"After R_Dns4_GetStatistics ",
|
||
*ppStatistics );
|
||
}
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ClearStatistics(
|
||
IN LPCSTR Server
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ClearStatistics()\n"
|
||
"\tServer = %s\n",
|
||
Server ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ClearStatistics(
|
||
Server
|
||
);
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_ClearStatistics(): status %d / %p\n"
|
||
"\tServer = %s\n",
|
||
status,
|
||
status,
|
||
Server ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
//
|
||
// Zone configuration API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_EnumZoneHandles(
|
||
IN LPCSTR Server,
|
||
OUT PDWORD pdwZoneCount,
|
||
IN DWORD dwArrayCount,
|
||
OUT DNS_HANDLE ahZones[]
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_EnumZoneHandles()\n"
|
||
"\tServer = %s\n"
|
||
"\tpdwZoneCount = %p\n"
|
||
"\tdwArrayCount = %p\n"
|
||
"\tahZones = %p\n",
|
||
Server,
|
||
pdwZoneCount,
|
||
dwArrayCount,
|
||
ahZones
|
||
));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_EnumZoneHandles(
|
||
Server,
|
||
pdwZoneCount,
|
||
dwArrayCount,
|
||
ahZones
|
||
);
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_EnumZoneHandles: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
|
||
Dns4_Dbg_RpcZoneHandleList(
|
||
"After R_Dns4_EnumZoneHandles ",
|
||
*pdwZoneCount,
|
||
ahZones );
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_GetZoneInfo(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
OUT PDNS4_ZONE_INFO * ppZoneInfo
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_GetZoneInfo()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tppZoneInfo = %p\n"
|
||
"\t*ppZoneInfo = %p\n",
|
||
Server,
|
||
hZone,
|
||
ppZoneInfo,
|
||
(ppZoneInfo ? *ppZoneInfo : 0) ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_GetZoneInfo(
|
||
Server,
|
||
hZone,
|
||
ppZoneInfo
|
||
);
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_GetZoneInfo(): status %d / %p\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tppZoneInfo = %p\n"
|
||
"\t*ppZoneInfo = %p\n",
|
||
status,
|
||
status,
|
||
Server,
|
||
hZone,
|
||
ppZoneInfo,
|
||
(ppZoneInfo ? *ppZoneInfo : 0) ));
|
||
|
||
if ( ppZoneInfo )
|
||
{
|
||
Dns4_Dbg_RpcZoneInfo(
|
||
"After R_Dns4_GetZoneInfo ",
|
||
*ppZoneInfo );
|
||
}
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return (status);
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetZoneType(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
IN DWORD dwZoneType,
|
||
IN DWORD cMasters,
|
||
IN PIP_ADDRESS aipMasters
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetZoneType()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tdwZoneType = %d\n"
|
||
"\tcMasters = %d\n"
|
||
"\taipMasters = %p\n",
|
||
Server,
|
||
hZone,
|
||
dwZoneType,
|
||
cMasters,
|
||
aipMasters ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetZoneType(
|
||
Server,
|
||
hZone,
|
||
dwZoneType,
|
||
cMasters,
|
||
aipMasters );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetZoneType: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetZoneDatabase(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
IN DWORD fUseDatabase,
|
||
IN LPCSTR pszDataFile
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetZoneDatabase()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tfUseDatabase = %d\n"
|
||
"\tpszDataFile = %p\n",
|
||
Server,
|
||
hZone,
|
||
fUseDatabase,
|
||
pszDataFile ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetZoneDatabase(
|
||
Server,
|
||
hZone,
|
||
fUseDatabase,
|
||
pszDataFile );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetZoneDatabase: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetZoneMasters(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
IN DWORD cMasters,
|
||
IN PIP_ADDRESS aipMasters
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetZoneMasters()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tcMasters = %d\n"
|
||
"\taipMasters = %p\n",
|
||
Server,
|
||
hZone,
|
||
cMasters,
|
||
aipMasters ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetZoneMasters(
|
||
Server,
|
||
hZone,
|
||
cMasters,
|
||
aipMasters );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetZoneMasters: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResetZoneSecondaries(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
IN DWORD fSecureSecondaries,
|
||
IN DWORD cSecondaries,
|
||
IN PIP_ADDRESS aipSecondaries
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResetZoneSecondaries()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tfSecureSecs = %d\n"
|
||
"\tcSecondaries = %d\n"
|
||
"\taipSecondaries = %p\n",
|
||
Server,
|
||
hZone,
|
||
fSecureSecondaries,
|
||
cSecondaries,
|
||
aipSecondaries ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResetZoneSecondaries(
|
||
Server,
|
||
hZone,
|
||
fSecureSecondaries,
|
||
cSecondaries,
|
||
aipSecondaries );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_ResetZoneSecondaries: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
//
|
||
// Zone management API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_CreateZone(
|
||
IN LPCSTR Server,
|
||
OUT PDNS_HANDLE phZone,
|
||
IN LPCSTR pszZoneName,
|
||
IN DWORD dwZoneType,
|
||
IN LPCSTR pszAdminEmailName,
|
||
IN DWORD cMasters,
|
||
IN PIP_ADDRESS aipMasters,
|
||
IN DWORD dwUseDatabase,
|
||
IN LPCSTR pszDataFile
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_CreateZone()\n"
|
||
"\tServer = %s\n"
|
||
"\tphZone = %p\n"
|
||
"\tpszZoneName = %s\n"
|
||
"\tdwZoneType = %d\n"
|
||
"\tpszAdminEmail = %s\n"
|
||
"\tcMasters = %d\n"
|
||
"\taipMasters = %p\n"
|
||
"\tdwUseDatabase = %d\n"
|
||
"\tpszDataFile = %s\n",
|
||
Server,
|
||
phZone,
|
||
pszZoneName,
|
||
dwZoneType,
|
||
pszAdminEmailName,
|
||
cMasters,
|
||
aipMasters,
|
||
dwUseDatabase,
|
||
pszDataFile ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_CreateZone(
|
||
Server,
|
||
phZone,
|
||
pszZoneName,
|
||
dwZoneType,
|
||
pszAdminEmailName,
|
||
cMasters,
|
||
aipMasters,
|
||
dwUseDatabase,
|
||
pszDataFile );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_CreateZone: status = %d / %p\n"
|
||
"\tphZone = %p\n"
|
||
"\thZone = %p\n",
|
||
status,
|
||
status,
|
||
phZone,
|
||
*phZone ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_IncrementZoneVersion(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_IncrementZoneVersion()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n",
|
||
Server,
|
||
hZone ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_IncrementZoneVersion(
|
||
Server,
|
||
hZone );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_IncrementZoneVersion(): status %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_DeleteZone(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_DeleteZone()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n",
|
||
Server,
|
||
hZone ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_DeleteZone(
|
||
Server,
|
||
hZone );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_DeleteZone(): status %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_PauseZone(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_PauseZone()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n",
|
||
Server,
|
||
hZone ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_PauseZone(
|
||
Server,
|
||
hZone );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_PauseZone(): status %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_ResumeZone(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_ResumeZone()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n",
|
||
Server,
|
||
hZone ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_ResumeZone(
|
||
Server,
|
||
hZone );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Leave R_Dns4_ResumeZone(): status %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
//
|
||
// Record viewing API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_EnumNodeRecords(
|
||
IN LPCSTR Server,
|
||
IN LPCSTR pszNodeName,
|
||
IN WORD wRecordType,
|
||
IN DWORD fNoCacheData,
|
||
IN OUT PDWORD pdwBufferLength,
|
||
OUT BYTE aBuffer[]
|
||
)
|
||
{
|
||
DNS_PRINT(( "Dns4_EnumNodeRecords() API retired!!!\n" ));
|
||
// don't assert yet to protect old admin in NT builds
|
||
// ASSERT( FALSE );
|
||
*pdwBufferLength = 0;
|
||
return( ERROR_SUCCESS );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_EnumRecords(
|
||
IN LPCSTR Server,
|
||
IN LPCSTR pszNodeName,
|
||
IN LPCSTR pszStartChild,
|
||
IN WORD wRecordType,
|
||
IN DWORD dwSelectFlag,
|
||
IN OUT PDWORD pdwBufferLength,
|
||
OUT BYTE aBuffer[]
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_EnumRecords()\n"
|
||
"\tServer = %s\n"
|
||
"\tpszNodeName = %s\n"
|
||
"\tpszStartChild = %s\n"
|
||
"\twRecordType = %d\n"
|
||
"\tdwSelectFlag = %p\n"
|
||
"\tdwBufferLength = %d\n"
|
||
"\taBuffer = %p\n",
|
||
Server,
|
||
pszNodeName,
|
||
pszStartChild,
|
||
wRecordType,
|
||
dwSelectFlag,
|
||
*pdwBufferLength,
|
||
aBuffer ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_EnumRecords(
|
||
Server,
|
||
pszNodeName,
|
||
pszStartChild,
|
||
wRecordType,
|
||
dwSelectFlag,
|
||
pdwBufferLength,
|
||
aBuffer );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_EnumRecords: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
|
||
if ( status == ERROR_SUCCESS )
|
||
{
|
||
DnsDbg_RpcRecordsInBuffer(
|
||
"Returned records: ",
|
||
*pdwBufferLength,
|
||
aBuffer );
|
||
}
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_GetZoneWinsInfo(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
OUT PDWORD pfUsingWins,
|
||
IN OUT PDWORD pdwBufferLength,
|
||
OUT BYTE aBuffer[]
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_GetZoneWinsInfo()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %p\n"
|
||
"\tpfUsingWins = %p\n"
|
||
"\tdwBufferLength = %d\n"
|
||
"\taBuffer = %p\n",
|
||
Server,
|
||
hZone,
|
||
pfUsingWins,
|
||
*pdwBufferLength,
|
||
aBuffer ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_GetZoneWinsInfo(
|
||
Server,
|
||
hZone,
|
||
pfUsingWins,
|
||
pdwBufferLength,
|
||
aBuffer );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_GetZoneWinsInfo: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
|
||
if ( status == ERROR_SUCCESS )
|
||
{
|
||
DnsDbg_RpcRecordsInBuffer(
|
||
"Returned records: ",
|
||
*pdwBufferLength,
|
||
aBuffer );
|
||
}
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
//
|
||
// Record management API
|
||
//
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_UpdateRecord(
|
||
IN LPCSTR Server,
|
||
IN DNS_HANDLE hZone,
|
||
IN LPCSTR pszNodeName,
|
||
IN OUT PDNS_HANDLE phRecord,
|
||
IN DWORD dwDataLength,
|
||
OUT BYTE abData[]
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_UpdateRecord()\n"
|
||
"\tServer = %s\n"
|
||
"\thZone = %d\n"
|
||
"\tpszNodeName = %s\n"
|
||
"\tphRecord = %p\n"
|
||
"\t*phRecord = %p\n"
|
||
"\tdwDataLength = %d\n"
|
||
"\tabData = %p\n",
|
||
Server,
|
||
hZone,
|
||
pszNodeName,
|
||
phRecord,
|
||
( phRecord ? *phRecord : 0 ),
|
||
dwDataLength,
|
||
abData ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_UpdateRecord(
|
||
Server,
|
||
hZone,
|
||
pszNodeName,
|
||
phRecord,
|
||
dwDataLength,
|
||
abData );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_UpdateRecord: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_DeleteRecord(
|
||
IN LPCSTR Server,
|
||
IN LPCSTR pszNodeName,
|
||
OUT DNS_HANDLE hRecord
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_DeleteRecord()\n"
|
||
"\tServer = %s\n"
|
||
"\tpszNodeName = %s\n"
|
||
"\thRecord = %d\n",
|
||
Server,
|
||
pszNodeName,
|
||
hRecord ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_DeleteRecord(
|
||
Server,
|
||
pszNodeName,
|
||
hRecord );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_DeleteRecord: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
|
||
|
||
DNS_STATUS
|
||
DNS_API_FUNCTION
|
||
Dns4_DeleteName(
|
||
IN LPCSTR Server,
|
||
IN LPCSTR pszNodeName,
|
||
OUT DNS_HANDLE fDeleteSubtree
|
||
)
|
||
{
|
||
DNS_STATUS status;
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"Enter R_Dns4_DeleteName()\n"
|
||
"\tServer = %s\n"
|
||
"\tpszNodeName = %s\n"
|
||
"\tfDeleteSubtree = %d\n",
|
||
Server,
|
||
pszNodeName,
|
||
fDeleteSubtree ));
|
||
}
|
||
|
||
RpcTryExcept
|
||
{
|
||
status = R_Dns4_DeleteName(
|
||
Server,
|
||
pszNodeName,
|
||
fDeleteSubtree );
|
||
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"R_Dns4_DeleteName: status = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcExcept (1)
|
||
{
|
||
status = RpcExceptionCode();
|
||
IF_DNSDBG( STUB )
|
||
{
|
||
DNS_PRINT((
|
||
"RpcExcept: code = %d / %p\n",
|
||
status,
|
||
status ));
|
||
}
|
||
}
|
||
RpcEndExcept
|
||
|
||
return( status );
|
||
}
|
||
|
||
//
|
||
// End of rpcstub.c
|
||
//
|