The branch, master has been updated via 2b1d7ac s3: Unify stream testing in open_directory via 549a319 s3: Re-indent an && sequence for better understanding via 312228d s3: Fix "smbcontrol smbd close-share" from 8972c92 s3:net ads join: remove a useless empty comment block
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 2b1d7ac0603ce8fe5a76efa45c3f17f1680e5e66 Author: Volker Lendecke <v...@samba.org> Date: Tue Jan 31 17:26:34 2012 +0100 s3: Unify stream testing in open_directory The second if-statement could never have kicked in, assuming the SMB_ASSERT above was right. Jeremy, please check! Autobuild-User: Volker Lendecke <vlen...@samba.org> Autobuild-Date: Tue Jan 31 20:15:36 CET 2012 on sn-devel-104 commit 549a31963e993a15b6155a046dd4ecea9b05eed7 Author: Volker Lendecke <v...@samba.org> Date: Tue Jan 31 17:24:49 2012 +0100 s3: Re-indent an && sequence for better understanding commit 312228d0c89f83c9defaba268a2bb62365b0ce1b Author: Volker Lendecke <v...@samba.org> Date: Mon Jan 30 18:23:49 2012 +0100 s3: Fix "smbcontrol smbd close-share" ----------------------------------------------------------------------- Summary of changes: source3/smbd/open.c | 14 +++++--------- source3/smbd/server.c | 11 +++++++++++ 2 files changed, 16 insertions(+), 9 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 5388059..3374fdb 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -2675,7 +2675,11 @@ static NTSTATUS open_directory(connection_struct *conn, struct timespec mtimespec; int info = 0; - SMB_ASSERT(!is_ntfs_stream_smb_fname(smb_dname)); + if (is_ntfs_stream_smb_fname(smb_dname)) { + DEBUG(2, ("open_directory: %s is a stream name!\n", + smb_fname_str_dbg(smb_dname))); + return NT_STATUS_NOT_A_DIRECTORY; + } /* Ensure we have a directory attribute. */ file_attributes |= FILE_ATTRIBUTE_DIRECTORY; @@ -2690,14 +2694,6 @@ static NTSTATUS open_directory(connection_struct *conn, (unsigned int)create_disposition, (unsigned int)file_attributes)); - if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) && - (conn->fs_capabilities & FILE_NAMED_STREAMS) && - is_ntfs_stream_smb_fname(smb_dname)) { - DEBUG(2, ("open_directory: %s is a stream name!\n", - smb_fname_str_dbg(smb_dname))); - return NT_STATUS_NOT_A_DIRECTORY; - } - status = smbd_calculate_access_mask(conn, smb_dname, access_mask, &access_mask); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 369b7ab..10d59ad 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -269,6 +269,15 @@ static void smbd_parent_id_cache_delete(struct messaging_context *ctx, messaging_send_to_children(ctx, msg_type, msg_data); } +static void smb_parent_force_tdis(struct messaging_context *ctx, + void* data, + uint32_t msg_type, + struct server_id srv_id, + DATA_BLOB* msg_data) +{ + messaging_send_to_children(ctx, msg_type, msg_data); +} + static void add_child_pid(struct smbd_parent_context *parent, pid_t pid) { @@ -806,6 +815,8 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent, smb_pcap_updated); messaging_register(msg_ctx, NULL, MSG_SMB_BRL_VALIDATE, brl_revalidate); + messaging_register(msg_ctx, NULL, MSG_SMB_FORCE_TDIS, + smb_parent_force_tdis); messaging_register(msg_ctx, NULL, ID_CACHE_FLUSH, smbd_parent_id_cache_flush); -- Samba Shared Repository