1 /* 2 Unix SMB/CIFS implementation. 3 RPC pipe client 4 5 Copyright (C) Tim Potter 2000 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef RPCCLIENT_H 22 #define RPCCLIENT_H 23 24 #include "rpc_client/cli_pipe.h" 25 26 typedef enum { 27 RPC_RTYPE_NTSTATUS = 0, 28 RPC_RTYPE_WERROR, 29 MAX_RPC_RETURN_TYPE 30 } RPC_RETURN_TYPE; 31 32 struct cmd_set { 33 const char *name; 34 RPC_RETURN_TYPE returntype; 35 NTSTATUS (*ntfn)(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, 36 const char **argv); 37 WERROR (*wfn)(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv); 38 const struct ndr_interface_table *table; 39 struct rpc_pipe_client *rpc_pipe; 40 const char *description; 41 const char *usage; 42 bool use_netlogon_creds; 43 }; 44 45 extern struct messaging_context *rpcclient_msg_ctx; 46 extern struct netlogon_creds_cli_context *rpcclient_netlogon_creds; 47 48 #endif /* RPCCLIENT_H */ 49