diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2013-05-28 21:11:21 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-06-07 00:14:13 +0200 |
commit | c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3 (patch) | |
tree | 07a9ef7e9cbde7dac5f77393d810a639dcdfb3a9 | |
parent | ca344fdecdf127c80ad1074047aeba21e1165313 (diff) | |
download | sssd-c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3.tar.gz sssd-c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3.tar.bz2 sssd-c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3.zip |
Move domain_to_basedn outside IPA subtree
The utility function will be reused to guess search base from the base
DN of AD trusted domains.
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | src/providers/ipa/ipa_common.h | 2 | ||||
-rw-r--r-- | src/providers/ipa/ipa_utils.c | 63 | ||||
-rw-r--r-- | src/util/util.c | 35 | ||||
-rw-r--r-- | src/util/util.h | 2 |
5 files changed, 38 insertions, 67 deletions
diff --git a/Makefile.am b/Makefile.am index b5cc5897..a201abf2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1049,7 +1049,6 @@ auth_tests_LDADD = \ libsss_test_common.la ipa_ldap_opt_tests_SOURCES = \ - src/providers/ipa/ipa_utils.c \ src/tests/ipa_ldap_opt-tests.c ipa_ldap_opt_tests_CFLAGS = \ $(AM_CFLAGS) \ @@ -1057,6 +1056,7 @@ ipa_ldap_opt_tests_CFLAGS = \ ipa_ldap_opt_tests_LDADD = \ $(CHECK_LIBS) \ $(TALLOC_LIBS) \ + $(SSSD_INTERNAL_LTLIBS) \ libsss_test_common.la ad_ldap_opt_tests_SOURCES = \ @@ -1536,7 +1536,6 @@ libsss_ipa_la_SOURCES = \ src/providers/ipa/ipa_init.c \ src/providers/ipa/ipa_common.c \ src/providers/ipa/ipa_config.c \ - src/providers/ipa/ipa_utils.c \ src/providers/ipa/ipa_id.c \ src/providers/ipa/ipa_netgroups.c \ src/providers/ipa/ipa_auth.c \ diff --git a/src/providers/ipa/ipa_common.h b/src/providers/ipa/ipa_common.h index a32867dd..b660e66e 100644 --- a/src/providers/ipa/ipa_common.h +++ b/src/providers/ipa/ipa_common.h @@ -143,8 +143,6 @@ struct ipa_options { struct ipa_auth_ctx *auth_ctx; }; -int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn); - /* options parsers */ int ipa_get_options(TALLOC_CTX *memctx, struct confdb_ctx *cdb, diff --git a/src/providers/ipa/ipa_utils.c b/src/providers/ipa/ipa_utils.c deleted file mode 100644 index a1e48f2d..00000000 --- a/src/providers/ipa/ipa_utils.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - SSSD - - IPA Provider Utility Functions - - Authors: - Simo Sorce <ssorce@redhat.com>, Sumit Bose <sbose@redhat.com> - - Copyright (C) 2009-2010 Red Hat - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - - -#include <ctype.h> - -#include "providers/ipa/ipa_common.h" - -int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn) -{ - const char *s; - char *dn; - char *p; - int l; - - if (!domain || !basedn) { - return EINVAL; - } - - s = domain; - dn = talloc_strdup(memctx, "dc="); - - while ((p = strchr(s, '.'))) { - l = p - s; - dn = talloc_asprintf_append_buffer(dn, "%.*s,dc=", l, s); - if (!dn) { - return ENOMEM; - } - s = p + 1; - } - dn = talloc_strdup_append_buffer(dn, s); - if (!dn) { - return ENOMEM; - } - - for (p=dn; *p; ++p) { - *p = tolower(*p); - } - - *basedn = dn; - return EOK; -} diff --git a/src/util/util.c b/src/util/util.c index ba85e0da..63cffe85 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -688,3 +688,38 @@ void safezero(void *data, size_t size) *p++ = 0; } } + +int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn) +{ + const char *s; + char *dn; + char *p; + int l; + + if (!domain || !basedn) { + return EINVAL; + } + + s = domain; + dn = talloc_strdup(memctx, "dc="); + + while ((p = strchr(s, '.'))) { + l = p - s; + dn = talloc_asprintf_append_buffer(dn, "%.*s,dc=", l, s); + if (!dn) { + return ENOMEM; + } + s = p + 1; + } + dn = talloc_strdup_append_buffer(dn, s); + if (!dn) { + return ENOMEM; + } + + for (p=dn; *p; ++p) { + *p = tolower(*p); + } + + *basedn = dn; + return EOK; +} diff --git a/src/util/util.h b/src/util/util.h index 87a4061e..e55c0b4d 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -516,6 +516,8 @@ bool string_in_list(const char *string, char **list, bool case_sensitive); */ void safezero(void *data, size_t size); +int domain_to_basedn(TALLOC_CTX *memctx, const char *domain, char **basedn); + /* from nscd.c */ enum nscd_db { NSCD_DB_PASSWD, |