2 Unix SMB/CIFS implementation.
3 Headers for the async winbind client library
4 Copyright (C) Volker Lendecke 2008
6 ** NOTE! The following LGPL license applies to the wbclient
7 ** library. This does NOT imply that all of Samba is released
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 3 of the License, or (at your option) any later version.
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Library General Public License for more details.
20 You should have received a copy of the GNU Lesser General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
29 #include "nsswitch/libwbclient/wbclient.h"
32 struct winbindd_request
;
33 struct winbindd_response
;
42 struct tevent_req
*wb_trans_send(TALLOC_CTX
*mem_ctx
,
43 struct tevent_context
*ev
,
44 struct wb_context
*wb_ctx
, bool need_priv
,
45 struct winbindd_request
*wb_req
);
46 wbcErr
wb_trans_recv(struct tevent_req
*req
, TALLOC_CTX
*mem_ctx
,
47 struct winbindd_response
**presponse
);
48 struct wb_context
*wb_context_init(TALLOC_CTX
*mem_ctx
, const char* dir
);
49 int wbcSetDebug(struct wb_context
*wb_ctx
,
50 void (*debug
)(void *context
,
51 enum wbcDebugLevel level
,
53 va_list ap
) PRINTF_ATTRIBUTE(3,0),
55 int wbcSetDebugStderr(struct wb_context
*wb_ctx
);
56 void wbcDebug(struct wb_context
*wb_ctx
, enum wbcDebugLevel level
,
57 const char *fmt
, ...) PRINTF_ATTRIBUTE(3,0);
59 /* Definitions from wb_reqtrans.c */
60 wbcErr
map_wbc_err_from_errno(int error
);
62 bool tevent_req_is_wbcerr(struct tevent_req
*req
, wbcErr
*pwbc_err
);
63 wbcErr
tevent_req_simple_recv_wbcerr(struct tevent_req
*req
);
65 struct tevent_req
*wb_req_read_send(TALLOC_CTX
*mem_ctx
,
66 struct tevent_context
*ev
,
67 int fd
, size_t max_extra_data
);
68 ssize_t
wb_req_read_recv(struct tevent_req
*req
, TALLOC_CTX
*mem_ctx
,
69 struct winbindd_request
**preq
, int *err
);
71 struct tevent_req
*wb_req_write_send(TALLOC_CTX
*mem_ctx
,
72 struct tevent_context
*ev
,
73 struct tevent_queue
*queue
, int fd
,
74 struct winbindd_request
*wb_req
);
75 ssize_t
wb_req_write_recv(struct tevent_req
*req
, int *err
);
77 struct tevent_req
*wb_resp_read_send(TALLOC_CTX
*mem_ctx
,
78 struct tevent_context
*ev
, int fd
);
79 ssize_t
wb_resp_read_recv(struct tevent_req
*req
, TALLOC_CTX
*mem_ctx
,
80 struct winbindd_response
**presp
, int *err
);
82 struct tevent_req
*wb_resp_write_send(TALLOC_CTX
*mem_ctx
,
83 struct tevent_context
*ev
,
84 struct tevent_queue
*queue
, int fd
,
85 struct winbindd_response
*wb_resp
);
86 ssize_t
wb_resp_write_recv(struct tevent_req
*req
, int *err
);
88 struct tevent_req
*wb_simple_trans_send(TALLOC_CTX
*mem_ctx
,
89 struct tevent_context
*ev
,
90 struct tevent_queue
*queue
, int fd
,
91 struct winbindd_request
*wb_req
);
92 int wb_simple_trans_recv(struct tevent_req
*req
, TALLOC_CTX
*mem_ctx
,
93 struct winbindd_response
**presponse
, int *err
);
95 #endif /*_WBC_ASYNC_H_*/