diff options
author | Sumit Bose <sbose@redhat.com> | 2015-06-03 16:18:05 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-06-19 18:48:13 +0200 |
commit | 8d4dedea12e2b71f83a1b0e5f0fc5cdb706dcf98 (patch) | |
tree | 3cfba2ea6cae424523da326c9d4d32b5a74fdf6a /src/responder/common/negcache.c | |
parent | caacea0dbfdc92613ae992681053b1d2665b80ca (diff) | |
download | sssd-8d4dedea12e2b71f83a1b0e5f0fc5cdb706dcf98.tar.gz sssd-8d4dedea12e2b71f83a1b0e5f0fc5cdb706dcf98.tar.xz sssd-8d4dedea12e2b71f83a1b0e5f0fc5cdb706dcf98.zip |
ncache: add calls for certificate based searches
Related to https://fedorahosted.org/sssd/ticket/2596
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/responder/common/negcache.c')
-rw-r--r-- | src/responder/common/negcache.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/responder/common/negcache.c b/src/responder/common/negcache.c index cf70dc52f..64270f467 100644 --- a/src/responder/common/negcache.c +++ b/src/responder/common/negcache.c @@ -35,6 +35,7 @@ #define NC_UID_PREFIX NC_ENTRY_PREFIX"UID" #define NC_GID_PREFIX NC_ENTRY_PREFIX"GID" #define NC_SID_PREFIX NC_ENTRY_PREFIX"SID" +#define NC_CERT_PREFIX NC_ENTRY_PREFIX"CERT" struct sss_nc_ctx { struct tdb_context *tdb; @@ -417,6 +418,21 @@ int sss_ncache_check_sid(struct sss_nc_ctx *ctx, int ttl, const char *sid) return ret; } +int sss_ncache_check_cert(struct sss_nc_ctx *ctx, int ttl, const char *cert) +{ + char *str; + int ret; + + str = talloc_asprintf(ctx, "%s/%s", NC_CERT_PREFIX, cert); + if (!str) return ENOMEM; + + ret = sss_ncache_check_str(ctx, str, ttl); + + talloc_free(str); + return ret; +} + + static int sss_ncache_set_user_int(struct sss_nc_ctx *ctx, bool permanent, const char *domain, const char *name) { @@ -548,6 +564,21 @@ int sss_ncache_set_sid(struct sss_nc_ctx *ctx, bool permanent, const char *sid) return ret; } +int sss_ncache_set_cert(struct sss_nc_ctx *ctx, bool permanent, + const char *cert) +{ + char *str; + int ret; + + str = talloc_asprintf(ctx, "%s/%s", NC_CERT_PREFIX, cert); + if (!str) return ENOMEM; + + ret = sss_ncache_set_str(ctx, str, permanent); + + talloc_free(str); + return ret; +} + static int delete_permanent(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state) { |