The branch, master has been updated
       via  8a5a904 dsdb: Improve debugging during SD recursion failure
       via  ba8e868 dsdb: Avoid search on * in replmd_replicated_apply_next()
       via  b9b6443 samba-tool drs replicate: Allow replication call to take as 
long as required
       via  2d3fdc0 pyrpc: Allow control of RPC timeout for IRPC
       via  cea4a4b tests: Allow alternative error code for backupkey test
      from  cc339b0 libads: improve debug messages in sitename_fetch()

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8a5a9045ad987ceb26c6c6eea856b8ab56028236
Author: Andrew Bartlett <[email protected]>
Date:   Mon Jul 11 16:05:49 2016 +1200

    dsdb: Improve debugging during SD recursion failure
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Garming Sam <[email protected]>
    
    Autobuild-User(master): Garming Sam <[email protected]>
    Autobuild-Date(master): Wed Jul 13 02:59:25 CEST 2016 on sn-devel-144

commit ba8e8687bd978092d8f74f283d008b9a5b3ff122
Author: Andrew Bartlett <[email protected]>
Date:   Sat Jul 9 07:47:15 2016 +1200

    dsdb: Avoid search on * in replmd_replicated_apply_next()
    
    A search on * can be quite expensive if we have to post-process any of the 
results
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Garming Sam <[email protected]>

commit b9b64438d5198b564f5c3dc5699a8cd7d4f04f5f
Author: Andrew Bartlett <[email protected]>
Date:   Sat Jul 9 16:38:14 2016 +1200

    samba-tool drs replicate: Allow replication call to take as long as required
    
    This matches the behaviour in the drsuapi server for DsReplicaSync
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Garming Sam <[email protected]>

commit 2d3fdc0a45b7acae64b90ab701fcec170c4da07d
Author: Andrew Bartlett <[email protected]>
Date:   Sat Jul 9 16:36:52 2016 +1200

    pyrpc: Allow control of RPC timeout for IRPC
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Garming Sam <[email protected]>

commit cea4a4b9b22c78f9736e2290d302a88644db4031
Author: Garming Sam <[email protected]>
Date:   Tue Jul 12 17:10:15 2016 +1200

    tests: Allow alternative error code for backupkey test
    
    Signed-off-by: Garming Sam <[email protected]>
    Reviewed-by: Andrew Bartlett <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 python/samba/netcmd/drs.py                      |  4 +++-
 source4/dsdb/samdb/ldb_modules/descriptor.c     |  6 +++++-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |  5 +++--
 source4/lib/messaging/pymessaging.c             |  2 ++
 source4/librpc/rpc/pyrpc_util.c                 | 11 +++++++++--
 source4/torture/rpc/backupkey_heimdal.c         | 10 ++++++----
 6 files changed, 28 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/netcmd/drs.py b/python/samba/netcmd/drs.py
index cbd1672..4098131 100644
--- a/python/samba/netcmd/drs.py
+++ b/python/samba/netcmd/drs.py
@@ -34,6 +34,7 @@ from samba import drs_utils, nttime2string, dsdb
 from samba.dcerpc import drsuapi, misc
 import common
 from samba.join import join_clone
+from samba.messaging import IRPC_CALL_TIMEOUT_INF
 
 def drsuapi_connect(ctx):
     '''make a DRSUAPI connection to the server'''
@@ -317,7 +318,8 @@ class cmd_drs_replicate(Command):
             return
 
         if local_online:
-            server_bind = drsuapi.drsuapi("irpc:dreplsrv", self.lp)
+            server_bind = drsuapi.drsuapi("irpc:dreplsrv", lp_ctx=self.lp,
+                                          timeout=IRPC_CALL_TIMEOUT_INF)
             server_bind_handle = misc.policy_handle()
         else:
             drsuapi_connect(self)
diff --git a/source4/dsdb/samdb/ldb_modules/descriptor.c 
b/source4/dsdb/samdb/ldb_modules/descriptor.c
index 2baf4af..e75d79d 100644
--- a/source4/dsdb/samdb/ldb_modules/descriptor.c
+++ b/source4/dsdb/samdb/ldb_modules/descriptor.c
@@ -1144,7 +1144,11 @@ static int descriptor_sd_propagation_object(struct 
ldb_module *module,
                ret = ldb_wait(sub_req->handle, LDB_WAIT_ALL);
        }
        if (ret != LDB_SUCCESS) {
-               return ldb_module_operr(module);
+               ldb_asprintf_errstring(ldb_module_get_ctx(module),
+                                      "descriptor_modify on %s failed: %s",
+                                      ldb_dn_get_linearized(msg->dn),
+                                      
ldb_errstring(ldb_module_get_ctx(module)));
+               return LDB_ERR_OPERATIONS_ERROR;
        }
 
        if (sd_propagation_control->critical != 0) {
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c 
b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 9a1ff16..c6dc6c6 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -5296,9 +5296,10 @@ static int replmd_replicated_apply_next(struct 
replmd_replicated_request *ar)
        char *tmp_str;
        char *filter;
        struct ldb_request *search_req;
-       static const char *attrs[] = { "*", "parentGUID", "instanceType",
+       static const char *attrs[] = { "repsFrom", "replUpToDateVector",
+                                      "parentGUID", "instanceType",
                                       "replPropertyMetaData", 
"nTSecurityDescriptor",
-                                      NULL };
+                                      "isDeleted", NULL };
        struct GUID_txt_buf guid_str_buf;
 
        if (ar->index_current >= ar->objs->num_objects) {
diff --git a/source4/lib/messaging/pymessaging.c 
b/source4/lib/messaging/pymessaging.c
index 0eca139..cef0703 100644
--- a/source4/lib/messaging/pymessaging.c
+++ b/source4/lib/messaging/pymessaging.c
@@ -399,4 +399,6 @@ void initmessaging(void)
 
        Py_INCREF((PyObject *)&imessaging_Type);
        PyModule_AddObject(mod, "Messaging", (PyObject *)&imessaging_Type);
+       PyModule_AddObject(mod, "IRPC_CALL_TIMEOUT", 
PyInt_FromLong(IRPC_CALL_TIMEOUT));
+       PyModule_AddObject(mod, "IRPC_CALL_TIMEOUT_INF", 
PyInt_FromLong(IRPC_CALL_TIMEOUT_INF));
 }
diff --git a/source4/librpc/rpc/pyrpc_util.c b/source4/librpc/rpc/pyrpc_util.c
index b74eb4c..a9807a8 100644
--- a/source4/librpc/rpc/pyrpc_util.c
+++ b/source4/librpc/rpc/pyrpc_util.c
@@ -99,11 +99,12 @@ PyObject *py_dcerpc_interface_init_helper(PyTypeObject 
*type, PyObject *args, Py
        const char *binding_string;
        PyObject *py_lp_ctx = Py_None, *py_credentials = Py_None, *py_basis = 
Py_None;
        NTSTATUS status;
+       unsigned int timeout = (unsigned int)-1;
        const char *kwnames[] = {
-               "binding", "lp_ctx", "credentials", "basis_connection", NULL
+               "binding", "lp_ctx", "credentials", "timeout", 
"basis_connection", NULL
        };
 
-       if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|OOO:samr", 
discard_const_p(char *, kwnames), &binding_string, &py_lp_ctx, &py_credentials, 
&py_basis)) {
+       if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|OOIO:samr", 
discard_const_p(char *, kwnames), &binding_string, &py_lp_ctx, &py_credentials, 
&timeout, &py_basis)) {
                return NULL;
        }
 
@@ -231,6 +232,12 @@ PyObject *py_dcerpc_interface_init_helper(PyTypeObject 
*type, PyObject *args, Py
                ret->pipe->conn->flags |= DCERPC_NDR_REF_ALLOC;
                ret->binding_handle = ret->pipe->binding_handle;
        }
+
+       /* reset timeout for the handle */
+       if (timeout != ((unsigned int)-1)) {
+               dcerpc_binding_handle_set_timeout(ret->binding_handle, timeout);
+       }
+
        return (PyObject *)ret;
 }
 
diff --git a/source4/torture/rpc/backupkey_heimdal.c 
b/source4/torture/rpc/backupkey_heimdal.c
index 32b0235..c0db48d 100644
--- a/source4/torture/rpc/backupkey_heimdal.c
+++ b/source4/torture/rpc/backupkey_heimdal.c
@@ -1939,10 +1939,12 @@ static bool test_ServerWrap_decrypt_wrong_stuff(struct 
torture_context *tctx,
                                          WERR_INVALID_ACCESS,
                                          "decrypt should fail with 
WERR_INVALID_ACCESS");
        } else {
-               torture_assert_werr_equal(tctx,
-                                         r.out.result,
-                                         WERR_INVALID_PARAM,
-                                         "decrypt should fail with 
WERR_INVALID_PARAM");
+               if (!W_ERROR_EQUAL(r.out.result, WERR_INVALID_PARAM)) {
+                       torture_assert_werr_equal(tctx,
+                                                 r.out.result,
+                                                 WERR_INVALID_ACCESS,
+                                                 "decrypt should fail with 
WERR_INVALID_ACCESS or WERR_INVALID_PARAM");
+               }
        }
 
        /* Decrypt */


-- 
Samba Shared Repository

Reply via email to