/*
SSSD
KCM Server - private header file
Copyright (C) Red Hat, 2016
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/>.
*/
#ifndef __KCMSRV_PVT_H__
#define __KCMSRV_PVT_H__
#include "config.h"
#include "responder/common/responder.h"
/*
* KCM IO structure
*
* In theory we cold use sss_iobuf there, but since iobuf was
* made opaque, this allows it to allocate the structures on
* the stack in one go.
* */
struct kcm_data {
};
/*
* To avoid leaking the sssd-specific responder data to other
* modules, the ccache databases and other KCM specific data
* are kept separately
*/
struct kcm_resp_ctx {
};
/* Supported ccache back ends */
enum kcm_ccdb_be {
};
/*
* responder context that contains both the responder data,
* like the ccaches and the sssd-specific stuff like the
* generic responder ctx
*/
struct kcm_ctx {
int fd_limit;
char *socket_path;
};
/*
* Internally in SSSD-KCM we use SSSD-internal error codes so that we
* can always the same sss_strerror() functions to format the errors
* nicely, but the client expects libkrb5 error codes.
*/
/* We enqueue all requests by the same UID to avoid concurrency issues
* especially when performing multiple round-trips to sssd-secrets. In
* future, we should relax the queue to allow multiple read-only operations
* if no write operations are in progress.
*/
struct kcm_ops_queue_entry;
struct tevent_context *ev,
struct kcm_ops_queue_ctx *qctx,
struct kcm_ops_queue_entry **_entry);
#endif /* __KCMSRV_PVT_H__ */