2009-02-04 11:07:36 +03:00
/*
Unix SMB / CIFS implementation .
Headers for the async winbind client library
2009-05-29 16:06:50 +04:00
Copyright ( C ) Volker Lendecke 2008
2009-02-04 11:07:36 +03:00
2009-05-29 16:15:51 +04:00
* * NOTE ! The following LGPL license applies to the wbclient
* * library . This does NOT imply that all of Samba is released
* * under the LGPL
2009-02-04 11:07:36 +03:00
2009-05-29 16:15:51 +04:00
This library is free software ; you can redistribute it and / or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation ; either
version 3 of the License , or ( at your option ) any later version .
This library is distributed in the hope that it will be useful ,
2009-02-04 11:07:36 +03:00
but WITHOUT ANY WARRANTY ; without even the implied warranty of
2009-05-29 16:15:51 +04:00
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Library General Public License for more details .
2009-02-04 11:07:36 +03:00
2009-05-29 16:15:51 +04:00
You should have received a copy of the GNU Lesser General Public License
2009-02-04 11:07:36 +03:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _WBC_ASYNC_H_
# define _WBC_ASYNC_H_
2009-04-16 16:53:36 +04:00
# include <talloc.h>
# include <tevent.h>
2009-02-04 11:07:36 +03:00
# include "nsswitch/libwbclient/wbclient.h"
2009-03-16 22:23:37 +03:00
struct wb_context ;
2009-04-16 16:53:36 +04:00
struct winbindd_request ;
struct winbindd_response ;
2009-02-04 11:07:36 +03:00
2009-06-02 01:33:27 +04:00
enum wbcDebugLevel {
WBC_DEBUG_FATAL ,
WBC_DEBUG_ERROR ,
WBC_DEBUG_WARNING ,
WBC_DEBUG_TRACE
} ;
2009-03-16 22:38:11 +03:00
struct tevent_req * wb_trans_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx , bool need_priv ,
struct winbindd_request * wb_req ) ;
wbcErr wb_trans_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
2009-02-04 11:07:36 +03:00
struct winbindd_response * * presponse ) ;
2009-04-21 11:58:42 +04:00
struct wb_context * wb_context_init ( TALLOC_CTX * mem_ctx , const char * dir ) ;
2009-06-02 01:33:27 +04:00
int wbcSetDebug ( struct wb_context * wb_ctx ,
void ( * debug ) ( void * context ,
enum wbcDebugLevel level ,
const char * fmt ,
va_list ap ) PRINTF_ATTRIBUTE ( 3 , 0 ) ,
void * context ) ;
int wbcSetDebugStderr ( struct wb_context * wb_ctx ) ;
void wbcDebug ( struct wb_context * wb_ctx , enum wbcDebugLevel level ,
const char * fmt , . . . ) PRINTF_ATTRIBUTE ( 3 , 0 ) ;
2009-02-04 11:07:36 +03:00
/* Definitions from wb_reqtrans.c */
wbcErr map_wbc_err_from_errno ( int error ) ;
2009-03-08 11:34:35 +03:00
bool tevent_req_is_wbcerr ( struct tevent_req * req , wbcErr * pwbc_err ) ;
wbcErr tevent_req_simple_recv_wbcerr ( struct tevent_req * req ) ;
2009-03-08 12:04:04 +03:00
struct tevent_req * wb_req_read_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
int fd , size_t max_extra_data ) ;
2009-05-06 17:10:00 +04:00
ssize_t wb_req_read_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
struct winbindd_request * * preq , int * err ) ;
2009-02-04 11:07:36 +03:00
2009-03-08 11:35:13 +03:00
struct tevent_req * wb_req_write_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct tevent_queue * queue , int fd ,
struct winbindd_request * wb_req ) ;
2009-05-06 17:10:00 +04:00
ssize_t wb_req_write_recv ( struct tevent_req * req , int * err ) ;
2009-02-04 11:07:36 +03:00
2009-03-08 12:20:27 +03:00
struct tevent_req * wb_resp_read_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev , int fd ) ;
2009-05-06 17:10:00 +04:00
ssize_t wb_resp_read_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
struct winbindd_response * * presp , int * err ) ;
2009-02-04 11:07:36 +03:00
2009-03-08 12:28:05 +03:00
struct tevent_req * wb_resp_write_send ( TALLOC_CTX * mem_ctx ,
2009-03-15 13:25:20 +03:00
struct tevent_context * ev ,
struct tevent_queue * queue , int fd ,
2009-03-08 12:28:05 +03:00
struct winbindd_response * wb_resp ) ;
2009-05-06 17:10:00 +04:00
ssize_t wb_resp_write_recv ( struct tevent_req * req , int * err ) ;
2009-02-04 11:07:36 +03:00
2009-05-09 23:01:09 +04:00
struct tevent_req * wb_simple_trans_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct tevent_queue * queue , int fd ,
struct winbindd_request * wb_req ) ;
int wb_simple_trans_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
struct winbindd_response * * presponse , int * err ) ;
2009-03-25 00:51:11 +03:00
/* Async functions from wbc_util.c */
struct tevent_req * wbcPing_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcPing_recv ( struct tevent_req * req ) ;
2009-02-12 02:11:45 +03:00
struct tevent_req * wbcInterfaceVersion_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcInterfaceVersion_recv ( struct tevent_req * req ,
uint32_t * interface_version ) ;
2009-03-25 12:08:10 +03:00
struct tevent_req * wbcInfo_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcInfo_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
char * winbind_separator ,
char * * version_string ) ;
2009-03-25 00:51:11 +03:00
2009-02-14 00:37:56 +03:00
struct tevent_req * wbcNetbiosName_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcNetbiosName_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
char * * netbios_name ) ;
2009-02-04 11:07:36 +03:00
# endif /*_WBC_ASYNC_H_*/