blob: 1dd7e0ea26ea6c256040ba9442f65f5a435950d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/** BEGIN COPYRIGHT BLOCK
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
/*
* Aruna Victor
* NT NSAPI works differently from UNIX. The DLL doesn't know the addresses
* of the functions in the server process and needs to be told them.
*/
#include <nt/nsapi.h>
#ifdef BUILD_DLL
#include <libadmin/libadmin.h>
#include <libaccess/aclproto.h>
#include <base/fsmutex.h>
#include <i18n.h>
#include <base/ereport.h>
VOID NsapiDummy()
{
int i = 0;
SafTable = (SafFunction **)MALLOC(400 * sizeof(VOID*));
/* Force references to libadmin */
SafTable[i++] = (SafFunction *)get_userdb_dir;
/* Functions from libadmin:error.c */
SafTable[i++] = (SafFunction *)report_error;
/* Functions from libadmin:template.c */
SafTable[i++] = (SafFunction *)helpJavaScriptForTopic;
/* Force references to base */
SafTable[i++] = (SafFunction *)fsmutex_init;
}
#endif /* BUILD_DLL */
VOID InitializeSafFunctions()
{
SafTable = (SafFunction **)MALLOC(400 * sizeof(VOID *));
/* Functions from file.h */
SafTable[SYSTEM_STAT] = (SafFunction *)system_stat;
SafTable[SYSTEM_FOPENRO] = (SafFunction *)system_fopenRO;
SafTable[SYSTEM_FOPENWA] = (SafFunction *)system_fopenWA;
SafTable[SYSTEM_FOPENRW] = (SafFunction *)system_fopenRW;
SafTable[SYSTEM_NOCOREDUMPS] = (SafFunction *)system_nocoredumps;
SafTable[SYSTEM_FWRITE] = (SafFunction *)system_fwrite;
SafTable[SYSTEM_FWRITE_ATOMIC] = (SafFunction *)system_fwrite_atomic;
SafTable[SYSTEM_WINERR] = (SafFunction *)system_winerr;
SafTable[SYSTEM_WINSOCKERR] = (SafFunction *)system_winsockerr;
SafTable[FILE_NOTFOUND] = (SafFunction *)file_notfound;
SafTable[FILE_UNIX2LOCAL] = (SafFunction *)file_unix2local;
SafTable[DIR_OPEN] = (SafFunction *)dir_open;
SafTable[DIR_READ] = (SafFunction *)dir_read;
SafTable[DIR_CLOSE] = (SafFunction *)dir_close;
/* Functions from ereport.h */
SafTable[EREPORT] = (SafFunction *)ereport ;
#ifdef NET_SSL
/* Functions from minissl.h */
SafTable[SSL_CLOSE] = (SafFunction *)PR_Close;
SafTable[SSL_SOCKET] = (SafFunction *)PR_NewTCPSocket;
SafTable[SSL_GET_SOCKOPT] = (SafFunction *)PR_GetSocketOption;
SafTable[SSL_SET_SOCKOPT] = (SafFunction *)PR_SetSocketOption;
SafTable[SSL_BIND] = (SafFunction *)PR_Bind;
SafTable[SSL_LISTEN] = (SafFunction *)PR_Listen;
SafTable[SSL_ACCEPT] = (SafFunction *)PR_Accept;
SafTable[SSL_READ] = (SafFunction *)PR_Read;
SafTable[SSL_WRITE] = (SafFunction *)PR_Write;
SafTable[SSL_GETPEERNAME] = (SafFunction *)PR_GetPeerName;
#endif /* NET_SSL */
/* Functions from shexp.h */
SafTable[SHEXP_VALID] = (SafFunction *)shexp_valid;
SafTable[SHEXP_MATCH] = (SafFunction *)shexp_match;
SafTable[SHEXP_CMP] = (SafFunction *)shexp_cmp;
SafTable[SHEXP_CASECMP] = (SafFunction *)shexp_casecmp;
/* Functions from systhr.h */
SafTable[SYSTHREAD_START] = (SafFunction *)systhread_start;
SafTable[SYSTHREAD_ATTACH] = (SafFunction *)systhread_attach;
SafTable[SYSTHREAD_TERMINATE] = (SafFunction *)systhread_terminate;
SafTable[SYSTHREAD_SLEEP] = (SafFunction *)systhread_sleep;
SafTable[SYSTHREAD_INIT] = (SafFunction *)systhread_init;
SafTable[SYSTHREAD_NEWKEY] = (SafFunction *)systhread_newkey;
SafTable[SYSTHREAD_GETDATA] = (SafFunction *)systhread_getdata;
SafTable[SYSTHREAD_SETDATA] = (SafFunction *)systhread_setdata;
/* Functions from systems.h */
SafTable[UTIL_STRCASECMP] = (SafFunction *)util_strcasecmp;
SafTable[UTIL_STRNCASECMP] = (SafFunction *)util_strncasecmp;
/* Functions from util.h */
SafTable[UTIL_HOSTNAME] = (SafFunction *)util_hostname;
SafTable[UTIL_ITOA] = (SafFunction *)util_itoa;
SafTable[UTIL_VSPRINTF] = (SafFunction *)util_vsprintf;
SafTable[UTIL_SPRINTF] = (SafFunction *)util_sprintf;
SafTable[UTIL_VSNPRINTF] = (SafFunction *)util_vsnprintf;
SafTable[UTIL_SNPRINTF] = (SafFunction *)util_snprintf;
SafTable[LOG_ERROR_EVENT] = (SafFunction *)LogErrorEvent;
/* Functions from aclproto.h */
SafTable[ACL_LISTCONCAT] = (SafFunction *)ACL_ListConcat;
/* Functions from i18n.h */
SafTable[GETCLIENTLANG] = (SafFunction *)GetClientLanguage;
/* Functions from file.h */
SafTable[SYSTEM_FOPENWT] = (SafFunction *)system_fopenWT;
SafTable[SYSTEM_MALLOC] = (SafFunction *)system_malloc;
SafTable[SYSTEM_FREE] = (SafFunction *)system_free;
SafTable[SYSTEM_REALLOC] = (SafFunction *)system_realloc;
SafTable[SYSTEM_STRDUP] = (SafFunction *)system_strdup;
/* Functions from crit.h */
SafTable[CRIT_INIT] = (SafFunction *)crit_init;
SafTable[CRIT_ENTER] = (SafFunction *)crit_enter;
SafTable[CRIT_EXIT] = (SafFunction *)crit_exit;
SafTable[CRIT_TERMINATE] = (SafFunction *)crit_terminate;
SafTable[SYSTHREAD_CURRENT] = (SafFunction *)systhread_current;
}
|