[SCM] Samba Shared Repository - branch v4-0-test updated -
release-4-0-0alpha3-1713-g326b69b
Andrew Tridgell
tridge at samba.org
Thu May 22 14:07:56 GMT 2008
The branch, v4-0-test has been updated
via 326b69bc8064cbea357864cecd6bd27b50c57184 (commit)
from 2bba77a768c3ed984af05b99c2f7781577d08ec3 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test
- Log -----------------------------------------------------------------
commit 326b69bc8064cbea357864cecd6bd27b50c57184
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri May 23 00:07:12 2008 +1000
fix make test for EAs again
- go back to 4 byte alignment until I work out the rules that Vista
wants more exactly
- add the zero sized EA handling for SMB2 more generically
-----------------------------------------------------------------------
Summary of changes:
source/libcli/smb2/create.c | 4 ++--
source/ntvfs/posix/pvfs_fileinfo.c | 5 +++++
source/ntvfs/posix/pvfs_qfileinfo.c | 4 ----
source/smb_server/blob.c | 4 ++--
4 files changed, 9 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/libcli/smb2/create.c b/source/libcli/smb2/create.c
index 9d28bbf..b1b8b0c 100644
--- a/source/libcli/smb2/create.c
+++ b/source/libcli/smb2/create.c
@@ -117,8 +117,8 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
if (io->in.eas.num_eas != 0) {
DATA_BLOB b = data_blob_talloc(req, NULL,
- ea_list_size_chained(io->in.eas.num_eas, io->in.eas.eas, 8));
- ea_put_list_chained(b.data, io->in.eas.num_eas, io->in.eas.eas, 8);
+ ea_list_size_chained(io->in.eas.num_eas, io->in.eas.eas, 4));
+ ea_put_list_chained(b.data, io->in.eas.num_eas, io->in.eas.eas, 4);
status = smb2_create_blob_add(req, &io->in.blobs,
SMB2_CREATE_TAG_EXTA, b);
if (!NT_STATUS_IS_OK(status)) {
diff --git a/source/ntvfs/posix/pvfs_fileinfo.c b/source/ntvfs/posix/pvfs_fileinfo.c
index 4c383ed..e35f42e 100644
--- a/source/ntvfs/posix/pvfs_fileinfo.c
+++ b/source/ntvfs/posix/pvfs_fileinfo.c
@@ -75,6 +75,11 @@ NTSTATUS pvfs_fill_dos_info(struct pvfs_state *pvfs, struct pvfs_filename *name,
name->dos.alloc_size = pvfs_round_alloc_size(pvfs, name->st.st_size);
name->dos.nlink = name->st.st_nlink;
name->dos.ea_size = 4;
+ if (pvfs->ntvfs->ctx->protocol == PROTOCOL_SMB2) {
+ /* SMB2 represents a null EA with zero bytes */
+ name->dos.ea_size = 0;
+ }
+
name->dos.file_id = (((uint64_t)name->st.st_dev)<<32) | name->st.st_ino;
name->dos.flags = 0;
diff --git a/source/ntvfs/posix/pvfs_qfileinfo.c b/source/ntvfs/posix/pvfs_qfileinfo.c
index 102660a..6e3092b 100644
--- a/source/ntvfs/posix/pvfs_qfileinfo.c
+++ b/source/ntvfs/posix/pvfs_qfileinfo.c
@@ -298,10 +298,6 @@ static NTSTATUS pvfs_map_fileinfo(struct pvfs_state *pvfs,
(name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY)? 1 : 0;
info->all_info2.out.file_id = name->dos.file_id;
info->all_info2.out.ea_size = name->dos.ea_size;
- if (info->all_info2.out.ea_size == 4) {
- /* SMB2 uses zero for a empty EA set */
- info->all_info2.out.ea_size = 0;
- }
info->all_info2.out.access_mask = 0; /* only set by qfileinfo */
info->all_info2.out.position = 0; /* only set by qfileinfo */
info->all_info2.out.mode = 0; /* only set by qfileinfo */
diff --git a/source/smb_server/blob.c b/source/smb_server/blob.c
index cea4c60..368b81d 100644
--- a/source/smb_server/blob.c
+++ b/source/smb_server/blob.c
@@ -476,12 +476,12 @@ NTSTATUS smbsrv_push_passthru_fileinfo(TALLOC_CTX *mem_ctx,
}
list_size = ea_list_size_chained(st->all_eas.out.num_eas,
- st->all_eas.out.eas, 8);
+ st->all_eas.out.eas, 4);
BLOB_CHECK(smbsrv_blob_grow_data(mem_ctx, blob, list_size));
ea_put_list_chained(blob->data,
st->all_eas.out.num_eas,
- st->all_eas.out.eas, 8);
+ st->all_eas.out.eas, 4);
return NT_STATUS_OK;
case RAW_FILEINFO_SMB2_ALL_INFORMATION:
--
Samba Shared Repository
More information about the samba-cvs
mailing list