2 Unix SMB/CIFS implementation.
4 SMB composite request interfaces
6 Copyright (C) Andrew Tridgell 2005
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 this defines the structures associated with "composite"
25 requests. Composite requests are libcli requests that are internally
26 implemented as multiple libcli/raw/ calls, but can be treated as a
27 single call via these composite calls. The composite calls are
28 particularly designed to be used in async applications
33 a composite open/read(s)/close request that loads a whole file
34 into memory. Used as a demo of the composite system.
36 struct smb_composite_loadfile {
46 struct smb_composite_fetchfile {
48 const char *dest_host;
50 const char *called_name;
52 const char *service_type;
53 struct cli_credentials *credentials;
54 const char *workgroup;
64 a composite open/write(s)/close request that saves a whole file from
65 memory. Used as a demo of the composite system.
67 struct smb_composite_savefile {
77 a composite request for a full connection to a remote server. Includes
79 - socket establishment
85 struct smb_composite_connect {
87 const char *dest_host;
89 const char *called_name;
91 const char *service_type;
92 struct cli_credentials *credentials;
93 BOOL fallback_to_anonymous;
94 const char *workgroup;
97 struct smbcli_tree *tree;
98 BOOL anonymous_fallback_done;
104 generic session setup interface that takes care of which
105 session setup varient to use
107 struct smb_composite_sesssetup {
110 uint32_t capabilities;
111 struct cli_credentials *credentials;
112 const char *workgroup;
120 query file system info
122 struct smb_composite_fsinfo {
124 const char *dest_host;
126 const char *called_name;
128 const char *service_type;
129 struct cli_credentials *credentials;
130 const char *workgroup;
131 enum smb_fsinfo_level level;
135 union smb_fsinfo *fsinfo;
140 composite call for appending new acl to the file's security descriptor and get
144 struct smb_composite_appendacl {
148 const struct security_descriptor *sd;
152 struct security_descriptor *sd;
157 a composite API to fire connect() calls to multiple targets, picking the
161 struct smb_composite_connectmulti {
164 const char **hostnames;
165 const char **addresses;
166 int *ports; /* Either NULL for lp_smb_ports() per
167 * destination or a list of explicit ports */
170 struct smbcli_socket *socket;
174 struct smbcli_session;
176 #include "libcli/smb_composite/proto.h"