2011-02-28 10:19:44 +01: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 14:32:16 +02:00
# include "rpc_client/rpc_client.h"
2014-09-22 20:28:01 -07:00
# include "auth/credentials/credentials.h"
2011-04-13 14:32:16 +02:00
2011-04-21 18:24:35 +02:00
/* The following definitions come from rpc_client/cli_pipe.c */
2011-02-28 10:19:44 +01:00
struct tevent_req * rpc_pipe_bind_send ( TALLOC_CTX * mem_ctx ,
2013-02-18 09:57:22 +01:00
struct tevent_context * ev ,
2011-02-28 10:19:44 +01: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 ) ;
2023-03-06 13:55:43 +01:00
struct tevent_req * rpc_pipe_open_np_send (
TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
struct cli_state * cli ,
const struct ndr_interface_table * table ) ;
NTSTATUS rpc_pipe_open_np_recv (
struct tevent_req * req ,
TALLOC_CTX * mem_ctx ,
struct rpc_pipe_client * * _result ) ;
NTSTATUS rpc_pipe_open_np ( struct cli_state * cli ,
const struct ndr_interface_table * table ,
struct rpc_pipe_client * * presult ) ;
2011-02-28 10:19:44 +01:00
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 11:49:20 +01:00
NTSTATUS rpccli_ncalrpc_bind_data ( TALLOC_CTX * mem_ctx ,
struct pipe_auth_data * * presult ) ;
2011-02-28 10:19:44 +01:00
NTSTATUS rpccli_anon_bind_data ( TALLOC_CTX * mem_ctx ,
struct pipe_auth_data * * presult ) ;
2021-02-08 16:21:03 +01:00
NTSTATUS rpc_pipe_open_ncalrpc ( TALLOC_CTX * mem_ctx ,
2013-05-17 16:16:59 +02:00
const struct ndr_interface_table * table ,
2011-02-28 10:19:44 +01:00
struct rpc_pipe_client * * presult ) ;
2021-04-07 07:19:27 +00:00
NTSTATUS rpc_pipe_open_local_np (
TALLOC_CTX * mem_ctx ,
const struct ndr_interface_table * table ,
const char * remote_client_name ,
const struct tsocket_address * remote_client_addr ,
const char * local_server_name ,
const struct tsocket_address * local_server_addr ,
const struct auth_session_info * session_info ,
struct rpc_pipe_client * * presult ) ;
2013-08-27 13:23:04 +02: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 10:19:44 +01:00
NTSTATUS cli_rpc_pipe_open_noauth ( struct cli_state * cli ,
2013-05-24 13:29:28 +02:00
const struct ndr_interface_table * table ,
2011-02-28 10:19:44 +01: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 13:33:03 +02:00
const struct ndr_interface_table * table ,
2021-11-18 11:31:00 +01:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2011-02-28 10:19:44 +01:00
struct rpc_pipe_client * * presult ) ;
2014-09-23 09:12:20 -07: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 ,
2021-11-18 11:43:08 +01:00
const struct sockaddr_storage * remote_sockaddr ,
2014-09-23 09:12:20 -07:00
struct cli_credentials * creds ,
struct rpc_pipe_client * * presult ) ;
2017-09-17 14:28:44 -07: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 ,
2021-11-18 11:47:26 +01:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2017-09-17 14:28:44 -07:00
struct rpc_pipe_client * * _rpccli ) ;
2014-12-17 09:19:49 +00: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 ,
2021-11-18 11:52:18 +01:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2014-12-17 09:19:49 +00:00
struct rpc_pipe_client * * _rpccli ) ;
2011-02-28 10:19:44 +01:00
NTSTATUS cli_rpc_pipe_open_schannel ( struct cli_state * cli ,
2013-09-16 20:53:51 +02:00
struct messaging_context * msg_ctx ,
2013-05-24 13:03:23 +02:00
const struct ndr_interface_table * table ,
2011-02-28 10:19:44 +01:00
enum dcerpc_transport_t transport ,
const char * domain ,
2021-11-18 11:47:26 +01:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2013-09-16 20:53:51 +02:00
struct rpc_pipe_client * * presult ,
TALLOC_CTX * mem_ctx ,
struct netlogon_creds_cli_context * * pcreds ) ;
2011-02-28 10:19:44 +01: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: */