>From 89081f432158ff2a16c65d78f1c9baf467d2a153 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Tue, 28 May 2013 21:11:21 +0200 Subject: [PATCH 07/15] 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. --- Makefile.am | 3 +- src/providers/ipa/ipa_common.h | 2 -- src/providers/ipa/ipa_utils.c | 63 ------------------------------------------ src/util/util.c | 35 +++++++++++++++++++++++ src/util/util.h | 2 ++ 5 files changed, 38 insertions(+), 67 deletions(-) delete mode 100644 src/providers/ipa/ipa_utils.c diff --git a/Makefile.am b/Makefile.am index 2bcb71457af4a21ab4144a379148bc31820b7469..7ceeec06340f6c91f7a5988e36fcc1c0007caf38 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) \ + libsss_util.la \ libsss_test_common.la ad_ldap_opt_tests_SOURCES = \ @@ -1554,7 +1554,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 a32867dd4533ba00ae58893c721b18a18537a98f..b660e66e2246cbbe5da69a745e46e67b3f20ec15 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 a1e48f2d7830bde53584e83d3f75b174e0a43fd8..0000000000000000000000000000000000000000 --- a/src/providers/ipa/ipa_utils.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - SSSD - - IPA Provider Utility Functions - - Authors: - Simo Sorce , Sumit Bose - - 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 . -*/ - - -#include - -#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 ba85e0da2a2e03784c5bb9abbbd038ddaeb3455c..63cffe85e145953d3b2f4f85e649d2a0ac5b1b83 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 bdb04a8f3f6cf565743edded84fd798043cbe286..8a15afba7a93e6914cdb713b4f759e70e94d7825 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -491,6 +491,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, -- 1.8.2.1