2007-12-12 20:14:54 +03:00
/*
* Unix SMB / CIFS implementation .
* NetApi Support
2008-01-07 20:36:06 +03:00
* Copyright ( C ) Guenther Deschner 2007 - 2008
2007-12-12 20:14:54 +03:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , see < http : //www.gnu.org/licenses/>.
*/
2007-12-14 14:22:20 +03:00
# ifndef __LIB_NETAPI_H__
# define __LIB_NETAPI_H__
2008-01-11 16:47:52 +03:00
/****************************************************************
include some basic headers
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include <inttypes.h>
/****************************************************************
NET_API_STATUS
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-18 04:21:38 +03:00
# define NET_API_STATUS uint32_t
2008-01-07 20:36:06 +03:00
# define NET_API_STATUS_SUCCESS 0
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-18 04:21:38 +03:00
2007-12-12 20:14:54 +03:00
struct libnetapi_ctx {
2008-01-07 22:06:41 +03:00
char * debuglevel ;
char * error_string ;
2007-12-18 04:15:49 +03:00
char * username ;
char * workgroup ;
char * password ;
2008-01-07 22:03:32 +03:00
char * krb5_cc_env ;
2007-12-12 20:14:54 +03:00
} ;
2008-01-07 22:03:32 +03:00
/****************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-18 04:29:50 +03:00
NET_API_STATUS libnetapi_init ( struct libnetapi_ctx * * ctx ) ;
2007-12-18 04:47:01 +03:00
NET_API_STATUS libnetapi_getctx ( struct libnetapi_ctx * * ctx ) ;
2007-12-18 04:29:50 +03:00
NET_API_STATUS libnetapi_free ( struct libnetapi_ctx * ctx ) ;
2007-12-18 04:43:22 +03:00
NET_API_STATUS libnetapi_set_debuglevel ( struct libnetapi_ctx * ctx , const char * debuglevel ) ;
2008-01-07 22:06:41 +03:00
NET_API_STATUS libnetapi_get_debuglevel ( struct libnetapi_ctx * ctx , char * * debuglevel ) ;
2007-12-18 04:34:07 +03:00
NET_API_STATUS libnetapi_set_username ( struct libnetapi_ctx * ctx , const char * username ) ;
NET_API_STATUS libnetapi_set_password ( struct libnetapi_ctx * ctx , const char * password ) ;
NET_API_STATUS libnetapi_set_workgroup ( struct libnetapi_ctx * ctx , const char * workgroup ) ;
2008-01-11 16:47:23 +03:00
const char * libnetapi_errstr ( NET_API_STATUS status ) ;
2008-01-18 03:56:01 +03:00
NET_API_STATUS libnetapi_set_error_string ( struct libnetapi_ctx * ctx , const char * format , . . . ) ;
2008-01-11 16:47:23 +03:00
const char * libnetapi_get_error_string ( struct libnetapi_ctx * ctx , NET_API_STATUS status ) ;
2008-01-07 22:06:41 +03:00
/****************************************************************
2008-01-18 03:56:01 +03:00
NetApiBufferFree
2008-01-07 22:06:41 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-01-08 13:53:38 +03:00
NET_API_STATUS NetApiBufferFree ( void * buffer ) ;
/****************************************************************
2008-01-18 03:56:01 +03:00
NetJoinDomain
2008-01-08 13:53:38 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-12 20:14:54 +03:00
2007-12-20 03:19:26 +03:00
NET_API_STATUS NetJoinDomain ( const char * server ,
const char * domain ,
const char * account_ou ,
const char * account ,
const char * password ,
uint32_t join_options ) ;
2008-01-18 03:56:01 +03:00
/****************************************************************
NetUnjoinDomain
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-20 03:19:26 +03:00
NET_API_STATUS NetUnjoinDomain ( const char * server_name ,
const char * account ,
const char * password ,
uint32_t unjoin_flags ) ;
2008-01-18 03:56:01 +03:00
/****************************************************************
NetGetJoinInformation
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-20 03:19:26 +03:00
NET_API_STATUS NetGetJoinInformation ( const char * server_name ,
const char * * name_buffer ,
uint16_t * name_type ) ;
2007-12-14 14:22:20 +03:00
2008-01-18 05:14:08 +03:00
/****************************************************************
NetGetJoinableOUs
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
NET_API_STATUS NetGetJoinableOUs ( const char * server_name ,
const char * domain ,
const char * account ,
const char * password ,
uint32_t * ou_count ,
const char * * * ous ) ;
2008-01-18 03:56:01 +03:00
/****************************************************************
NetServerGetInfo
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-20 03:19:26 +03:00
NET_API_STATUS NetServerGetInfo ( const char * server_name ,
uint32_t level ,
uint8_t * * buffer ) ;
2008-01-18 03:56:01 +03:00
/****************************************************************
NetServerSetInfo
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-20 03:19:26 +03:00
NET_API_STATUS NetServerSetInfo ( const char * server_name ,
uint32_t level ,
uint8_t * buffer ,
uint32_t * parm_error ) ;
2007-12-21 17:51:00 +03:00
2008-01-18 03:56:01 +03:00
/****************************************************************
NetGetDCName
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-21 17:51:00 +03:00
NET_API_STATUS NetGetDCName ( const char * server_name ,
const char * domain_name ,
uint8_t * * buffer ) ;
2008-01-18 03:56:01 +03:00
/****************************************************************
NetGetAnyDCName
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-12-21 17:51:00 +03:00
NET_API_STATUS NetGetAnyDCName ( const char * server_name ,
const char * domain_name ,
uint8_t * * buffer ) ;
2007-12-14 14:22:20 +03:00
# endif