2001-12-03 09:49:47 +03:00
/*
Samba Unix / Linux SMB client library
Distributed SMB / CIFS Server Management Utility
Copyright ( C ) 2001 Andrew Bartlett ( abartlet @ samba . org )
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
2007-07-09 23:25:36 +04:00
the Free Software Foundation ; either version 3 of the License , or
2001-12-03 09:49:47 +03:00
( 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
2007-07-10 04:52:41 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>. */
2002-07-15 14:35:28 +04:00
2005-01-18 17:46:24 +03:00
/*
* A function of this type is passed to the '
* run_rpc_command ' wrapper . Must go before the net_proto . h
* include
*/
2005-09-30 21:13:37 +04:00
typedef NTSTATUS ( * rpc_command_fn ) ( const DOM_SID * ,
const char * ,
struct cli_state * cli ,
struct rpc_pipe_client * ,
TALLOC_CTX * ,
int ,
const char * * ) ;
2005-06-13 01:18:16 +04:00
typedef struct copy_clistate {
TALLOC_CTX * mem_ctx ;
struct cli_state * cli_share_src ;
struct cli_state * cli_share_dst ;
char * cwd ;
uint16 attribute ;
2005-09-30 21:13:37 +04:00
} copy_clistate ;
2005-06-13 01:18:16 +04:00
2006-02-04 01:19:41 +03:00
struct rpc_sh_ctx {
struct cli_state * cli ;
DOM_SID * domain_sid ;
2008-01-15 18:40:02 +03:00
const char * domain_name ;
2006-02-04 01:19:41 +03:00
const char * whoami ;
const char * thiscmd ;
struct rpc_sh_cmd * cmds ;
struct rpc_sh_ctx * parent ;
} ;
struct rpc_sh_cmd {
const char * name ;
struct rpc_sh_cmd * ( * sub ) ( TALLOC_CTX * mem_ctx ,
struct rpc_sh_ctx * ctx ) ;
int pipe_idx ;
NTSTATUS ( * fn ) ( TALLOC_CTX * mem_ctx , struct rpc_sh_ctx * ctx ,
struct rpc_pipe_client * pipe_hnd ,
int argc , const char * * argv ) ;
const char * help ;
} ;
2006-05-19 00:12:45 +04:00
enum netdom_domain_t { ND_TYPE_NT4 , ND_TYPE_AD } ;
2005-01-18 17:46:24 +03:00
/* INCLUDE FILES */
2004-10-07 08:01:18 +04:00
# include "utils/net_proto.h"
2001-12-03 09:49:47 +03:00
2005-01-18 17:46:24 +03:00
/* MACROS & DEFINES */
2006-05-12 19:17:35 +04:00
# define NET_FLAGS_MASTER 0x00000001
# define NET_FLAGS_DMB 0x00000002
# define NET_FLAGS_LOCALHOST_DEFAULT_INSANE 0x00000004 / * Would it be insane to set 'localhost'
as the default remote host for this
operation ? For example , localhost
is insane for a ' join ' operation . */
# define NET_FLAGS_PDC 0x00000008 /* PDC only */
# define NET_FLAGS_ANONYMOUS 0x00000010 /* use an anonymous connection */
# define NET_FLAGS_NO_PIPE 0x00000020 /* don't open an RPC pipe */
2001-12-03 09:49:47 +03:00
2005-06-13 01:18:16 +04:00
/* net share operation modes */
# define NET_MODE_SHARE_MIGRATE 1
2001-12-03 09:49:47 +03:00
extern int opt_maxusers ;
2003-01-03 11:28:12 +03:00
extern const char * opt_comment ;
2003-04-21 18:09:03 +04:00
extern const char * opt_container ;
2001-12-03 09:49:47 +03:00
extern int opt_flags ;
2003-01-03 11:28:12 +03:00
extern const char * opt_comment ;
2001-12-04 07:48:01 +03:00
2003-01-03 11:28:12 +03:00
extern const char * opt_target_workgroup ;
extern const char * opt_workgroup ;
2001-12-03 09:49:47 +03:00
extern int opt_long_list_entries ;
2004-04-19 00:22:31 +04:00
extern int opt_verbose ;
2001-12-31 16:00:59 +03:00
extern int opt_reboot ;
extern int opt_force ;
2003-10-23 18:33:19 +04:00
extern int opt_machine_pass ;
2001-12-31 16:00:59 +03:00
extern int opt_timeout ;
2003-01-03 11:28:12 +03:00
extern const char * opt_host ;
extern const char * opt_user_name ;
extern const char * opt_password ;
2007-10-19 04:40:25 +04:00
extern bool opt_user_specified ;
2002-07-15 14:35:28 +04:00
2007-10-19 22:38:36 +04:00
extern int opt_localgroup ;
extern int opt_domaingroup ;
2004-02-26 14:29:56 +03:00
extern const char * opt_newntname ;
extern int opt_rid ;
2004-08-10 18:27:17 +04:00
extern int opt_acls ;
2004-08-21 00:13:05 +04:00
extern int opt_attrs ;
extern int opt_timestamps ;
2004-08-10 18:27:17 +04:00
extern const char * opt_exclude ;
2004-08-27 01:37:20 +04:00
extern const char * opt_destination ;
2007-10-19 22:38:36 +04:00
extern int opt_testmode ;
2004-02-26 14:29:56 +03:00
2007-10-19 22:38:36 +04:00
extern int opt_have_ip ;
2007-10-25 01:16:54 +04:00
extern struct sockaddr_storage opt_dest_ip ;
2003-01-03 11:28:12 +03:00
2002-07-15 14:35:28 +04:00
extern const char * share_type [ ] ;
2005-07-07 01:02:43 +04:00
/* Structure for mapping accounts to groups */
/* Array element is the group rid */
typedef struct _groupmap {
uint32 rid ;
uint32 gidNumber ;
fstring sambaSID ;
fstring group_dn ;
} GROUPMAP ;
typedef struct _accountmap {
uint32 rid ;
fstring cn ;
} ACCOUNTMAP ;