[SCM] Samba Shared Repository - branch master updated
Andrew Tridgell
tridge at samba.org
Mon Sep 20 16:30:39 MDT 2010
The branch, master has been updated
via 8efd107 s4-pyrpc: fixed build on python 2.4
via 3fe8e97 s4-rodc: fixed repsFrom store on RODC
via 5995116 s4-kcc: a bit more debug info on repsFrom creation
from ead126c Merge branch 'v4-0-stable' into newmaster
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 8efd1074c21fde70a31756dd54b3b31811beccc8
Author: Andrew Tridgell <tridge at samba.org>
Date: Mon Sep 20 12:16:09 2010 -0700
s4-pyrpc: fixed build on python 2.4
Pair-Programmed-With: Jelmer Vernooij <jelmer at samba.org>
commit 3fe8e97a7289c18903a9f481a13f8793f9f17bab
Author: Andrew Tridgell <tridge at samba.org>
Date: Sun Sep 19 21:49:00 2010 -0700
s4-rodc: fixed repsFrom store on RODC
We were disallowing repsFrom store as a RODC on the basis that it is a
write to the directory. It should be allowed, as its is a
non-replicated attribute.
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 59951163bea67b1a5d5eeef109f200a6323c00f3
Author: Andrew Tridgell <tridge at samba.org>
Date: Sun Sep 19 21:48:35 2010 -0700
s4-kcc: a bit more debug info on repsFrom creation
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/kcc/kcc_periodic.c | 8 ++++++-
source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 25 ++++++++++------------
source4/librpc/rpc/pyrpc.h | 4 +++
source4/librpc/rpc/pyrpc_util.c | 4 ---
4 files changed, 22 insertions(+), 19 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/kcc/kcc_periodic.c b/source4/dsdb/kcc/kcc_periodic.c
index a79c848..c396912 100644
--- a/source4/dsdb/kcc/kcc_periodic.c
+++ b/source4/dsdb/kcc/kcc_periodic.c
@@ -73,7 +73,8 @@ static bool check_MasterNC(struct kccsrv_partition *p, struct repsFromToBlob *r,
struct ldb_dn *dn;
struct GUID id2 = samdb_result_guid(msg, "invocationID");
- if (!GUID_equal(&invocation_id, &id2)) {
+ if (GUID_all_zero(&id2) ||
+ !GUID_equal(&invocation_id, &id2)) {
continue;
}
@@ -89,6 +90,9 @@ static bool check_MasterNC(struct kccsrv_partition *p, struct repsFromToBlob *r,
}
if (ldb_dn_compare(dn, p->dn) == 0) {
talloc_free(dn);
+ DEBUG(5,("%s hasMasterNCs match on %s in %s\n",
+ r1->other_info->dns_name, ldb_dn_get_linearized(dn),
+ ldb_dn_get_linearized(msg->dn)));
return true;
}
talloc_free(dn);
@@ -183,6 +187,7 @@ static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
old_reps[old_count] = reps[i];
old_count++;
modified = true;
+ DEBUG(4,(__location__ ": Added repsFrom for %s\n", reps[i].ctr.ctr1.other_info->dns_name));
}
}
@@ -194,6 +199,7 @@ static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
old_count--;
i--;
modified = true;
+ DEBUG(4,(__location__ ": Removed repsFrom for %s\n", reps[i].ctr.ctr1.other_info->dns_name));
}
}
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 45ef4d9..6ae8e92 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -1246,20 +1246,6 @@ static int replmd_update_rpmd(struct ldb_module *module,
return LDB_ERR_OPERATIONS_ERROR;
}
- /*we have elements that will be modified*/
- if (msg->num_elements > 0) {
- /*if we are RODC and this is a DRSR update then its ok*/
- if (!ldb_request_get_control(req, DSDB_CONTROL_REPLICATED_UPDATE_OID)) {
- ret = samdb_rodc(ldb, &rodc);
- if (ret != LDB_SUCCESS) {
- DEBUG(4, (__location__ ": unable to tell if we are an RODC\n"));
- } else if (rodc) {
- ldb_asprintf_errstring(ldb, "RODC modify is forbidden\n");
- return LDB_ERR_REFERRAL;
- }
- }
- }
-
for (i=0; i<msg->num_elements; i++) {
struct ldb_message_element *old_el;
old_el = ldb_msg_find_element(res->msgs[0], msg->elements[i].name);
@@ -1283,6 +1269,17 @@ static int replmd_update_rpmd(struct ldb_module *module,
struct ldb_val *md_value;
struct ldb_message_element *el;
+ /*if we are RODC and this is a DRSR update then its ok*/
+ if (!ldb_request_get_control(req, DSDB_CONTROL_REPLICATED_UPDATE_OID)) {
+ ret = samdb_rodc(ldb, &rodc);
+ if (ret != LDB_SUCCESS) {
+ DEBUG(4, (__location__ ": unable to tell if we are an RODC\n"));
+ } else if (rodc) {
+ ldb_asprintf_errstring(ldb, "RODC modify is forbidden\n");
+ return LDB_ERR_REFERRAL;
+ }
+ }
+
md_value = talloc(msg, struct ldb_val);
if (md_value == NULL) {
ldb_oom(ldb);
diff --git a/source4/librpc/rpc/pyrpc.h b/source4/librpc/rpc/pyrpc.h
index c3bc838..52f4f4d 100644
--- a/source4/librpc/rpc/pyrpc.h
+++ b/source4/librpc/rpc/pyrpc.h
@@ -22,6 +22,10 @@
#include "libcli/util/pyerrors.h"
+#ifndef Py_TYPE /* Py_TYPE is only available on Python > 2.6 */
+#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
+#endif
+
#define PY_CHECK_TYPE(type, var, fail) \
if (!PyObject_TypeCheck(var, type)) {\
PyErr_Format(PyExc_TypeError, __location__ ": Expected type '%s' for '%s' of type '%s'", (type)->tp_name, #var, Py_TYPE(var)->tp_name); \
diff --git a/source4/librpc/rpc/pyrpc_util.c b/source4/librpc/rpc/pyrpc_util.c
index ba42c08..33bce38 100644
--- a/source4/librpc/rpc/pyrpc_util.c
+++ b/source4/librpc/rpc/pyrpc_util.c
@@ -31,10 +31,6 @@
#include "lib/messaging/messaging.h"
#include "lib/messaging/irpc.h"
-#ifndef Py_TYPE /* Py_TYPE is only available on Python > 2.6 */
-#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
-#endif
-
bool py_check_dcerpc_type(PyObject *obj, const char *module, const char *typename)
{
PyObject *mod;
--
Samba Shared Repository
More information about the samba-cvs
mailing list