ldap/servers/plugins/memberof/memberof.c | 5 ++++-
ldap/servers/plugins/memberof/memberof.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit 116dcbd8094491b0249ed0bae4c00f08b478c3ab
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Nov 26 16:57:05 2014 -0500
Ticket 47963 - skip nested groups breaks memberof fixup task
Bug Description: Setting memberofskipnested to "on" breaks memberOf fixup task.
Fix Description: We never want to skip nested group checking when performing
a fixup task. Add a flag to distinguish that the fixup operation
is a task, and not a delete.
https://fedorahosted.org/389/ticket/47963
Reviewed by: nkinder(Thanks!)
(cherry picked from commit d8e8119e92c6d872e317bbae5d59a08d80cb0966)
Conflicts:
ldap/servers/plugins/memberof/memberof.c
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index d81d9ab..0098829 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -2301,6 +2301,9 @@ void memberof_fixup_task_thread(void *arg)
memberof_copy_config(&configCopy, memberof_get_config());
memberof_unlock_config();
+ /* Mark this as a task operation */
+ configCopy.fixup_task = 1;
+
/* get the memberOf operation lock */
memberof_lock();
@@ -2465,7 +2468,7 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data)
memberof_del_dn_data del_data = {0, config->memberof_attr};
Slapi_ValueSet *groups = 0;
- if(!config->skip_nested){
+ if(!config->skip_nested || config->fixup_task){
/* get a list of all of the groups this user belongs to */
groups = memberof_get_groups(config, sdn);
}
diff --git a/ldap/servers/plugins/memberof/memberof.h b/ldap/servers/plugins/memberof/memberof.h
index 4add6f6..79e3557 100644
--- a/ldap/servers/plugins/memberof/memberof.h
+++ b/ldap/servers/plugins/memberof/memberof.h
@@ -82,6 +82,7 @@ typedef struct memberofconfig {
Slapi_Filter *group_filter;
Slapi_Attr **group_slapiattrs;
int skip_nested;
+ int fixup_task;
} MemberOfConfig;
ldap/servers/plugins/memberof/memberof.c | 5 ++++-
ldap/servers/plugins/memberof/memberof.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit 664b4f126b356854806762f880274b5531c83fb1
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Nov 26 16:57:05 2014 -0500
Ticket 47963 - skip nested groups breaks memberof fixup task
Bug Description: Setting memberofskipnested to "on" breaks memberOf fixup task.
Fix Description: We never want to skip nested group checking when performing
a fixup task. Add a flag to distinguish that the fixup operation
is a task, and not a delete.
https://fedorahosted.org/389/ticket/47963
Reviewed by: nkinder(Thanks!)
(cherry picked from commit d8e8119e92c6d872e317bbae5d59a08d80cb0966)
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index 1931739..ec96b00 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -2320,6 +2320,9 @@ void memberof_fixup_task_thread(void *arg)
memberof_copy_config(&configCopy, memberof_get_config());
memberof_unlock_config();
+ /* Mark this as a task operation */
+ configCopy.fixup_task = 1;
+
if (usetxn) {
Slapi_DN *sdn = slapi_sdn_new_dn_byref(td->dn);
Slapi_Backend *be = slapi_be_select(sdn);
@@ -2513,7 +2516,7 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data)
memberof_del_dn_data del_data = {0, config->memberof_attr};
Slapi_ValueSet *groups = 0;
- if(!config->skip_nested){
+ if(!config->skip_nested || config->fixup_task){
/* get a list of all of the groups this user belongs to */
groups = memberof_get_groups(config, sdn);
}
diff --git a/ldap/servers/plugins/memberof/memberof.h b/ldap/servers/plugins/memberof/memberof.h
index 4add6f6..79e3557 100644
--- a/ldap/servers/plugins/memberof/memberof.h
+++ b/ldap/servers/plugins/memberof/memberof.h
@@ -82,6 +82,7 @@ typedef struct memberofconfig {
Slapi_Filter *group_filter;
Slapi_Attr **group_slapiattrs;
int skip_nested;
+ int fixup_task;
} MemberOfConfig;
ldap/servers/plugins/memberof/memberof.c | 5 ++++-
ldap/servers/plugins/memberof/memberof.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit 919f30ca67e278584cfdbdf0c6c86ba38429b21b
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Nov 26 16:57:05 2014 -0500
Ticket 47963 - skip nested groups breaks memberof fixup task
Bug Description: Setting memberofskipnested to "on" breaks memberOf fixup task.
Fix Description: We never want to skip nested group checking when performing
a fixup task. Add a flag to distinguish that the fixup operation
is a task, and not a delete.
https://fedorahosted.org/389/ticket/47963
Reviewed by: nkinder(Thanks!)
(cherry picked from commit d8e8119e92c6d872e317bbae5d59a08d80cb0966)
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index be70f71..5a5a71a 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -2347,6 +2347,9 @@ void memberof_fixup_task_thread(void *arg)
memberof_copy_config(&configCopy, memberof_get_config());
memberof_unlock_config();
+ /* Mark this as a task operation */
+ configCopy.fixup_task = 1;
+
if (usetxn) {
Slapi_DN *sdn = slapi_sdn_new_dn_byref(td->dn);
Slapi_Backend *be = slapi_be_select(sdn);
@@ -2540,7 +2543,7 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data)
memberof_del_dn_data del_data = {0, config->memberof_attr};
Slapi_ValueSet *groups = 0;
- if(!config->skip_nested){
+ if(!config->skip_nested || config->fixup_task){
/* get a list of all of the groups this user belongs to */
groups = memberof_get_groups(config, sdn);
}
diff --git a/ldap/servers/plugins/memberof/memberof.h b/ldap/servers/plugins/memberof/memberof.h
index b5bc83a..5f7bbe6 100644
--- a/ldap/servers/plugins/memberof/memberof.h
+++ b/ldap/servers/plugins/memberof/memberof.h
@@ -84,6 +84,7 @@ typedef struct memberofconfig {
Slapi_Filter *group_filter;
Slapi_Attr **group_slapiattrs;
int skip_nested;
+ int fixup_task;
} MemberOfConfig;
ldap/servers/plugins/memberof/memberof.c | 5 ++++-
ldap/servers/plugins/memberof/memberof.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit ae06f9626255abe9687c110bcd85fc8287d3ec99
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Nov 26 16:57:05 2014 -0500
Ticket 47963 - skip nested groups breaks memberof fixup task
Bug Description: Setting memberofskipnested to "on" breaks memberOf fixup task.
Fix Description: We never want to skip nested group checking when performing
a fixup task. Add a flag to distinguish that the fixup operation
is a task, and not a delete.
https://fedorahosted.org/389/ticket/47963
Reviewed by: nkinder(Thanks!)
(cherry picked from commit d8e8119e92c6d872e317bbae5d59a08d80cb0966)
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index 118d232..a594941 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -2631,6 +2631,9 @@ void memberof_fixup_task_thread(void *arg)
memberof_copy_config(&configCopy, memberof_get_config());
memberof_unlock_config();
+ /* Mark this as a task operation */
+ configCopy.fixup_task = 1;
+
if (usetxn) {
Slapi_DN *sdn = slapi_sdn_new_dn_byref(td->dn);
Slapi_Backend *be = slapi_be_select(sdn);
@@ -2816,7 +2819,7 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data)
memberof_del_dn_data del_data = {0, config->memberof_attr};
Slapi_ValueSet *groups = 0;
- if(!config->skip_nested){
+ if(!config->skip_nested || config->fixup_task){
/* get a list of all of the groups this user belongs to */
groups = memberof_get_groups(config, sdn);
}
diff --git a/ldap/servers/plugins/memberof/memberof.h b/ldap/servers/plugins/memberof/memberof.h
index 93f031b..67fb310 100644
--- a/ldap/servers/plugins/memberof/memberof.h
+++ b/ldap/servers/plugins/memberof/memberof.h
@@ -86,6 +86,7 @@ typedef struct memberofconfig {
Slapi_Filter *group_filter;
Slapi_Attr **group_slapiattrs;
int skip_nested;
+ int fixup_task;
} MemberOfConfig;
ldap/servers/plugins/memberof/memberof.c | 5 ++++-
ldap/servers/plugins/memberof/memberof.h | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit d8e8119e92c6d872e317bbae5d59a08d80cb0966
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Nov 26 16:57:05 2014 -0500
Ticket 47963 - skip nested groups breaks memberof fixup task
Bug Description: Setting memberofskipnested to "on" breaks memberOf fixup task.
Fix Description: We never want to skip nested group checking when performing
a fixup task. Add a flag to distinguish that the fixup operation
is a task, and not a delete.
https://fedorahosted.org/389/ticket/47963
Reviewed by: nkinder(Thanks!)
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index 118d232..a594941 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -2631,6 +2631,9 @@ void memberof_fixup_task_thread(void *arg)
memberof_copy_config(&configCopy, memberof_get_config());
memberof_unlock_config();
+ /* Mark this as a task operation */
+ configCopy.fixup_task = 1;
+
if (usetxn) {
Slapi_DN *sdn = slapi_sdn_new_dn_byref(td->dn);
Slapi_Backend *be = slapi_be_select(sdn);
@@ -2816,7 +2819,7 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data)
memberof_del_dn_data del_data = {0, config->memberof_attr};
Slapi_ValueSet *groups = 0;
- if(!config->skip_nested){
+ if(!config->skip_nested || config->fixup_task){
/* get a list of all of the groups this user belongs to */
groups = memberof_get_groups(config, sdn);
}
diff --git a/ldap/servers/plugins/memberof/memberof.h b/ldap/servers/plugins/memberof/memberof.h
index 93f031b..67fb310 100644
--- a/ldap/servers/plugins/memberof/memberof.h
+++ b/ldap/servers/plugins/memberof/memberof.h
@@ -86,6 +86,7 @@ typedef struct memberofconfig {
Slapi_Filter *group_filter;
Slapi_Attr **group_slapiattrs;
int skip_nested;
+ int fixup_task;
} MemberOfConfig;
ldap/servers/plugins/referint/referint.c | 32 ++++++++++++++++++++-----------
1 file changed, 21 insertions(+), 11 deletions(-)
New commits:
commit 44f84b37086c409fc9375aef4b72336ccbdfada3
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Mon Nov 24 12:39:52 2014 -0500
Ticket 47810 - RI plugin does not return result code if update fails
Bug Description: If using backend txns the initial delete operation should fail
if we fail to update the integrity.
Fix Description: If using backend txns, stop and return an error if we fail to
update the membership integrity.
https://fedorahosted.org/389/ticket/47810
Reviewed by: rmeggins(Thanks!)
(cherry picked from commit c5cc125915023d03caa3548b8d55c5b8b8ce59aa)
diff --git a/ldap/servers/plugins/referint/referint.c b/ldap/servers/plugins/referint/referint.c
index 9ffd038..66bb95e 100644
--- a/ldap/servers/plugins/referint/referint.c
+++ b/ldap/servers/plugins/referint/referint.c
@@ -1250,7 +1250,18 @@ update_integrity(Slapi_DN *origSDN,
slapi_sdn_get_dn(newsuperior),
mod_pb);
}
- /* Should we stop if one modify returns an error? */
+ if (rc) {
+ if (use_txn) {
+ /*
+ * We're using backend transactions,
+ * so we need to stop on failure.
+ */
+ rc = SLAPI_PLUGIN_FAILURE;
+ goto free_and_return;
+ } else {
+ rc = SLAPI_PLUGIN_SUCCESS;
+ }
+ }
}
}
}
@@ -1267,17 +1278,16 @@ update_integrity(Slapi_DN *origSDN,
}
slapi_free_search_results_internal(search_result_pb);
}
- if (plugin_ContainerScope) {
- /* at the moment only a single scope is supported
- * so the loop ends after the first iteration
- */
- sdn = NULL;
- } else {
- sdn = slapi_get_next_suffix( &node, 0 );
- }
+ if (plugin_ContainerScope) {
+ /* at the moment only a single scope is supported
+ * so the loop ends after the first iteration
+ */
+ sdn = NULL;
+ } else {
+ sdn = slapi_get_next_suffix( &node, 0 );
+ }
}
- /* if got here, then everything good rc = 0 */
- rc = SLAPI_PLUGIN_SUCCESS;
+
free_and_return:
/* free filter and search_results_pb */