diff options
author | Yossi Gottlieb <yossigo@gmail.com> | 2020-10-11 17:11:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-11 17:11:42 +0300 |
commit | 0aec98dce2acbd280ad8ff4feac631e8afa833b1 (patch) | |
tree | aea73b0fa5b0f78108533384fa04604b5b82f637 /tests/modules/misc.c | |
parent | 907da0580b57013c9e5c38b27f351597c72e4e25 (diff) | |
download | redis-0aec98dce2acbd280ad8ff4feac631e8afa833b1.tar.gz |
Module API: Add RM_GetClientCertificate(). (#7866)
This API function makes it possible to retrieve the X.509 certificate
used by clients to authenticate TLS connections.
Diffstat (limited to 'tests/modules/misc.c')
-rw-r--r-- | tests/modules/misc.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/modules/misc.c b/tests/modules/misc.c index a43bb84ac..621b92b2d 100644 --- a/tests/modules/misc.c +++ b/tests/modules/misc.c @@ -195,6 +195,23 @@ int test_setlfu(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return REDISMODULE_OK; } +int test_getclientcert(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) +{ + (void) argv; + (void) argc; + + RedisModuleString *cert = RedisModule_GetClientCertificate(ctx, + RedisModule_GetClientId(ctx)); + if (!cert) { + RedisModule_ReplyWithNull(ctx); + } else { + RedisModule_ReplyWithString(ctx, cert); + RedisModule_FreeString(ctx, cert); + } + + return REDISMODULE_OK; +} + int test_clientinfo(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { (void) argv; @@ -283,6 +300,8 @@ int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx,"test.clientinfo", test_clientinfo,"",0,0,0) == REDISMODULE_ERR) return REDISMODULE_ERR; + if (RedisModule_CreateCommand(ctx,"test.getclientcert", test_getclientcert,"",0,0,0) == REDISMODULE_ERR) + return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx,"test.log_tsctx", test_log_tsctx,"",0,0,0) == REDISMODULE_ERR) return REDISMODULE_ERR; |