cache_req.h revision cee85e8fb9534ec997e5388fce59f392cf029573
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina/*
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina Authors:
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina Pavel Březina <pbrezina@redhat.com>
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina Copyright (C) 2016 Red Hat
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina This program is free software; you can redistribute it and/or modify
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina it under the terms of the GNU General Public License as published by
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina the Free Software Foundation; either version 3 of the License, or
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina (at your option) any later version.
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina This program is distributed in the hope that it will be useful,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina GNU General Public License for more details.
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina You should have received a copy of the GNU General Public License
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina*/
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#ifndef _CACHE_REQ_H_
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#define _CACHE_REQ_H_
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#include "util/util.h"
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#include "confdb/confdb.h"
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#include "responder/common/negcache.h"
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březinaenum cache_req_type {
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_USER_BY_NAME,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_USER_BY_UPN,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_USER_BY_ID,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_USER_BY_CERT,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_USER_BY_FILTER,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_GROUP_BY_NAME,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_GROUP_BY_ID,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_GROUP_BY_FILTER,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_INITGROUPS,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_INITGROUPS_BY_UPN,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březina CACHE_REQ_OBJECT_BY_SID,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina CACHE_REQ_OBJECT_BY_NAME,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina CACHE_REQ_OBJECT_BY_ID,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina CACHE_REQ_ENUM_USERS,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina CACHE_REQ_ENUM_GROUPS,
0ae7e46a3990c47873fca879a9395e3ce00d9150Pavel Březina CACHE_REQ_ENUM_SVC,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina CACHE_REQ_SVC_BY_NAME,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina CACHE_REQ_SVC_BY_PORT,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina CACHE_REQ_NETGROUP_BY_NAME,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina CACHE_REQ_HOST_BY_NAME,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina CACHE_REQ_SENTINEL
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina};
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek/* Whether to limit the request type to a certain domain type
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek * (POSIX/non-POSIX)
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek */
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozekenum cache_req_dom_type {
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek /* Only look up data in POSIX domains */
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek CACHE_REQ_POSIX_DOM,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek /* Only look up data in application domains */
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek CACHE_REQ_APPLICATION_DOM,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek /* Look up data in any domain type */
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek CACHE_REQ_ANY_DOM
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek};
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina/* Input data. */
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březinastruct cache_req_data;
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct cache_req_data *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_data_name(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina enum cache_req_type type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *name);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březinastruct cache_req_data *
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březinacache_req_data_name_attrs(TALLOC_CTX *mem_ctx,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina enum cache_req_type type,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina const char *name,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina const char **attrs);
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct cache_req_data *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_data_id(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina enum cache_req_type type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina uint32_t id);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březinastruct cache_req_data *
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březinacache_req_data_id_attrs(TALLOC_CTX *mem_ctx,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina enum cache_req_type type,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina uint32_t id,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina const char **attrs);
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct cache_req_data *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_data_cert(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina enum cache_req_type type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *cert);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct cache_req_data *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_data_sid(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina enum cache_req_type type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *sid,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char **attrs);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
a79acee185654d110c0e35ba351368d664e4e53dPavel Březinastruct cache_req_data *
a79acee185654d110c0e35ba351368d664e4e53dPavel Březinacache_req_data_enum(TALLOC_CTX *mem_ctx,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina enum cache_req_type type);
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březinastruct cache_req_data *
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březinacache_req_data_svc(TALLOC_CTX *mem_ctx,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina enum cache_req_type type,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina const char *name,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina const char *protocol,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina uint16_t port);
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březinastruct cache_req_data *
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březinacache_req_data_host(TALLOC_CTX *mem_ctx,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina enum cache_req_type type,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char *name,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char *alias,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char **attrs);
189db5329db0277425bb3bdd785c19aee23bb364Fabiano Fidênciovoid
189db5329db0277425bb3bdd785c19aee23bb364Fabiano Fidênciocache_req_data_set_bypass_cache(struct cache_req_data *data,
189db5329db0277425bb3bdd785c19aee23bb364Fabiano Fidêncio bool bypass_cache);
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina/* Output data. */
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březinastruct cache_req_result {
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina /**
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * SSSD domain where the result was obtained.
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina */
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct sss_domain_info *domain;
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina /**
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * Result from ldb lookup.
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina */
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct ldb_result *ldb_result;
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina /**
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * Shortcuts into ldb_result. This shortens the code a little since
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * callers usually don't don't need to work with ldb_result directly.
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina */
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina unsigned int count;
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct ldb_message **msgs;
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina /**
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * If name was used as a lookup parameter, @lookup_name contains name
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina * normalized to @domain rules.
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina */
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina const char *lookup_name;
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina /**
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina * If true the result contain attributes of a well known object.
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina * Since this result is manually created it may not contain all
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina * requested attributes, depending on the plug-in.
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina */
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina bool well_known_object;
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina /* If this is a well known object, it may not be part of any particular
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina * SSSD domain, but still may be associated with a well known domain
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina * name such as "BUILTIN", or "LOCAL AUTHORITY".
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina */
7be55c7de03da57f43fae3db7e6114eebb117a2ePavel Březina const char *well_known_domain;
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina};
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina/**
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina * Shallow copy of cache request result, limiting the result to a maximum
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina * numbers of records.
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina */
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březinastruct cache_req_result *
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březinacache_req_copy_limited_result(TALLOC_CTX *mem_ctx,
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina struct cache_req_result *result,
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina uint32_t start,
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina uint32_t limit);
4e2c15e6b7c4015fa787f8c624c2ec10153e99f6Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina/* Generic request. */
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březinastruct tevent_req *cache_req_send(TALLOC_CTX *mem_ctx,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina struct tevent_context *ev,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina struct resp_ctx *rctx,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina struct sss_nc_ctx *ncache,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina int midpoint,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina const char *domain,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina struct cache_req_data *data);
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březinaerrno_t cache_req_recv(TALLOC_CTX *mem_ctx,
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina struct tevent_req *req,
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct cache_req_result ***_results);
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březinaerrno_t cache_req_single_domain_recv(TALLOC_CTX *mem_ctx,
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct tevent_req *req,
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina struct cache_req_result **_result);
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březina/* Plug-ins. */
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_user_by_name_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *name);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_user_by_name_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březinastruct tevent_req *
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březinacache_req_user_by_name_attrs_send(TALLOC_CTX *mem_ctx,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina struct tevent_context *ev,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina struct resp_ctx *rctx,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina struct sss_nc_ctx *ncache,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina int cache_refresh_percent,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina const char *domain,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina const char *name,
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina const char **attrs);
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina#define cache_req_user_by_name_attrs_recv(mem_ctx, req, _result) \
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
7723e79f5a1fad4201360199037aea33f655bab6Pavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_user_by_id_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina uid_t uid);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_user_by_id_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_user_by_cert_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *pem_cert);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_user_by_cert_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_group_by_name_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *name);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_group_by_name_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_group_by_id_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina gid_t gid);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_group_by_id_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_initgr_by_name_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *name);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_initgr_by_name_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_user_by_filter_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *filter);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_user_by_filter_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_group_by_filter_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
cee85e8fb9534ec997e5388fce59f392cf029573Jakub Hrozek enum cache_req_dom_type req_dom_type,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *filter);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_group_by_filter_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
0db2f3402b37df221fbf55486769989f82df479aPavel Březinastruct tevent_req *
0db2f3402b37df221fbf55486769989f82df479aPavel Březinacache_req_object_by_sid_send(TALLOC_CTX *mem_ctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct tevent_context *ev,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct resp_ctx *rctx,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina struct sss_nc_ctx *ncache,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina int cache_refresh_percent,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *domain,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char *sid,
0db2f3402b37df221fbf55486769989f82df479aPavel Březina const char **attrs);
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina#define cache_req_object_by_sid_recv(mem_ctx, req, _result) \
b206e1abb7f6ea373d12537b3338552aed6b656dPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
0db2f3402b37df221fbf55486769989f82df479aPavel Březina
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březinastruct tevent_req *
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březinacache_req_object_by_name_send(TALLOC_CTX *mem_ctx,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina struct tevent_context *ev,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina struct resp_ctx *rctx,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina struct sss_nc_ctx *ncache,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina int cache_refresh_percent,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina const char *domain,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina const char *name,
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina const char **attrs);
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina#define cache_req_object_by_name_recv(mem_ctx, req, _result) \
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
488518dde58724daa13b9216a0f1af6e0ba5401fPavel Březina
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březinastruct tevent_req *
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březinacache_req_object_by_id_send(TALLOC_CTX *mem_ctx,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina struct tevent_context *ev,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina struct resp_ctx *rctx,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina struct sss_nc_ctx *ncache,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina int cache_refresh_percent,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina const char *domain,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina uint32_t id,
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina const char **attrs);
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina#define cache_req_object_by_id_recv(mem_ctx, req, _result) \
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
3be2628d8aba6aeb99ac1484da990f1fad8169ecPavel Březina
a79acee185654d110c0e35ba351368d664e4e53dPavel Březinastruct tevent_req *
a79acee185654d110c0e35ba351368d664e4e53dPavel Březinacache_req_enum_users_send(TALLOC_CTX *mem_ctx,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina struct tevent_context *ev,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina struct resp_ctx *rctx,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina struct sss_nc_ctx *ncache,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina int cache_refresh_percent,
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina const char *domain);
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina#define cache_req_enum_users_recv(mem_ctx, req, _result) \
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina cache_req_recv(mem_ctx, req, _result)
a79acee185654d110c0e35ba351368d664e4e53dPavel Březina
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březinastruct tevent_req *
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březinacache_req_enum_groups_send(TALLOC_CTX *mem_ctx,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina struct tevent_context *ev,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina struct resp_ctx *rctx,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina struct sss_nc_ctx *ncache,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina int cache_refresh_percent,
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina const char *domain);
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina#define cache_req_enum_groups_recv(mem_ctx, req, _result) \
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina cache_req_recv(mem_ctx, req, _result)
12d771585a84a7523a5b7d9cf502d4bcddecb9b9Pavel Březina
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březinastruct tevent_req *
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březinacache_req_svc_by_name_send(TALLOC_CTX *mem_ctx,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina struct tevent_context *ev,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina struct resp_ctx *rctx,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina struct sss_nc_ctx *ncache,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina int cache_refresh_percent,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina const char *domain,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina const char *name,
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina const char *protocol);
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina#define cache_req_svc_by_name_recv(mem_ctx, req, _result) \
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
2e13817e64ff1e0e47dc844be501f2d3ab299f34Pavel Březina
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březinastruct tevent_req *
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březinacache_req_svc_by_port_send(TALLOC_CTX *mem_ctx,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina struct tevent_context *ev,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina struct resp_ctx *rctx,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina struct sss_nc_ctx *ncache,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina int cache_refresh_percent,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina const char *domain,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina uint16_t port,
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina const char *protocol);
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina#define cache_req_svc_by_port_recv(mem_ctx, req, _result) \
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
c2fc9459c31cb1192ab3c15ce4df1c150e99bf95Pavel Březina
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březinastruct tevent_req *
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březinacache_req_netgroup_by_name_send(TALLOC_CTX *mem_ctx,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina struct tevent_context *ev,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina struct resp_ctx *rctx,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina struct sss_nc_ctx *ncache,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina int cache_refresh_percent,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina const char *domain,
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina const char *name);
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina#define cache_req_netgroup_by_name_recv(mem_ctx, req, _result) \
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
6b159f14f69134bba8510a6b50ab62493a23a73fPavel Březina
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březinastruct tevent_req *
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březinacache_req_host_by_name_send(TALLOC_CTX *mem_ctx,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina struct tevent_context *ev,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina struct resp_ctx *rctx,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina struct sss_nc_ctx *ncache,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina int cache_refresh_percent,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char *domain,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char *name,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char *alias,
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina const char **attrs);
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina#define cache_req_host_by_name_recv(mem_ctx, req, _result) \
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina cache_req_single_domain_recv(mem_ctx, req, _result)
53c31b83e4d06ea4c2813eec2f1e647a613b4a2bPavel Březina
2749964664a69bbb99d09409c1110095cbfcc664Pavel Březina#endif /* _CACHE_REQ_H_ */