Fix some of the things that break compilation on Windows.
[openafs.git] / src / WINNT / afsapplib / al_admsvr.cpp
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 extern "C" {
11 #include <afs/param.h>
12 #include <afs/stds.h>
13 }
14
15 #include <WINNT/TaAfsAdmSvrClient.h>
16 #include <WINNT/AfsAppLib.h>
17
18
19 /*
20  * VARIABLES __________________________________________________________________
21  *
22  */
23
24 static struct
25    {
26    BOOL fUseAdminServer;
27    DWORD idAdminServerClient;
28    } l;
29
30
31 /*
32  * PROTOTYPES _________________________________________________________________
33  *
34  */
35
36
37 /*
38  * ROUTINES ___________________________________________________________________
39  *
40  */
41
42 BOOL AfsAppLib_OpenAdminServer (LPTSTR pszAddress, ULONG *pStatus)
43 {
44    AfsAppLib_CloseAdminServer();
45
46    ULONG status;
47    if (!asc_AdminServerOpen (pszAddress, &l.idAdminServerClient, &status))
48       {
49       if (pStatus)
50          *pStatus = status;
51       return FALSE;
52       }
53
54    l.fUseAdminServer = TRUE;
55    return TRUE;
56 }
57
58
59 void AfsAppLib_CloseAdminServer (void)
60 {
61    if (l.fUseAdminServer)
62       {
63       ULONG status;
64       asc_AdminServerClose (l.idAdminServerClient, &status);
65       l.idAdminServerClient = 0;
66       l.fUseAdminServer = FALSE;
67       }
68 }
69
70
71 DWORD AfsAppLib_GetAdminServerClientID (void)
72 {
73    return (l.fUseAdminServer) ? l.idAdminServerClient : 0;
74 }
75
76
77 /*
78  * WRAPPERS ___________________________________________________________________
79  *
80  * This really ugly hack allows other processes to call the asc_* routines
81  * in the context of the AfsAppLib library.
82  *
83  */
84
85 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListCreate (LPASIDLIST *ppList)
86 {
87    return asc_AsidListCreate (ppList);
88 }
89
90 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListCopy (LPASIDLIST *ppListTarget, LPASIDLIST *ppListSource)
91 {
92    return asc_AsidListCopy (ppListTarget, ppListSource);
93 }
94
95 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListAddEntry (LPASIDLIST *ppList, ASID idObject, LPARAM lp)
96 {
97    return asc_AsidListAddEntry (ppList, idObject, lp);
98 }
99
100 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListRemoveEntry (LPASIDLIST *ppList, ASID idObject)
101 {
102    return asc_AsidListRemoveEntry (ppList, idObject);
103 }
104
105 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListRemoveEntryByIndex (LPASIDLIST *ppList, size_t iIndex)
106 {
107    return asc_AsidListRemoveEntryByIndex (ppList, iIndex);
108 }
109
110 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListSetEntryParam (LPASIDLIST *ppList, ASID idObject, LPARAM lp)
111 {
112    return asc_AsidListSetEntryParam (ppList, idObject, lp);
113 }
114
115 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListSetEntryParamByIndex (LPASIDLIST *ppList, size_t iIndex, LPARAM lp)
116 {
117    return asc_AsidListSetEntryParamByIndex (ppList, iIndex, lp);
118 }
119
120 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListTest (LPASIDLIST *ppList, ASID idObject, LPARAM *pParam)
121 {
122    return asc_AsidListTest (ppList, idObject, pParam);
123 }
124
125 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AsidListFree (LPASIDLIST *ppList)
126 {
127    return asc_AsidListFree (ppList);
128 }
129
130
131 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListCreate (LPASOBJPROPLIST *ppList)
132 {
133    return asc_ObjPropListCreate (ppList);
134 }
135
136 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListCopy (LPASOBJPROPLIST *ppListTarget, LPASOBJPROPLIST *ppListSource)
137 {
138    return asc_ObjPropListCopy (ppListTarget, ppListSource);
139 }
140
141 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListAddEntry (LPASOBJPROPLIST *ppList, LPASOBJPROP pProperties, LPARAM lp)
142 {
143    return asc_ObjPropListAddEntry (ppList, pProperties, lp);
144 }
145
146 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListRemoveEntry (LPASOBJPROPLIST *ppList, ASID idObject)
147 {
148    return asc_ObjPropListRemoveEntry (ppList, idObject);
149 }
150
151 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListTest (LPASOBJPROPLIST *ppList, ASID idObject, LPASOBJPROP pProperties, LPARAM *pParam)
152 {
153    return asc_ObjPropListTest (ppList, idObject, pProperties, pParam);
154 }
155
156 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjPropListFree (LPASOBJPROPLIST *ppList)
157 {
158    return asc_ObjPropListFree (ppList);
159 }
160
161
162 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListCreate (LPASACTIONLIST *ppList)
163 {
164    return asc_ActionListCreate (ppList);
165 }
166
167 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListCopy (LPASACTIONLIST *ppListTarget, LPASACTIONLIST *ppListSource)
168 {
169    return asc_ActionListCopy (ppListTarget, ppListSource);
170 }
171
172 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListAddEntry (LPASACTIONLIST *ppList, LPASACTION pAction)
173 {
174    return asc_ActionListAddEntry (ppList, pAction);
175 }
176
177 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListRemoveEntry (LPASACTIONLIST *ppList, DWORD idAction)
178 {
179    return asc_ActionListRemoveEntry (ppList, idAction);
180 }
181
182 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListTest (LPASACTIONLIST *ppList, DWORD idAction, LPASACTION pAction)
183 {
184    return asc_ActionListTest (ppList, idAction, pAction);
185 }
186
187 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListFree (LPASACTIONLIST *ppList)
188 {
189    return asc_ActionListFree (ppList);
190 }
191
192
193 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AdminServerOpen (LPCTSTR pszAddress, DWORD *pidClient, ULONG *pStatus)
194 {
195    return asc_AdminServerOpen (pszAddress, pidClient, pStatus);
196 }
197
198 EXPORTED BOOL ADMINAPI AfsAppLib_asc_AdminServerClose (DWORD idClient, ULONG *pStatus)
199 {
200    return asc_AdminServerClose (idClient, pStatus);
201 }
202
203
204 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CredentialsCrack (DWORD idClient, PVOID hCreds, LPTSTR pszCell, LPTSTR pszUser, SYSTEMTIME *pstExpiration, ULONG *pStatus)
205 {
206    return asc_CredentialsCrack (idClient, hCreds, pszCell, pszUser, pstExpiration, pStatus);
207 }
208
209 EXPORTED PVOID ADMINAPI AfsAppLib_asc_CredentialsGet (DWORD idClient, LPCTSTR pszCell, ULONG *pStatus)
210 {
211    return asc_CredentialsGet (idClient, pszCell, pStatus);
212 }
213
214 EXPORTED PVOID ADMINAPI AfsAppLib_asc_CredentialsSet (DWORD idClient, LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR pszPassword, ULONG *pStatus)
215 {
216    return asc_CredentialsSet (idClient, pszCell, pszUser, pszPassword, pStatus);
217 }
218
219 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CredentialsPush (DWORD idClient, PVOID hCreds, ASID idCell, ULONG *pStatus)
220 {
221    return asc_CredentialsPush (idClient, hCreds, idCell, pStatus);
222 }
223
224
225 EXPORTED BOOL ADMINAPI AfsAppLib_asc_LocalCellGet (DWORD idClient, LPTSTR pszCell, ULONG *pStatus)
226 {
227    return asc_LocalCellGet (idClient, pszCell, pStatus);
228 }
229
230 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ErrorCodeTranslate (DWORD idClient, ULONG code, LANGID idLanguage, STRING pszErrorText, ULONG *pStatus)
231 {
232    return asc_ErrorCodeTranslate (idClient, code, idLanguage, pszErrorText, pStatus);
233 }
234
235
236 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionGet (DWORD idClient, DWORD idAction, LPASACTION pAction, ULONG *pStatus)
237 {
238    return asc_ActionGet (idClient, idAction, pAction, pStatus);
239 }
240
241 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionGetMultiple (DWORD idClient, DWORD idClientSearch, ASID idCellSearch, LPASACTIONLIST *ppList, ULONG *pStatus)
242 {
243    return asc_ActionGetMultiple (idClient, idClientSearch, idCellSearch, ppList, pStatus);
244 }
245
246 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListen (DWORD idClient, HWND hNotify, ULONG *pStatus)
247 {
248    return asc_ActionListen (idClient, hNotify, pStatus);
249 }
250
251 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ActionListenClear (DWORD idClient, HWND hNotify, ULONG *pStatus)
252 {
253    return asc_ActionListenClear (idClient, hNotify, pStatus);
254 }
255
256
257 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CellOpen (DWORD idClient, PVOID hCreds, LPCTSTR pszCell, DWORD dwScope, ASID *pidCell, ULONG *pStatus)
258 {
259    return asc_CellOpen (idClient, hCreds, pszCell, dwScope, pidCell, pStatus);
260 }
261
262 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CellClose (DWORD idClient, ASID idCell, ULONG *pStatus)
263 {
264    return asc_CellClose (idClient, idCell, pStatus);
265 }
266
267 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CellChange (DWORD idClient, ASID idCell, LPAFSADMSVR_CHANGECELL_PARAMS pChange, ULONG *pStatus)
268 {
269    return asc_CellChange (idClient, idCell, pChange, pStatus);
270 }
271
272 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CellRefreshRateSet (DWORD idClient, ASID idCell, LONG cminRefreshRate, ULONG *pStatus)
273 {
274    return asc_CellRefreshRateSet (idClient, idCell, cminRefreshRate, pStatus);
275 }
276
277
278 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectFind (DWORD idClient, ASID idSearchScope, ASOBJTYPE ObjectType, LPCTSTR pszName, ASID *pidObject, ULONG *pStatus)
279 {
280    return asc_ObjectFind (idClient, idSearchScope, ObjectType, pszName, pidObject, pStatus);
281 }
282
283 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectFindMultiple (DWORD idClient, ASID idSearchScope, ASOBJTYPE ObjectType, LPCTSTR pszPattern, LPAFSADMSVR_SEARCH_PARAMS pSearchParams, LPASIDLIST *ppList, ULONG *pStatus)
284 {
285    return asc_ObjectFindMultiple (idClient, idSearchScope, ObjectType, pszPattern, pSearchParams, ppList, pStatus);
286 }
287
288 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectPropertiesGet (DWORD idClient, AFSADMSVR_GET_LEVEL GetLevel, ASID idCell, ASID idObject, LPASOBJPROP pProperties, ULONG *pStatus)
289 {
290    return asc_ObjectPropertiesGet (idClient, GetLevel, idCell, idObject, pProperties, pStatus);
291 }
292
293 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectPropertiesGetMultiple (DWORD idClient, AFSADMSVR_GET_LEVEL GetLevel, ASID idCell, LPASIDLIST pAsidList, LPASOBJPROPLIST *ppPropertiesList, ULONG *pStatus)
294 {
295    return asc_ObjectPropertiesGetMultiple (idClient, GetLevel, idCell, pAsidList, ppPropertiesList, pStatus);
296 }
297
298
299 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectListen (DWORD idClient, ASID idCell, ASID idObject, HWND hNotify, ULONG *pStatus)
300 {
301    return asc_ObjectListen (idClient, idCell, idObject, hNotify, pStatus);
302 }
303
304 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectListenClear (DWORD idClient, HWND hNotify, ULONG *pStatus)
305 {
306    return asc_ObjectListenClear (idClient, hNotify, pStatus);
307 }
308
309 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectListenMultiple (DWORD idClient, ASID idCell, LPASIDLIST pAsidList, HWND hNotify, ULONG *pStatus)
310 {
311    return asc_ObjectListenMultiple (idClient, idCell, pAsidList, hNotify, pStatus);
312 }
313
314
315 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectRefresh (DWORD idClient, ASID idCell, ASID idObject, ULONG *pStatus)
316 {
317    return asc_ObjectRefresh (idClient, idCell, idObject, pStatus);
318 }
319
320 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectRefreshMultiple (DWORD idClient, ASID idCell, LPASIDLIST pAsidList, ULONG *pStatus)
321 {
322    return asc_ObjectRefreshMultiple (idClient, idCell, pAsidList, pStatus);
323 }
324
325 EXPORTED BOOL ADMINAPI AfsAppLib_asc_RandomKeyGet (DWORD idClient, ASID idCell, PBYTE pkey, ULONG *pStatus)
326 {
327    return asc_RandomKeyGet (idClient, idCell, pkey, pStatus);
328 }
329
330 EXPORTED BOOL ADMINAPI AfsAppLib_asc_CellNameGet_Fast (DWORD idClient, ASID idCell, LPTSTR pszCell, ULONG *pStatus)
331 {
332    return asc_CellNameGet_Fast (idClient, idCell, pszCell, pStatus);
333 }
334
335 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectNameGet_Fast (DWORD idClient, ASID idCell, ASID idObject, LPTSTR pszObject, ULONG *pStatus)
336 {
337    return asc_ObjectNameGet_Fast (idClient, idCell, idObject, pszObject, pStatus);
338 }
339
340 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectTypeGet_Fast (DWORD idClient, ASID idCell, ASID idObject, ASOBJTYPE *pObjectType, ULONG *pStatus)
341 {
342    return asc_ObjectTypeGet_Fast (idClient, idCell, idObject, pObjectType, pStatus);
343 }
344
345 EXPORTED BOOL ADMINAPI AfsAppLib_asc_ObjectPropertiesGet_Fast (DWORD idClient, ASID idCell, ASID idObject, LPASOBJPROP pProperties, ULONG *pStatus)
346 {
347    return asc_ObjectPropertiesGet_Fast (idClient, idCell, idObject, pProperties, pStatus);
348 }
349
350
351 EXPORTED void ADMINAPI AfsAppLib_asc_Enter (void)
352 {
353    asc_Enter();
354 }
355
356 EXPORTED void ADMINAPI AfsAppLib_asc_Leave (void)
357 {
358    asc_Leave();
359 }
360
361 EXPORTED LPCRITICAL_SECTION ADMINAPI AfsAppLib_asc_GetCriticalSection (void)
362 {
363    return asc_GetCriticalSection();
364 }
365
366
367 EXPORTED BOOL ADMINAPI AfsAppLib_asc_UserChange (DWORD idClient, ASID idCell, ASID idUser, LPAFSADMSVR_CHANGEUSER_PARAMS pChange, ULONG *pStatus)
368 {
369    return asc_UserChange (idClient, idCell, idUser, pChange, pStatus);
370 }
371
372 EXPORTED BOOL ADMINAPI AfsAppLib_asc_UserPasswordSet (DWORD idClient, ASID idCell, ASID idUser, int keyVersion, LPCTSTR pkeyString, PBYTE pkeyData, ULONG *pStatus)
373 {
374    return asc_UserPasswordSet (idClient, idCell, idUser, keyVersion, pkeyString, pkeyData, pStatus);
375 }
376
377 EXPORTED BOOL ADMINAPI AfsAppLib_asc_UserUnlock (DWORD idClient, ASID idCell, ASID idUser, ULONG *pStatus)
378 {
379    return asc_UserUnlock (idClient, idCell, idUser, pStatus);
380 }
381
382 EXPORTED BOOL ADMINAPI AfsAppLib_asc_UserCreate (DWORD idClient, ASID idCell, LPAFSADMSVR_CREATEUSER_PARAMS pCreate, ASID *pidUser, ULONG *pStatus)
383 {
384    return asc_UserCreate (idClient, idCell, pCreate, pidUser, pStatus);
385 }
386
387 EXPORTED BOOL ADMINAPI AfsAppLib_asc_UserDelete (DWORD idClient, ASID idCell, ASID idUser, LPAFSADMSVR_DELETEUSER_PARAMS pDelete, ULONG *pStatus)
388 {
389    return asc_UserDelete (idClient, idCell, idUser, pDelete, pStatus);
390 }
391
392 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupChange (DWORD idClient, ASID idCell, ASID idGroup, LPAFSADMSVR_CHANGEGROUP_PARAMS pChange, ULONG *pStatus)
393 {
394    return asc_GroupChange (idClient, idCell, idGroup, pChange, pStatus);
395 }
396
397 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupMembersGet (DWORD idClient, ASID idCell, ASID idGroup, LPASIDLIST *ppAsidList, ULONG *pStatus)
398 {
399    return asc_GroupMembersGet (idClient, idCell, idGroup, ppAsidList, pStatus);
400 }
401
402 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupMemberAdd (DWORD idClient, ASID idCell, ASID idGroup, ASID idMember, ULONG *pStatus)
403 {
404    return asc_GroupMemberAdd (idClient, idCell, idGroup, idMember, pStatus);
405 }
406
407 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupMemberRemove (DWORD idClient, ASID idCell, ASID idGroup, ASID idMember, ULONG *pStatus)
408 {
409    return asc_GroupMemberRemove (idClient, idCell, idGroup, idMember, pStatus);
410 }
411
412 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupRename (DWORD idClient, ASID idCell, ASID idGroup, LPCTSTR pszNewName, ULONG *pStatus)
413 {
414    return asc_GroupRename (idClient, idCell, idGroup, pszNewName, pStatus);
415 }
416
417 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupOwnershipGet (DWORD idClient, ASID idCell, ASID idMember, LPASIDLIST *ppAsidList, ULONG *pStatus)
418 {
419    return asc_GroupOwnershipGet (idClient, idCell, idMember, ppAsidList, pStatus);
420 }
421
422 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupMembershipGet (DWORD idClient, ASID idCell, ASID idOwner, LPASIDLIST *ppAsidList, ULONG *pStatus)
423 {
424    return asc_GroupMembershipGet (idClient, idCell, idOwner, ppAsidList, pStatus);
425 }
426
427 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupCreate (DWORD idClient, ASID idCell, LPAFSADMSVR_CREATEGROUP_PARAMS pCreate, ASID *pidGroup, ULONG *pStatus)
428 {
429    return asc_GroupCreate (idClient, idCell, pCreate, pidGroup, pStatus);
430 }
431
432 EXPORTED BOOL ADMINAPI AfsAppLib_asc_GroupDelete (DWORD idClient, ASID idCell, ASID idGroup, ULONG *pStatus)
433 {
434    return asc_GroupDelete (idClient, idCell, idGroup, pStatus);
435 }
436