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

Reply via email to