cache_req_domain.h revision 86526891366c4bc3e1ee861143b736d2670a6ba8
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher/*
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher Authors:
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher Fabiano FidĂȘncio <fidencio@redhat.com>
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher Copyright (C) 2017 Red Hat
2cb6f28b3a12bb714bf14494d31eb6b6fff64b8bJakub Hrozek
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher This program is free software; you can redistribute it and/or modify
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher it under the terms of the GNU General Public License as published by
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher the Free Software Foundation; either version 3 of the License, or
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher (at your option) any later version.
fbeb1aba9e11e7aab8adac943276ca040f0c5311Jakub Hrozek
06c1952db1ab5598e3d68132f9c846bc59c94ef7Jakub Hrozek This program is distributed in the hope that it will be useful,
7797e361155f7ce937085fd98e360469d7baf1b6Jakub Hrozek but WITHOUT ANY WARRANTY; without even the implied warranty of
a7797068c4deb6ce2bdbcda27c45ff1bbb4a8e78Jakub Hrozek MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a7797068c4deb6ce2bdbcda27c45ff1bbb4a8e78Jakub Hrozek GNU General Public License for more details.
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher You should have received a copy of the GNU General Public License
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher along with this program. If not, see <http://www.gnu.org/licenses/>.
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher*/
7a14e8f66c0e932fe2954d792614a3b61d444bd1Jakub Hrozek
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher#ifndef _CACHE_REQ_DOMAIN_H_
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher#define _CACHE_REQ_DOMAIN_H_
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher#include "responder/common/responder.h"
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozekstruct cache_req_domain {
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek struct sss_domain_info *domain;
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek bool fqnames;
5ee3fba0bd812242a1ffe189f5ddf2689e6e6811Jakub Hrozek
5ee3fba0bd812242a1ffe189f5ddf2689e6e6811Jakub Hrozek struct cache_req_domain *prev;
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher struct cache_req_domain *next;
b355dcb54194f498921743ca33304eac35d89718Stephen Gallagher};
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagherstruct cache_req_domain *
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallaghercache_req_domain_get_domain_by_name(struct cache_req_domain *domains,
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher const char *name);
b355dcb54194f498921743ca33304eac35d89718Stephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher/*
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher * This function may have a side effect of setting the output_fqnames' domain
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher * property when it's called.
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher *
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher * It happens as the output_fqnames' domain property must only be set depending
2ea6196484055397cc4bc011c5960f790431fa9dStephen Gallagher * on whether a domain resolution order is set or not, and the saner place to
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek * set it to all domains is when flattening those (thus, in this function).
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher */
b355dcb54194f498921743ca33304eac35d89718Stephen Gallaghererrno_t
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallaghercache_req_domain_new_list_from_domain_resolution_order(
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher TALLOC_CTX *mem_ctx,
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher struct sss_domain_info *domains,
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher const char *domain_resolution_order,
b355dcb54194f498921743ca33304eac35d89718Stephen Gallagher struct cache_req_domain **_cr_domains);
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallaghervoid cache_req_domain_list_zfree(struct cache_req_domain **cr_domains);
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher#endif /* _CACHE_REQ_DOMAIN_H_ */
52261fe16203dec6e6f69177c6d0a810b47d073fStephen Gallagher