]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/nss-util.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
10 #define NSS_SIGNALS_BLOCK SIGALRM,SIGVTALRM,SIGPIPE,SIGCHLD,SIGTSTP,SIGIO,SIGHUP,SIGUSR1,SIGUSR2,SIGPROF,SIGURG,SIGWINCH
12 #ifndef DEPRECATED_RES_USE_INET6
13 # define DEPRECATED_RES_USE_INET6 0x00002000
16 #define NSS_GETHOSTBYNAME_PROTOTYPES(module) \
17 enum nss_status _nss_##module##_gethostbyname4_r( \
19 struct gaih_addrtuple **pat, \
20 char *buffer, size_t buflen, \
21 int *errnop, int *h_errnop, \
22 int32_t *ttlp) _public_; \
23 enum nss_status _nss_##module##_gethostbyname3_r( \
26 struct hostent *host, \
27 char *buffer, size_t buflen, \
28 int *errnop, int *h_errnop, \
30 char **canonp) _public_; \
31 enum nss_status _nss_##module##_gethostbyname2_r( \
34 struct hostent *host, \
35 char *buffer, size_t buflen, \
36 int *errnop, int *h_errnop) _public_; \
37 enum nss_status _nss_##module##_gethostbyname_r( \
39 struct hostent *host, \
40 char *buffer, size_t buflen, \
41 int *errnop, int *h_errnop) _public_
43 #define NSS_GETHOSTBYADDR_PROTOTYPES(module) \
44 enum nss_status _nss_##module##_gethostbyaddr2_r( \
45 const void* addr, socklen_t len, \
47 struct hostent *host, \
48 char *buffer, size_t buflen, \
49 int *errnop, int *h_errnop, \
50 int32_t *ttlp) _public_; \
51 enum nss_status _nss_##module##_gethostbyaddr_r( \
52 const void* addr, socklen_t len, \
54 struct hostent *host, \
55 char *buffer, size_t buflen, \
56 int *errnop, int *h_errnop) _public_
58 #define NSS_GETHOSTBYNAME_FALLBACKS(module) \
59 enum nss_status _nss_##module##_gethostbyname2_r( \
62 struct hostent *host, \
63 char *buffer, size_t buflen, \
64 int *errnop, int *h_errnop) { \
65 return _nss_##module##_gethostbyname3_r( \
74 enum nss_status _nss_##module##_gethostbyname_r( \
76 struct hostent *host, \
77 char *buffer, size_t buflen, \
78 int *errnop, int *h_errnop) { \
79 enum nss_status ret = NSS_STATUS_NOTFOUND; \
81 if (_res.options & DEPRECATED_RES_USE_INET6) \
82 ret = _nss_##module##_gethostbyname3_r( \
90 if (ret == NSS_STATUS_NOTFOUND) \
91 ret = _nss_##module##_gethostbyname3_r( \
102 #define NSS_GETHOSTBYADDR_FALLBACKS(module) \
103 enum nss_status _nss_##module##_gethostbyaddr_r( \
104 const void* addr, socklen_t len, \
106 struct hostent *host, \
107 char *buffer, size_t buflen, \
108 int *errnop, int *h_errnop) { \
109 return _nss_##module##_gethostbyaddr2_r( \
118 #define NSS_GETPW_PROTOTYPES(module) \
119 enum nss_status _nss_##module##_getpwnam_r( \
121 struct passwd *pwd, \
122 char *buffer, size_t buflen, \
123 int *errnop) _public_; \
124 enum nss_status _nss_##module##_getpwuid_r( \
126 struct passwd *pwd, \
127 char *buffer, size_t buflen, \
128 int *errnop) _public_
130 #define NSS_GETSP_PROTOTYPES(module) \
131 enum nss_status _nss_##module##_getspnam_r( \
134 char *buffer, size_t buflen, \
135 int *errnop) _public_
137 #define NSS_GETSG_PROTOTYPES(module) \
138 enum nss_status _nss_##module##_getsgnam_r( \
141 char *buffer, size_t buflen, \
142 int *errnop) _public_
144 #define NSS_GETGR_PROTOTYPES(module) \
145 enum nss_status _nss_##module##_getgrnam_r( \
148 char *buffer, size_t buflen, \
149 int *errnop) _public_; \
150 enum nss_status _nss_##module##_getgrgid_r( \
153 char *buffer, size_t buflen, \
154 int *errnop) _public_
156 #define NSS_PWENT_PROTOTYPES(module) \
157 enum nss_status _nss_##module##_endpwent( \
159 enum nss_status _nss_##module##_setpwent( \
160 int stayopen) _public_; \
161 enum nss_status _nss_##module##_getpwent_r( \
162 struct passwd *result, \
165 int *errnop) _public_;
167 #define NSS_SPENT_PROTOTYPES(module) \
168 enum nss_status _nss_##module##_endspent( \
170 enum nss_status _nss_##module##_setspent( \
171 int stayopen) _public_; \
172 enum nss_status _nss_##module##_getspent_r( \
176 int *errnop) _public_;
178 #define NSS_GRENT_PROTOTYPES(module) \
179 enum nss_status _nss_##module##_endgrent( \
181 enum nss_status _nss_##module##_setgrent( \
182 int stayopen) _public_; \
183 enum nss_status _nss_##module##_getgrent_r( \
184 struct group *result, \
187 int *errnop) _public_;
189 #define NSS_SGENT_PROTOTYPES(module) \
190 enum nss_status _nss_##module##_endsgent( \
192 enum nss_status _nss_##module##_setsgent( \
193 int stayopen) _public_; \
194 enum nss_status _nss_##module##_getsgent_r( \
198 int *errnop) _public_;
200 #define NSS_INITGROUPS_PROTOTYPE(module) \
201 enum nss_status _nss_##module##_initgroups_dyn( \
208 int *errnop) _public_;
210 typedef enum nss_status (*_nss_gethostbyname4_r_t
)(
212 struct gaih_addrtuple
**pat
,
213 char *buffer
, size_t buflen
,
214 int *errnop
, int *h_errnop
,
217 typedef enum nss_status (*_nss_gethostbyname3_r_t
)(
220 struct hostent
*result
,
221 char *buffer
, size_t buflen
,
222 int *errnop
, int *h_errnop
,
226 typedef enum nss_status (*_nss_gethostbyname2_r_t
)(
229 struct hostent
*result
,
230 char *buffer
, size_t buflen
,
231 int *errnop
, int *h_errnop
);
233 typedef enum nss_status (*_nss_gethostbyname_r_t
)(
235 struct hostent
*result
,
236 char *buffer
, size_t buflen
,
237 int *errnop
, int *h_errnop
);
239 typedef enum nss_status (*_nss_gethostbyaddr2_r_t
)(
240 const void* addr
, socklen_t len
,
242 struct hostent
*result
,
243 char *buffer
, size_t buflen
,
244 int *errnop
, int *h_errnop
,
246 typedef enum nss_status (*_nss_gethostbyaddr_r_t
)(
247 const void* addr
, socklen_t len
,
249 struct hostent
*host
,
250 char *buffer
, size_t buflen
,
251 int *errnop
, int *h_errnop
);
253 typedef enum nss_status (*_nss_getpwnam_r_t
)(
256 char *buffer
, size_t buflen
,
258 typedef enum nss_status (*_nss_getpwuid_r_t
)(
261 char *buffer
, size_t buflen
,
264 typedef enum nss_status (*_nss_getgrnam_r_t
)(
267 char *buffer
, size_t buflen
,
269 typedef enum nss_status (*_nss_getgrgid_r_t
)(
272 char *buffer
, size_t buflen
,