diff options
Diffstat (limited to 'source/utils/net.h')
-rw-r--r-- | source/utils/net.h | 143 |
1 files changed, 64 insertions, 79 deletions
diff --git a/source/utils/net.h b/source/utils/net.h index 5dc2b11d4e..f0436688ab 100644 --- a/source/utils/net.h +++ b/source/utils/net.h @@ -1,91 +1,32 @@ -/* - Samba Unix/Linux SMB client library - Distributed SMB/CIFS Server Management Utility +/* + 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 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/>. */ -/* +/* * A function of this type is passed to the ' - * run_rpc_command' wrapper. Must go before the net_proto.h + * run_rpc_command' wrapper. Must go before the net_proto.h * include */ #include "lib/netapi/netapi.h" #include "libnet/libnet.h" -struct net_context { - const char *opt_requester_name; - const char *opt_host; - const char *opt_password; - const char *opt_user_name; - bool opt_user_specified; - const char *opt_workgroup; - int opt_long_list_entries; - int opt_reboot; - int opt_force; - int opt_stdin; - int opt_port; - int opt_verbose; - int opt_maxusers; - const char *opt_comment; - const char *opt_container; - int opt_flags; - int opt_timeout; - const char *opt_target_workgroup; - int opt_machine_pass; - int opt_localgroup; - int opt_domaingroup; - int do_talloc_report; - const char *opt_newntname; - int opt_rid; - int opt_acls; - int opt_attrs; - int opt_timestamps; - const char *opt_exclude; - const char *opt_destination; - int opt_testmode; - bool opt_kerberos; - int opt_force_full_repl; - int opt_single_obj_repl; - int opt_clean_old_entries; - - int opt_have_ip; - struct sockaddr_storage opt_dest_ip; - bool smb_encrypt; - struct libnetapi_ctx *netapi_ctx; - - bool display_usage; - void *private_data; -}; - -#define NET_TRANSPORT_LOCAL 0x01 -#define NET_TRANSPORT_RAP 0x02 -#define NET_TRANSPORT_RPC 0x04 -#define NET_TRANSPORT_ADS 0x08 - -struct functable { - const char *funcname; - int (*fn)(struct net_context *c, int argc, const char **argv); - int valid_transports; - const char *description; - const char *usage; -}; - -typedef NTSTATUS (*rpc_command_fn)(struct net_context *c, - const DOM_SID *, - const char *, +typedef NTSTATUS (*rpc_command_fn)(const DOM_SID *, + const char *, struct cli_state *cli, struct rpc_pipe_client *, TALLOC_CTX *, @@ -98,7 +39,6 @@ typedef struct copy_clistate { struct cli_state *cli_share_dst; char *cwd; uint16 attribute; - struct net_context *c; }copy_clistate; struct rpc_sh_ctx { @@ -115,12 +55,10 @@ struct rpc_sh_ctx { struct rpc_sh_cmd { const char *name; - struct rpc_sh_cmd *(*sub)(struct net_context *c, - TALLOC_CTX *mem_ctx, + struct rpc_sh_cmd *(*sub)(TALLOC_CTX *mem_ctx, struct rpc_sh_ctx *ctx); - const struct ndr_syntax_id *interface; - NTSTATUS (*fn)(struct net_context *c, 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; @@ -131,8 +69,7 @@ enum netdom_domain_t { ND_TYPE_NT4, ND_TYPE_AD }; /* INCLUDE FILES */ #include "utils/net_proto.h" -#include "utils/net_help_common.h" - + /* MACROS & DEFINES */ #define NET_FLAGS_MASTER 0x00000001 @@ -141,12 +78,60 @@ enum netdom_domain_t { ND_TYPE_NT4, ND_TYPE_AD }; 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_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 */ -#define NET_FLAGS_SIGN 0x00000040 /* sign RPC connection */ -#define NET_FLAGS_SEAL 0x00000080 /* seal RPC connection */ /* net share operation modes */ #define NET_MODE_SHARE_MIGRATE 1 +extern int opt_maxusers; +extern const char *opt_comment; +extern const char *opt_container; +extern int opt_flags; + +extern const char *opt_comment; + +extern const char *opt_target_workgroup; +extern const char *opt_workgroup; +extern int opt_long_list_entries; +extern int opt_verbose; +extern int opt_reboot; +extern int opt_force; +extern int opt_machine_pass; +extern int opt_timeout; +extern const char *opt_host; +extern const char *opt_user_name; +extern const char *opt_password; +extern bool opt_user_specified; + +extern int opt_localgroup; +extern int opt_domaingroup; +extern const char *opt_newntname; +extern int opt_rid; +extern int opt_acls; +extern int opt_attrs; +extern int opt_timestamps; +extern const char *opt_exclude; +extern const char *opt_destination; +extern int opt_testmode; + +extern int opt_have_ip; +extern struct sockaddr_storage opt_dest_ip; +extern struct libnetapi_ctx *netapi_ctx; + +extern const char *share_type[]; + +/* 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; |