1 /* 2 Unix SMB/Netbios implementation. 3 RPC Server Headers 4 Copyright (C) Simo Sorce 2010 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef _RPC_NCACN_NP_H_ 21 #define _RPC_NCACN_NP_H_ 22 23 struct dcerpc_binding_handle; 24 struct ndr_interface_table; 25 struct tsocket_address; 26 27 struct npa_state { 28 struct tstream_context *stream; 29 30 struct tevent_queue *read_queue; 31 struct tevent_queue *write_queue; 32 33 uint64_t allocation_size; 34 uint16_t device_state; 35 uint16_t file_type; 36 37 void *private_data; 38 }; 39 40 NTSTATUS make_external_rpc_pipe(TALLOC_CTX *mem_ctx, 41 const char *pipe_name, 42 const struct tsocket_address *remote_client_address, 43 const struct tsocket_address *local_server_address, 44 const struct auth_session_info *session_info, 45 struct npa_state **pnpa); 46 47 NTSTATUS make_internal_rpc_pipe_socketpair( 48 TALLOC_CTX *mem_ctx, 49 struct tevent_context *ev_ctx, 50 struct messaging_context *msg_ctx, 51 const char *pipe_name, 52 const struct ndr_syntax_id *syntax, 53 const struct tsocket_address *remote_address, 54 const struct tsocket_address *local_address, 55 const struct auth_session_info *session_info, 56 struct npa_state **pnpa); 57 58 NTSTATUS rpcint_binding_handle(TALLOC_CTX *mem_ctx, 59 const struct ndr_interface_table *ndr_table, 60 const struct tsocket_address *remote_address, 61 const struct tsocket_address *local_address, 62 const struct auth_session_info *session_info, 63 struct messaging_context *msg_ctx, 64 struct dcerpc_binding_handle **binding_handle); 65 NTSTATUS rpc_pipe_open_interface(TALLOC_CTX *mem_ctx, 66 const struct ndr_interface_table *table, 67 const struct auth_session_info *session_info, 68 const struct tsocket_address *remote_address, 69 const struct tsocket_address *local_address, 70 struct messaging_context *msg_ctx, 71 struct rpc_pipe_client **cli_pipe); 72 73 NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx, 74 const struct ndr_interface_table *ndr_table, 75 const struct auth_session_info *session_info, 76 const struct tsocket_address *remote_address, 77 const struct tsocket_address *local_address, 78 struct messaging_context *msg_ctx, 79 struct rpc_pipe_client **presult); 80 81 #endif /* _RPC_NCACN_NP_H_ */ 82