libcli/named_pipe_auth: we need to hide length of the message mode header from the...
[samba.git] / libcli / named_pipe_auth / npa_tstream.h
1 /*
2    Unix SMB/CIFS implementation.
3
4    Copyright (C) Stefan Metzmacher 2009
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 NPA_TSTREAM_H
21 #define NPA_TSTREAM_H
22
23 struct tevent_req;
24 struct tevent_context;
25 struct netr_SamInfo3;
26
27 struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx,
28                                         struct tevent_context *ev,
29                                         struct smb_iconv_convenience *smb_iconv_c,
30                                         const char *directory,
31                                         const char *npipe,
32                                         const struct tsocket_address *client,
33                                         const char *client_name_in,
34                                         const struct tsocket_address *server,
35                                         const char *server_name,
36                                         const struct netr_SamInfo3 *info3,
37                                         DATA_BLOB session_key,
38                                         DATA_BLOB delegated_creds);
39 int _tstream_npa_connect_recv(struct tevent_req *req,
40                               int *perrno,
41                               TALLOC_CTX *mem_ctx,
42                               struct tstream_context **stream,
43                               uint16_t *file_type,
44                               uint16_t *device_state,
45                               uint64_t *allocation_size,
46                               const char *location);
47 #define tstream_npa_connect_recv(req, perrno, mem_ctx, stream, f, d, a) \
48         _tstream_npa_connect_recv(req, perrno, mem_ctx, stream, f, d, a, \
49                                   __location__)
50
51 int _tstream_npa_existing_socket(TALLOC_CTX *mem_ctx,
52                                  int fd,
53                                  uint16_t file_type,
54                                  struct tstream_context **_stream,
55                                  const char *location);
56 #define tstream_npa_existing_socket(mem_ctx, fd, ft, stream) \
57         _tstream_npa_existing_socket(mem_ctx, fd, ft, stream, \
58                                      __location__)
59
60 #endif /* NPA_TSTREAM_H */