summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2013-05-28 21:11:21 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-06-07 00:14:13 +0200
commitc51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3 (patch)
tree07a9ef7e9cbde7dac5f77393d810a639dcdfb3a9
parentca344fdecdf127c80ad1074047aeba21e1165313 (diff)
downloadsssd-c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3.tar.gz
sssd-c51f7a064b0d7ef86110bdeb6dc09fa6c08be7d3.tar.xz
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.am3
-rw-r--r--src/providers/ipa/ipa_common.h2
-rw-r--r--src/providers/ipa/ipa_utils.c63
-rw-r--r--src/util/util.c35
-rw-r--r--src/util/util.h2
5 files changed, 38 insertions, 67 deletions
diff --git a/Makefile.am b/Makefile.am
index b5cc58971..a201abf20 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 a32867dd4..b660e66e2 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 a1e48f2d7..000000000
--- 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 ba85e0da2..63cffe85e 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 87a4061e6..e55c0b4d3 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,