nwrap: catch NULL list in nwrap_add_hname_add_to_existing
[kai/samba-autobuild/.git] / nsswitch / libwbclient / wbclient_internal.h
1 /*
2    Unix SMB/CIFS implementation.
3
4    Winbind client API
5
6    Copyright (C) Gerald (Jerry) Carter 2007
7
8    This library is free software; you can redistribute it and/or
9    modify it under the terms of the GNU Lesser General Public
10    License as published by the Free Software Foundation; either
11    version 3 of the License, or (at your option) any later version.
12
13    This library is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    Library General Public License for more details.
17
18    You should have received a copy of the GNU Lesser General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 */
21
22 #ifndef _WBCLIENT_INTERNAL_H
23 #define _WBCLIENT_INTERNAL_H
24
25 struct wbcContext {
26         struct winbindd_context *winbindd_ctx;
27         uint32_t pw_cache_size; /* Number of cached passwd structs */
28         uint32_t pw_cache_idx;  /* Position of the pwent context */
29         uint32_t gr_cache_size; /* Number of cached group structs */
30         uint32_t gr_cache_idx;  /* Position of the grent context */
31 };
32
33 /* Private functions */
34
35 wbcErr wbcRequestResponse(struct wbcContext *ctx, int cmd,
36                           struct winbindd_request *request,
37                           struct winbindd_response *response);
38
39 wbcErr wbcRequestResponsePriv(struct wbcContext *ctx, int cmd,
40                               struct winbindd_request *request,
41                               struct winbindd_response *response);
42
43 void *wbcAllocateMemory(size_t nelem, size_t elsize,
44                         void (*destructor)(void *ptr));
45
46 char *wbcStrDup(const char *str);
47 const char **wbcAllocateStringArray(int num_strings);
48 struct wbcContext *wbcGetGlobalCtx(void);
49
50 #endif      /* _WBCLIENT_INTERNAL_H */