2011-02-28 12:19:44 +03:00
/*
* Unix SMB / CIFS implementation .
*
* RPC Pipe client routines
*
* Copyright ( c ) 2005 Jeremy Allison
* Copyright ( c ) 2010 Simo Sorce
*
* 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/>.
*/
# ifndef _CLI_PIPE_H
# define _CLI_PIPE_H
2011-04-13 16:32:16 +04:00
# include "rpc_client/rpc_client.h"
2014-09-23 07:28:01 +04:00
# include "auth/credentials/credentials.h"
2011-04-13 16:32:16 +04:00
2011-04-21 20:24:35 +04:00
/* The following definitions come from rpc_client/cli_pipe.c */
2011-02-28 12:19:44 +03:00
struct tevent_req * rpc_pipe_bind_send ( TALLOC_CTX * mem_ctx ,
2013-02-18 12:57:22 +04:00
struct tevent_context * ev ,
2011-02-28 12:19:44 +03:00
struct rpc_pipe_client * cli ,
struct pipe_auth_data * auth ) ;
NTSTATUS rpc_pipe_bind_recv ( struct tevent_req * req ) ;
NTSTATUS rpc_pipe_bind ( struct rpc_pipe_client * cli ,
struct pipe_auth_data * auth ) ;
unsigned int rpccli_set_timeout ( struct rpc_pipe_client * cli ,
unsigned int timeout ) ;
bool rpccli_is_connected ( struct rpc_pipe_client * rpc_cli ) ;
2011-03-01 13:49:20 +03:00
NTSTATUS rpccli_ncalrpc_bind_data ( TALLOC_CTX * mem_ctx ,
struct pipe_auth_data * * presult ) ;
2011-02-28 12:19:44 +03:00
NTSTATUS rpccli_anon_bind_data ( TALLOC_CTX * mem_ctx ,
struct pipe_auth_data * * presult ) ;
NTSTATUS rpc_pipe_open_tcp ( TALLOC_CTX * mem_ctx ,
const char * host ,
2012-11-23 21:15:30 +04:00
const struct sockaddr_storage * ss_addr ,
2013-05-24 15:44:00 +04:00
const struct ndr_interface_table * table ,
2011-02-28 12:19:44 +03:00
struct rpc_pipe_client * * presult ) ;
NTSTATUS rpc_pipe_open_ncalrpc ( TALLOC_CTX * mem_ctx , const char * socket_path ,
2013-05-17 18:16:59 +04:00
const struct ndr_interface_table * table ,
2011-02-28 12:19:44 +03:00
struct rpc_pipe_client * * presult ) ;
2013-08-27 15:23:04 +04:00
struct dcerpc_binding_handle * rpccli_bh_create ( struct rpc_pipe_client * c ,
const struct GUID * object ,
const struct ndr_interface_table * table ) ;
2011-02-28 12:19:44 +03:00
NTSTATUS cli_rpc_pipe_open_noauth ( struct cli_state * cli ,
2013-05-24 15:29:28 +04:00
const struct ndr_interface_table * table ,
2011-02-28 12:19:44 +03:00
struct rpc_pipe_client * * presult ) ;
NTSTATUS cli_rpc_pipe_open_noauth_transport ( struct cli_state * cli ,
enum dcerpc_transport_t transport ,
2013-05-24 15:33:03 +04:00
const struct ndr_interface_table * table ,
2011-02-28 12:19:44 +03:00
struct rpc_pipe_client * * presult ) ;
2014-09-23 20:12:20 +04:00
/****************************************************************************
Open a named pipe to an SMB server and bind using the mech specified
This routine steals the creds pointer that is passed in
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
NTSTATUS cli_rpc_pipe_open_with_creds ( struct cli_state * cli ,
const struct ndr_interface_table * table ,
enum dcerpc_transport_t transport ,
enum dcerpc_AuthType auth_type ,
enum dcerpc_AuthLevel auth_level ,
const char * server ,
struct cli_credentials * creds ,
struct rpc_pipe_client * * presult ) ;
2012-01-02 05:51:06 +04:00
NTSTATUS cli_rpc_pipe_open_generic_auth ( struct cli_state * cli ,
2012-01-10 14:53:42 +04:00
const struct ndr_interface_table * table ,
2012-01-02 05:51:06 +04:00
enum dcerpc_transport_t transport ,
2014-09-23 07:33:43 +04:00
enum credentials_use_kerberos use_kerberos ,
2012-01-02 05:51:06 +04:00
enum dcerpc_AuthType auth_type ,
enum dcerpc_AuthLevel auth_level ,
const char * server ,
const char * domain ,
const char * username ,
const char * password ,
struct rpc_pipe_client * * presult ) ;
2011-02-28 12:19:44 +03:00
2017-09-18 00:28:44 +03:00
NTSTATUS cli_rpc_pipe_open_bind_schannel (
struct cli_state * cli ,
const struct ndr_interface_table * table ,
enum dcerpc_transport_t transport ,
struct netlogon_creds_cli_context * netlogon_creds ,
struct rpc_pipe_client * * _rpccli ) ;
2014-12-17 12:19:49 +03:00
NTSTATUS cli_rpc_pipe_open_schannel_with_creds ( struct cli_state * cli ,
const struct ndr_interface_table * table ,
enum dcerpc_transport_t transport ,
struct netlogon_creds_cli_context * netlogon_creds ,
struct rpc_pipe_client * * _rpccli ) ;
2011-02-28 12:19:44 +03:00
NTSTATUS cli_rpc_pipe_open_schannel ( struct cli_state * cli ,
2013-09-16 22:53:51 +04:00
struct messaging_context * msg_ctx ,
2013-05-24 15:03:23 +04:00
const struct ndr_interface_table * table ,
2011-02-28 12:19:44 +03:00
enum dcerpc_transport_t transport ,
const char * domain ,
2013-09-16 22:53:51 +04:00
struct rpc_pipe_client * * presult ,
TALLOC_CTX * mem_ctx ,
struct netlogon_creds_cli_context * * pcreds ) ;
2011-02-28 12:19:44 +03:00
NTSTATUS cli_get_session_key ( TALLOC_CTX * mem_ctx ,
struct rpc_pipe_client * cli ,
DATA_BLOB * session_key ) ;
# endif /* _CLI_PIPE_H */
/* vim: set ts=8 sw=8 noet cindent ft=c.doxygen: */