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"
2011-02-17 02:43:05 +03:00
# include "nsswitch/wb_reqtrans.h"
2009-02-04 11:07:36 +03:00
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-04-01 01:10:48 +04:00
/* Async functions from wbc_idmap.c */
struct tevent_req * wbcSidToUid_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const struct wbcDomainSid * sid ) ;
wbcErr wbcSidToUid_recv ( struct tevent_req * req , uid_t * puid ) ;
2009-04-02 11:57:40 +04:00
struct tevent_req * wbcUidToSid_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
uid_t uid ) ;
wbcErr wbcUidToSid_recv ( struct tevent_req * req , struct wbcDomainSid * psid ) ;
2009-04-02 11:22:43 +04:00
struct tevent_req * wbcSidToGid_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const struct wbcDomainSid * sid ) ;
wbcErr wbcSidToGid_recv ( struct tevent_req * req , gid_t * pgid ) ;
2009-04-02 11:45:39 +04:00
struct tevent_req * wbcGidToSid_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
gid_t gid ) ;
wbcErr wbcGidToSid_recv ( struct tevent_req * req , struct wbcDomainSid * psid ) ;
2009-05-28 02:55:57 +04:00
/* Async functions from wbc_pam.c */
struct tevent_req * wbcAuthenticateUserEx_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const struct wbcAuthUserParams * params ) ;
wbcErr wbcAuthenticateUserEx_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct wbcAuthUserInfo * * info ,
struct wbcAuthErrorInfo * * error ) ;
2009-04-24 18:24:56 +04:00
/* Async functions from wbc_sid.c */
2009-05-28 02:57:32 +04:00
struct tevent_req * wbcLookupName_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const char * domain ,
const char * name ) ;
wbcErr wbcLookupName_recv ( struct tevent_req * req ,
struct wbcDomainSid * sid ,
enum wbcSidType * name_type ) ;
2009-04-24 18:24:56 +04:00
struct tevent_req * wbcLookupSid_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const struct wbcDomainSid * sid ) ;
wbcErr wbcLookupSid_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
char * * pdomain ,
char * * pname ,
enum wbcSidType * pname_type ) ;
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-14 00:51:52 +03:00
struct tevent_req * wbcDomainName_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcDomainName_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
char * * netbios_name ) ;
2009-02-15 13:01:44 +03:00
struct tevent_req * wbcInterfaceDetails_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ) ;
wbcErr wbcInterfaceDetails_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct wbcInterfaceDetails * * details ) ;
2009-02-14 12:06:05 +03:00
struct tevent_req * wbcDomainInfo_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct wb_context * wb_ctx ,
const char * domain ) ;
wbcErr wbcDomainInfo_recv ( struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct wbcDomainInfo * * dinfo ) ;
2009-02-04 11:07:36 +03:00
# endif /*_WBC_ASYNC_H_*/