diff options
author | Jan Zeleny <jzeleny@redhat.com> | 2012-05-15 06:36:20 -0400 |
---|---|---|
committer | Jan Zeleny <jzeleny@redhat.com> | 2012-05-22 11:16:10 -0400 |
commit | 72dba27473b79d94de138c283245ec86e4a00afd (patch) | |
tree | d0a6dfa4ba209a3c63b5c3bd143f5cfa393e6bb2 | |
parent | 8a00dcd3cec12f759d9137909e5c9b7d3bb951a4 (diff) | |
download | sssd-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.c | 22 |
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); |