2 Unix SMB/CIFS implementation.
4 SMB2 Create Context Blob handling
6 Copyright (C) Andrew Tridgell 2005
7 Copyright (C) Stefan Metzmacher 2008-2009
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef _LIBCLI_SMB_SMB2_CREATE_BLOB_H_
24 #define _LIBCLI_SMB_SMB2_CREATE_BLOB_H_
27 #include "lib/util/data_blob.h"
28 #include "lib/util/time.h"
29 #include "libcli/util/ntstatus.h"
31 struct smb2_create_blob
{
36 struct smb2_create_blobs
{
38 struct smb2_create_blob
*blobs
;
41 struct smb_create_returns
{
44 uint32_t create_action
;
46 NTTIME last_access_time
;
47 NTTIME last_write_time
;
49 uint64_t allocation_size
;
51 uint32_t file_attributes
;
55 parse a set of SMB2 create blobs
57 NTSTATUS
smb2_create_blob_parse(TALLOC_CTX
*mem_ctx
, const DATA_BLOB buffer
,
58 struct smb2_create_blobs
*blobs
);
61 create a buffer of a set of create blobs
63 NTSTATUS
smb2_create_blob_push(TALLOC_CTX
*mem_ctx
, DATA_BLOB
*buffer
,
64 const struct smb2_create_blobs blobs
);
66 NTSTATUS
smb2_create_blob_add(TALLOC_CTX
*mem_ctx
, struct smb2_create_blobs
*b
,
67 const char *tag
, DATA_BLOB data
);
70 * return the first blob with the given tag
72 struct smb2_create_blob
*smb2_create_blob_find(const struct smb2_create_blobs
*b
,
75 void smb2_create_blob_remove(struct smb2_create_blobs
*b
, const char *tag
);
77 #endif /* _LIBCLI_SMB_SMB2_CREATE_BLOB_H_ */