s3/rpc_client: Ensure max possible row buffer size is not exceeded
[samba.git] / source3 / rpc_client / cli_mdssvc.h
1 /*
2    Unix SMB/CIFS implementation.
3    mdssvc client functions
4
5    Copyright (C) Ralph Boehme                   2019
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #ifndef _MDSCLI_H_
22 #define _MDSCLI_H_
23
24 struct mdscli_ctx;
25 struct mdscli_search_ctx;
26
27 struct mdsctx_id mdscli_new_ctx_id(struct mdscli_ctx *mdscli_ctx);
28 char *mdscli_get_basepath(TALLOC_CTX *mem_ctx,
29                           struct mdscli_ctx *mdscli_ctx);
30 struct mdscli_ctx *mdscli_search_get_ctx(struct mdscli_search_ctx *search);
31
32 struct tevent_req *mdscli_connect_send(TALLOC_CTX *mem_ctx,
33                                        struct tevent_context *ev,
34                                        struct dcerpc_binding_handle *bh,
35                                        const char *share_name,
36                                        const char *mount_path);
37 NTSTATUS mdscli_connect_recv(struct tevent_req *req,
38                              TALLOC_CTX *mem_ctx,
39                              struct mdscli_ctx **mdscli_ctx);
40 NTSTATUS mdscli_connect(TALLOC_CTX *mem_ctx,
41                         struct dcerpc_binding_handle *bh,
42                         const char *share_name,
43                         const char *mount_path,
44                         struct mdscli_ctx **mdscli_ctx);
45
46 struct tevent_req *mdscli_search_send(TALLOC_CTX *mem_ctx,
47                                       struct tevent_context *ev,
48                                       struct mdscli_ctx *mdscli_ctx,
49                                       const char *mds_query,
50                                       const char *path_scope,
51                                       bool live);
52 NTSTATUS mdscli_search_recv(struct tevent_req *req,
53                             TALLOC_CTX *mem_ctx,
54                             struct mdscli_search_ctx **search);
55 NTSTATUS mdscli_search(TALLOC_CTX *mem_ctx,
56                        struct mdscli_ctx *mdscli_ctx,
57                        const char *mds_query,
58                        const char *path_scope,
59                        bool live,
60                        struct mdscli_search_ctx **search);
61
62 struct tevent_req *mdscli_get_results_send(
63                         TALLOC_CTX *mem_ctx,
64                         struct tevent_context *ev,
65                         struct mdscli_search_ctx *search);
66 NTSTATUS mdscli_get_results_recv(struct tevent_req *req,
67                                  TALLOC_CTX *mem_ctx,
68                                  uint64_t **cnids);
69 NTSTATUS mdscli_get_results(TALLOC_CTX *mem_ctx,
70                             struct mdscli_search_ctx *search,
71                             uint64_t **_cnids);
72
73 struct tevent_req *mdscli_get_path_send(TALLOC_CTX *mem_ctx,
74                                         struct tevent_context *ev,
75                                         struct mdscli_ctx *mdscli_ctx,
76                                         uint64_t cnid);
77 NTSTATUS mdscli_get_path_recv(struct tevent_req *req,
78                               TALLOC_CTX *mem_ctx,
79                               char **path);
80 NTSTATUS mdscli_get_path(TALLOC_CTX *mem_ctx,
81                          struct mdscli_ctx *mdscli_ctx,
82                          uint64_t cnid,
83                          char **path);
84
85 struct tevent_req *mdscli_close_search_send(TALLOC_CTX *mem_ctx,
86                                             struct tevent_context *ev,
87                                             struct mdscli_search_ctx **_search);
88 NTSTATUS mdscli_close_search_recv(struct tevent_req *req);
89 NTSTATUS mdscli_close_search(struct mdscli_search_ctx **search);
90
91 struct tevent_req *mdscli_disconnect_send(TALLOC_CTX *mem_ctx,
92                                           struct tevent_context *ev,
93                                           struct mdscli_ctx *mdscli_ctx);
94 NTSTATUS mdscli_disconnect_recv(struct tevent_req *req);
95 NTSTATUS mdscli_disconnect(struct mdscli_ctx *mdscli_ctx);
96
97 #endif /* _MDSCLI_H_ */