summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Zeleny <jzeleny@redhat.com>2011-12-09 04:56:26 -0500
committerStephen Gallagher <sgallagh@redhat.com>2011-12-09 08:03:57 -0500
commitbb57f6003fa42856d0578ac27eb57e798be9bbb5 (patch)
treeb084a7cf8bee9e2712c57b1481847377c8a73fae
parentca7325359e8763bb5c1db2ac188d22b4c100d531 (diff)
downloadsssd-bb57f6003fa42856d0578ac27eb57e798be9bbb5.tar.gz
sssd-bb57f6003fa42856d0578ac27eb57e798be9bbb5.tar.xz
sssd-bb57f6003fa42856d0578ac27eb57e798be9bbb5.zip
Fixed IPA netgroup processing
In case IPA netgroup had indirect member hosts, they wouldn't be detected. This patch also modifies debug messages for easier debugging in the future.
-rw-r--r--src/providers/ipa/ipa_common.c1
-rw-r--r--src/providers/ipa/ipa_common.h1
-rw-r--r--src/providers/ipa/ipa_netgroups.c7
3 files changed, 7 insertions, 2 deletions
diff --git a/src/providers/ipa/ipa_common.c b/src/providers/ipa/ipa_common.c
index de7c20d11..472425312 100644
--- a/src/providers/ipa/ipa_common.c
+++ b/src/providers/ipa/ipa_common.c
@@ -171,6 +171,7 @@ struct sdap_attr_map ipa_netgroup_map[] = {
struct sdap_attr_map ipa_host_map[] = {
{ "ipa_host_object_class", "ipaHost", SYSDB_HOST_CLASS, NULL },
{ "ipa_host_fqdn", "fqdn", SYSDB_NAME, NULL },
+ { "ipa_host_member_of", "memberOf", SYSDB_MEMBEROF, NULL },
};
struct dp_option ipa_def_krb5_opts[] = {
diff --git a/src/providers/ipa/ipa_common.h b/src/providers/ipa/ipa_common.h
index 1ab1983f3..22f4bc634 100644
--- a/src/providers/ipa/ipa_common.h
+++ b/src/providers/ipa/ipa_common.h
@@ -75,6 +75,7 @@ enum ipa_netgroup_attrs {
enum ipa_host_attrs {
IPA_OC_HOST = 0,
IPA_AT_HOST_FQDN,
+ IPA_AT_HOST_MEMBER_OF,
IPA_OPTS_HOST /* attrs counter */
};
diff --git a/src/providers/ipa/ipa_netgroups.c b/src/providers/ipa/ipa_netgroups.c
index a8ae8d2ba..fbe9ebf47 100644
--- a/src/providers/ipa/ipa_netgroups.c
+++ b/src/providers/ipa/ipa_netgroups.c
@@ -887,9 +887,10 @@ static int ipa_netgr_process_all(struct ipa_get_netgroups_state *state)
}
talloc_zfree(members);
}
+ DEBUG(SSSDBG_TRACE_INTERNAL, ("Extracted %d netgroup members\n", j));
/* Load all UIDs */
- DEBUG(SSSDBG_TRACE_INTERNAL, ("Extracting user members of netgroup %d\n", i));
+ DEBUG(SSSDBG_TRACE_ALL, ("Extracting user members of netgroup %d\n", i));
ret = extract_members(state, state->netgroups[i],
SYSDB_ORIG_NETGROUP_MEMBER_USER,
state->new_users,
@@ -897,8 +898,9 @@ static int ipa_netgr_process_all(struct ipa_get_netgroups_state *state)
if (ret != EOK) {
goto done;
}
+ DEBUG(SSSDBG_TRACE_INTERNAL, ("Extracted %d user members\n", uids_count));
- DEBUG(SSSDBG_TRACE_INTERNAL, ("Extracting host members of netgroup %d\n", i));
+ DEBUG(SSSDBG_TRACE_ALL, ("Extracting host members of netgroup %d\n", i));
ret = extract_members(state, state->netgroups[i],
SYSDB_ORIG_NETGROUP_MEMBER_HOST,
state->new_hosts,
@@ -906,6 +908,7 @@ static int ipa_netgr_process_all(struct ipa_get_netgroups_state *state)
if (ret != EOK) {
goto done;
}
+ DEBUG(SSSDBG_TRACE_INTERNAL, ("Extracted %d host members\n", hosts_count));
ret = sysdb_attrs_get_el(state->netgroups[i],
SYSDB_ORIG_NETGROUP_EXTERNAL_HOST,