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 ) ;
2023-03-06 15:55:43 +03: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 ) ;
2011-02-28 12:19:44 +03: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 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 ) ;
2021-02-08 18:21:03 +03:00
NTSTATUS rpc_pipe_open_ncalrpc ( TALLOC_CTX * mem_ctx ,
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 ) ;
2021-04-07 10:19:27 +03: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 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 ) ;
2024-09-17 06:54:05 +03:00
NTSTATUS cli_rpc_pipe_client_prepare_alter ( struct rpc_pipe_client * p ,
bool new_auth_context ,
const struct ndr_interface_table * table ,
bool new_pres_context ) ;
2011-02-28 12:19:44 +03:00
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 ,
2021-11-18 13:31:00 +03:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
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 ,
2021-11-18 13:43:08 +03:00
const struct sockaddr_storage * remote_sockaddr ,
2014-09-23 20:12:20 +04:00
struct cli_credentials * creds ,
struct rpc_pipe_client * * presult ) ;
2024-09-17 05:23:40 +03:00
NTSTATUS cli_rpc_pipe_client_auth_schannel (
struct rpc_pipe_client * rpccli ,
const struct ndr_interface_table * table ,
struct netlogon_creds_cli_context * netlogon_creds ) ;
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 ,
2021-11-18 13:47:26 +03:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2017-09-18 00:28:44 +03:00
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 ,
2021-11-18 13:52:18 +03:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
2014-12-17 12:19:49 +03:00
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 ,
2021-11-18 13:47:26 +03:00
const char * remote_name ,
const struct sockaddr_storage * remote_sockaddr ,
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
# endif /* _CLI_PIPE_H */
/* vim: set ts=8 sw=8 noet cindent ft=c.doxygen: */