summaryrefslogtreecommitdiffstats
path: root/src/cli_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli_common.h')
-rw-r--r--src/cli_common.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/cli_common.h b/src/cli_common.h
new file mode 100644
index 0000000..cffdee6
--- /dev/null
+++ b/src/cli_common.h
@@ -0,0 +1,54 @@
+#ifndef __CLICOMMON_H
+#define __CLICOMMON_H
+
+#include <hiredis.h>
+#include <sdscompat.h> /* Use hiredis' sds compat header that maps sds calls to their hi_ variants */
+
+typedef struct cliSSLconfig {
+ /* Requested SNI, or NULL */
+ char *sni;
+ /* CA Certificate file, or NULL */
+ char *cacert;
+ /* Directory where trusted CA certificates are stored, or NULL */
+ char *cacertdir;
+ /* Skip server certificate verification. */
+ int skip_cert_verify;
+ /* Client certificate to authenticate with, or NULL */
+ char *cert;
+ /* Private key file to authenticate with, or NULL */
+ char *key;
+ /* Preferred cipher list, or NULL (applies only to <= TLSv1.2) */
+ char* ciphers;
+ /* Preferred ciphersuites list, or NULL (applies only to TLSv1.3) */
+ char* ciphersuites;
+} cliSSLconfig;
+
+
+/* server connection information object, used to describe an ip:port pair, db num user input, and user:pass. */
+typedef struct cliConnInfo {
+ char *hostip;
+ int hostport;
+ int input_dbnum;
+ char *auth;
+ char *user;
+} cliConnInfo;
+
+int cliSecureConnection(redisContext *c, cliSSLconfig config, const char **err);
+
+ssize_t cliWriteConn(redisContext *c, const char *buf, size_t buf_len);
+
+int cliSecureInit(void);
+
+sds readArgFromStdin(void);
+
+sds *getSdsArrayFromArgv(int argc,char **argv, int quoted);
+
+sds unquoteCString(char *str);
+
+void parseRedisUri(const char *uri, const char* tool_name, cliConnInfo *connInfo, int *tls_flag);
+
+void freeCliConnInfo(cliConnInfo connInfo);
+
+sds escapeJsonString(sds s, const char *p, size_t len);
+
+#endif /* __CLICOMMON_H */