The branch, master has been updated via 1047abf3aa3 selftest: let list_servers.NT1 really use NT1 protocol via 5c2286ecf5c vfs_worm: add connect function to cache parameters via e84437eae6a set_process_capability: log which capability was set or failed to be set from 7e0a18acde8 vfs_ceph: use extra 'ceph_*at()' calls when available
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 1047abf3aa352178c433051ede62353283513512 Author: Björn Jacke <bja...@samba.org> Date: Thu Jan 4 12:55:53 2024 +0100 selftest: let list_servers.NT1 really use NT1 protocol Signed-off-by: Bjoern Jacke <bja...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> Autobuild-User(master): Björn Jacke <bja...@samba.org> Autobuild-Date(master): Fri Jan 5 01:43:51 UTC 2024 on atb-devel-224 commit 5c2286ecf5c2ef5557dee4d5ec142a958c99b2ec Author: Björn Jacke <bja...@samba.org> Date: Sat Dec 30 19:53:36 2023 +0100 vfs_worm: add connect function to cache parameters Signed-off-by: Bjoern Jacke <bja...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> commit e84437eae6a8356248cf7cc558903e86ead0eece Author: Björn Jacke <bja...@samba.org> Date: Sat Dec 30 18:28:59 2023 +0100 set_process_capability: log which capability was set or failed to be set Signed-off-by: Bjoern Jacke <bja...@samba.org> Reviewed-by: Volker Lendecke <v...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/lib/system.c | 5 +++-- source3/modules/vfs_worm.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- source3/selftest/tests.py | 2 +- 3 files changed, 46 insertions(+), 5 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/lib/system.c b/source3/lib/system.c index bdaa723fd3c..721ffd17f88 100644 --- a/source3/lib/system.c +++ b/source3/lib/system.c @@ -627,11 +627,12 @@ static bool set_process_capability(enum smbd_capability capability, cap_set_flag(cap, CAP_INHERITABLE, num_cap_vals, cap_vals, CAP_CLEAR); if (cap_set_proc(cap) == -1) { - DEBUG(0, ("set_process_capability: cap_set_proc failed: %s\n", - strerror(errno))); + DBG_ERR("adding capability %d: cap_set_proc failed: %s\n", + capability, strerror(errno)); cap_free(cap); return False; } + DBG_INFO("added capability %d\n", capability); cap_free(cap); return True; diff --git a/source3/modules/vfs_worm.c b/source3/modules/vfs_worm.c index 833a0ac26fe..402705e96e6 100644 --- a/source3/modules/vfs_worm.c +++ b/source3/modules/vfs_worm.c @@ -22,6 +22,41 @@ #include "system/filesys.h" #include "libcli/security/security.h" +struct worm_config_data { + double grace_period; +}; + +static int vfs_worm_connect(struct vfs_handle_struct *handle, + const char *service, const char *user) +{ + struct worm_config_data *config = NULL; + int ret; + + ret = SMB_VFS_NEXT_CONNECT(handle, service, user); + if (ret < 0) { + return ret; + } + + if (IS_IPC(handle->conn) || IS_PRINT(handle->conn)) { + return 0; + } + + config = talloc_zero(handle->conn, struct worm_config_data); + if (config == NULL) { + DBG_ERR("talloc_zero() failed\n"); + errno = ENOMEM; + return -1; + } + config->grace_period = lp_parm_int(SNUM(handle->conn), "worm", + "grace_period", 3600); + + SMB_VFS_HANDLE_SET_DATA(handle, config, + NULL, struct worm_config_data, + return -1); + return 0; + +} + static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle, struct smb_request *req, struct files_struct *dirfsp, @@ -48,12 +83,16 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle, FILE_WRITE_ATTRIBUTES | DELETE_ACCESS | WRITE_DAC_ACCESS | WRITE_OWNER_ACCESS; NTSTATUS status; + struct worm_config_data *config = NULL; + + SMB_VFS_HANDLE_GET_DATA(handle, config, + struct worm_config_data, + return NT_STATUS_INTERNAL_ERROR); if (VALID_STAT(smb_fname->st)) { double age; age = timespec_elapsed(&smb_fname->st.st_ex_ctime); - if (age > lp_parm_int(SNUM(handle->conn), "worm", - "grace_period", 3600)) { + if (age > config->grace_period) { readonly = true; } } @@ -83,6 +122,7 @@ static NTSTATUS vfs_worm_create_file(vfs_handle_struct *handle, } static struct vfs_fn_pointers vfs_worm_fns = { + .connect_fn = vfs_worm_connect, .create_file_fn = vfs_worm_create_file, }; diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index bdc49527bde..dfe894872b7 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -826,7 +826,7 @@ for env in ["fileserver"]: '$USERNAME', '$PASSWORD', smbclient3, - "-mSMB3"]) + "-mNT1"]) plantestsuite("samba3.blackbox.test_list_servers.SMB2", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_list_servers.sh"), -- Samba Shared Repository