/
githubmirror
/
sssd
Обзор
Документация
Войти
/
githubmirror
/
sssd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/providers/ipa/ipa_utils.c
63 строки
2 KB
Sumit Bose
ipa: add split_ipa_anchor()
20 ноя 2014, 12:52
20 ноя 2014, 12:52
8eb981d
Код
Авторство
О чём код?
/* SSSD IPA Module utility functions Authors: Sumit Bose <sbose@redhat.com> Copyright (C) 2014 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 "util/util.h" #define OVERRIDE_ANCHOR_IPA_PREFIX ":IPA:" #define OVERRIDE_ANCHOR_IPA_PREFIX_LEN (sizeof(OVERRIDE_ANCHOR_IPA_PREFIX) -1 ) errno_t split_ipa_anchor(TALLOC_CTX *mem_ctx, const char *anchor, char **_anchor_domain, char **_ipa_uuid) { const char *sep; if (anchor == NULL) { return EINVAL; } if (strncmp(OVERRIDE_ANCHOR_IPA_PREFIX, anchor, OVERRIDE_ANCHOR_IPA_PREFIX_LEN) != 0) { DEBUG(SSSDBG_CRIT_FAILURE, "No IPA anchor [%s].\n", anchor); return ENOMSG; } sep = strchr(anchor + OVERRIDE_ANCHOR_IPA_PREFIX_LEN, ':'); if (sep == NULL || sep[1] == '\0') { DEBUG(SSSDBG_CRIT_FAILURE, "Broken IPA anchor [%s].\n", anchor); return EINVAL; } *_anchor_domain = talloc_strndup(mem_ctx, anchor + OVERRIDE_ANCHOR_IPA_PREFIX_LEN, sep - anchor - OVERRIDE_ANCHOR_IPA_PREFIX_LEN); *_ipa_uuid = talloc_strdup(mem_ctx, sep + 1); if (*_anchor_domain == NULL || *_ipa_uuid == NULL) { DEBUG(SSSDBG_OP_FAILURE, "talloc_strndup failed.\n"); talloc_free(*_anchor_domain); talloc_free(*_ipa_uuid); return ENOMEM; } return EOK; }