summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Zeleny <jzeleny@redhat.com>2012-05-15 06:36:20 -0400
committerJan Zeleny <jzeleny@redhat.com>2012-05-22 11:16:10 -0400
commit72dba27473b79d94de138c283245ec86e4a00afd (patch)
treed0a6dfa4ba209a3c63b5c3bd143f5cfa393e6bb2
parent8a00dcd3cec12f759d9137909e5c9b7d3bb951a4 (diff)
downloadsssd-72dba27473b79d94de138c283245ec86e4a00afd.tar.gz
sssd-72dba27473b79d94de138c283245ec86e4a00afd.tar.xz
sssd-72dba27473b79d94de138c283245ec86e4a00afd.zip
Temporarily add support for IPA_SID_OLD
This patch should not go to upstream master, it's only for development purposes.
-rw-r--r--src/providers/ipa/ipa_subdomains.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/providers/ipa/ipa_subdomains.c b/src/providers/ipa/ipa_subdomains.c
index 93540e84e..3da6e0d4d 100644
--- a/src/providers/ipa/ipa_subdomains.c
+++ b/src/providers/ipa/ipa_subdomains.c
@@ -31,6 +31,7 @@
#define IPA_CN "cn"
#define IPA_FLATNAME "ipaNTFlatName"
+#define IPA_SID_OLD "ipaNTSecurityIdentifier"
#define IPA_SID "ipaNTTrustedDomainSID"
enum ipa_subdomains_req_type {
@@ -113,6 +114,21 @@ static errno_t ipa_subdomains_parse_results(
DEBUG(SSSDBG_OP_FAILURE, ("sysdb_attrs_get_string failed.\n"));
goto done;
}
+
+ if (new_domain_list[c]->id == NULL) {
+ ret = sysdb_attrs_get_string(reply[c], IPA_SID_OLD, &value);
+ if (ret == EOK) {
+ new_domain_list[c]->id = talloc_strdup(new_domain_list[c], value);
+ if (new_domain_list[c]->id == NULL) {
+ DEBUG(SSSDBG_OP_FAILURE, ("talloc_strdup failed.\n"));
+ ret = ENOMEM;
+ goto done;
+ }
+ } else if (ret != ENOENT) {
+ DEBUG(SSSDBG_OP_FAILURE, ("sysdb_attrs_get_string failed.\n"));
+ goto done;
+ }
+ }
}
new_domain_list[c] = NULL;
@@ -253,6 +269,7 @@ ipa_subdomains_handler_get(struct ipa_subdomains_req_ctx *ctx,
const char *attrs[] = {IPA_CN,
IPA_FLATNAME,
IPA_SID,
+ IPA_SID_OLD,
NULL};
if (type >= IPA_SUBDOMAINS_MAX) {
@@ -403,7 +420,10 @@ static void ipa_subdomains_handler_master_done(struct tevent_req *req)
}
ret = sysdb_attrs_get_string(reply[0], IPA_SID, &tmp_str);
- if (ret != EOK) {
+ if (ret == ENOENT) {
+ ret = sysdb_attrs_get_string(reply[0], IPA_SID_OLD, &tmp_str);
+ if (ret != EOK) goto done;
+ } else if (ret != EOK) {
goto done;
}
domain_info->id = talloc_strdup(domain_info, tmp_str);