ReactOS 0.4.16-dev-319-g6cf4263
rpcserver.c File Reference
#include "precomp.h"
#include <debug.h>
Include dependency graph for rpcserver.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

DWORD WINAPI RpcThreadRoutine (LPVOID lpParameter)
 
DWORD __stdcall CRrReadCache (_In_ DNSRSLVR_HANDLE pwszServerName, _Out_ DNS_CACHE_ENTRY **ppCacheEntries)
 
DWORD __stdcall R_ResolverFlushCache (_In_ DNSRSLVR_HANDLE pszServerName)
 
DWORD __stdcall R_ResolverFlushCacheEntry (_In_ DNSRSLVR_HANDLE pszServerName, _In_ LPCWSTR pszName, _In_ WORD wType)
 
DWORD __stdcall R_ResolverQuery (_In_ DNSRSLVR_HANDLE pszServerName, _In_ LPCWSTR pszName, _In_ WORD wType, _In_ DWORD dwFlags, _Inout_ DWORD *dwRecords, _Out_ DNS_RECORDW **ppResultRecords)
 
void __RPC_FAR *__RPC_USER midl_user_allocate (SIZE_T len)
 
void __RPC_USER midl_user_free (void __RPC_FAR *ptr)
 
void __RPC_USER DNSRSLVR_RPC_HANDLE_rundown (DNSRSLVR_HANDLE hClientHandle)
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 11 of file rpcserver.c.

Function Documentation

◆ CRrReadCache()

DWORD __stdcall CRrReadCache ( _In_ DNSRSLVR_HANDLE  pwszServerName,
_Out_ DNS_CACHE_ENTRY **  ppCacheEntries 
)

Definition at line 48 of file rpcserver.c.

51{
52 DPRINT("CRrReadCache(%S %p)\n",
53 pwszServerName, ppCacheEntries);
54
55 return DnsIntCacheGetEntries(ppCacheEntries);
56}
DNS_STATUS DnsIntCacheGetEntries(_Out_ DNS_CACHE_ENTRY **ppCacheEntries)
Definition: cache.c:264
#define DPRINT
Definition: sndvol32.h:73

Referenced by DnsGetCacheDataTable().

◆ DNSRSLVR_RPC_HANDLE_rundown()

void __RPC_USER DNSRSLVR_RPC_HANDLE_rundown ( DNSRSLVR_HANDLE  hClientHandle)

Definition at line 182 of file rpcserver.c.

183{
184}

◆ midl_user_allocate()

void __RPC_FAR *__RPC_USER midl_user_allocate ( SIZE_T  len)

Definition at line 172 of file rpcserver.c.

173{
175}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
GLenum GLsizei len
Definition: glext.h:6722

◆ midl_user_free()

void __RPC_USER midl_user_free ( void __RPC_FAR ptr)

Definition at line 177 of file rpcserver.c.

178{
180}
#define HeapFree(x, y, z)
Definition: compat.h:735
static PVOID ptr
Definition: dispmode.c:27

◆ R_ResolverFlushCache()

DWORD __stdcall R_ResolverFlushCache ( _In_ DNSRSLVR_HANDLE  pszServerName)

Definition at line 62 of file rpcserver.c.

64{
65 DPRINT("R_ResolverFlushCache(%S)\n",
66 pszServerName);
67
69}
DNS_STATUS DnsIntCacheFlush(_In_ ULONG ulFlags)
Definition: cache.c:69
#define CACHE_FLUSH_NON_HOSTS_FILE_ENTRIES
Definition: precomp.h:48

Referenced by DnsFlushResolverCache().

◆ R_ResolverFlushCacheEntry()

DWORD __stdcall R_ResolverFlushCacheEntry ( _In_ DNSRSLVR_HANDLE  pszServerName,
_In_ LPCWSTR  pszName,
_In_ WORD  wType 
)

Definition at line 75 of file rpcserver.c.

79{
80 DPRINT("R_ResolverFlushCacheEntry(%S %S %x)\n",
81 pszServerName, pszName, wType);
82
83 if (pszName == NULL)
85
86 return DnsIntFlushCacheEntry(pszName, wType);
87}
DNS_STATUS DnsIntFlushCacheEntry(_In_ LPCWSTR pszName, _In_ WORD wType)
Definition: cache.c:106
#define NULL
Definition: types.h:112
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101

Referenced by DnsFlushResolverCacheEntry_A(), DnsFlushResolverCacheEntry_UTF8(), and DnsFlushResolverCacheEntry_W().

◆ R_ResolverQuery()

DWORD __stdcall R_ResolverQuery ( _In_ DNSRSLVR_HANDLE  pszServerName,
_In_ LPCWSTR  pszName,
_In_ WORD  wType,
_In_ DWORD  dwFlags,
_Inout_ DWORD dwRecords,
_Out_ DNS_RECORDW **  ppResultRecords 
)

Definition at line 93 of file rpcserver.c.

100{
102 DNS_STATUS Status = ERROR_SUCCESS;
103
104 DPRINT("R_ResolverQuery(%S %S %x %lx %p %p)\n",
105 pszServerName, pszName, wType, dwFlags, dwRecords, ppResultRecords);
106
107 if (pszName == NULL || wType == 0 || ppResultRecords == NULL)
109
112
114 {
115 DPRINT("DNS query!\n");
116 Status = Query_Main(pszName,
117 wType,
118 dwFlags,
119 ppResultRecords);
120 }
122 {
123 DPRINT("DNS cache query!\n");
125 wType,
126 dwFlags,
127 ppResultRecords);
128 }
129 else
130 {
131 DPRINT("DNS cache query!\n");
133 wType,
134 dwFlags,
135 ppResultRecords);
137 {
138 DPRINT("DNS query!\n");
139 Status = Query_Main(pszName,
140 wType,
141 dwFlags,
142 ppResultRecords);
143 if (Status == ERROR_SUCCESS)
144 {
145 DPRINT("DNS query successful!\n");
146 DnsIntCacheAddEntry(*ppResultRecords, FALSE);
147 }
148 }
149 }
150
151 if (dwRecords)
152 {
153 *dwRecords = 0;
154
155 if (Status == ERROR_SUCCESS)
156 {
157 Record = *ppResultRecords;
158 while (Record)
159 {
160 DPRINT("Record: %S\n", Record->pName);
161 (*dwRecords)++;
162 Record = Record->pNext;
163 }
164 }
165 }
166
167 DPRINT("R_ResolverQuery result %ld %ld\n", Status, *dwRecords);
168
169 return Status;
170}
DNS_STATUS DnsIntCacheGetEntryByName(LPCWSTR Name, WORD wType, DWORD dwFlags, PDNS_RECORDW *Record)
Definition: cache.c:150
VOID DnsIntCacheAddEntry(_In_ PDNS_RECORDW Record, _In_ BOOL bHostsFileEntry)
Definition: cache.c:233
#define ERROR_SUCCESS
Definition: deptool.c:10
#define FALSE
Definition: types.h:117
DNS_STATUS WINAPI Query_Main(LPCWSTR Name, WORD Type, DWORD Options, PDNS_RECORD *QueryResultSet)
Definition: query.c:654
Status
Definition: gdiplustypes.h:25
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
#define DNS_QUERY_WIRE_ONLY
Definition: windns.h:18
#define DNS_QUERY_NO_WIRE_QUERY
Definition: windns.h:13
#define DNS_INFO_NO_RECORDS
Definition: winerror.h:1861
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Definition: ketypes.h:268

Referenced by DnsQuery_W().

◆ RpcThreadRoutine()

DWORD WINAPI RpcThreadRoutine ( LPVOID  lpParameter)

Definition at line 16 of file rpcserver.c.

17{
19
20 Status = RpcServerUseProtseqEpW(L"ncalrpc", 20, L"DNSResolver", NULL);
21 if (Status != RPC_S_OK)
22 {
23 DPRINT("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
24 return 0;
25 }
26
27 Status = RpcServerRegisterIf(DnsResolver_v2_0_s_ifspec, NULL, NULL);
28 if (Status != RPC_S_OK)
29 {
30 DPRINT("RpcServerRegisterIf() failed (Status %lx)\n", Status);
31 return 0;
32 }
33
35 if (Status != RPC_S_OK)
36 {
37 DPRINT("RpcServerListen() failed (Status %lx)\n", Status);
38 }
39
40 DPRINT("RpcServerListen finished\n");
41 return 0;
42}
#define L(x)
Definition: ntvdm.h:50
RPC_STATUS WINAPI RpcServerListen(UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait)
Definition: rpc_server.c:1520
RPC_STATUS WINAPI RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
Definition: rpc_server.c:1116
RPC_STATUS WINAPI RpcServerUseProtseqEpW(RPC_WSTR Protseq, UINT MaxCalls, RPC_WSTR Endpoint, LPVOID SecurityDescriptor)
Definition: rpc_server.c:927
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT
Definition: rpcdce.h:122
#define RPC_S_OK
Definition: rpcnterr.h:22
long RPC_STATUS
Definition: rpc.h:52