From cfcc908cae120ec9ad7a71d3ce57c6f329aa936a Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Thu, 2 Jul 2020 13:45:22 +0200 Subject: [PATCH] Move clogger to libcryptsetup_cli crypt_cli_logger. --- lib/cli/cli.c | 26 +++++++++++++++++++++----- lib/cli/libcryptsetup_cli.h | 9 +++++++++ lib/cli/libcryptsetup_cli.sym | 1 + src/cryptsetup.h | 8 -------- src/utils_tools.c | 23 ----------------------- 5 files changed, 31 insertions(+), 36 deletions(-) diff --git a/lib/cli/cli.c b/lib/cli/cli.c index 39d60fbb..d51e691a 100644 --- a/lib/cli/cli.c +++ b/lib/cli/cli.c @@ -39,11 +39,6 @@ #include "libcryptsetup_cli.h" #include "cli_internal.h" -#define log_dbg(x...) clogger(NULL, CRYPT_LOG_DEBUG, __FILE__, __LINE__, x) -#define log_std(x...) clogger(NULL, CRYPT_LOG_NORMAL, __FILE__, __LINE__, x) -#define log_verbose(x...) clogger(NULL, CRYPT_LOG_VERBOSE, __FILE__, __LINE__, x) -#define log_err(x...) clogger(NULL, CRYPT_LOG_ERROR, __FILE__, __LINE__, x) - #define LOG_MAX_LEN 4096 /* Password reading helpers */ @@ -422,3 +417,24 @@ bool crypt_cli_arg_set(struct crypt_cli *ctx, const char *name) return arg->set; } + +__attribute__((format(printf, 5, 6))) +void crypt_cli_logger(struct crypt_device *cd, int level, const char *file, int line, + const char *format, ...) +{ + va_list argp; + char target[LOG_MAX_LEN + 2]; + + va_start(argp, format); + + if (vsnprintf(&target[0], LOG_MAX_LEN, format, argp) > 0) { + /* All verbose and error messages in tools end with EOL. */ + if (level == CRYPT_LOG_VERBOSE || level == CRYPT_LOG_ERROR || level == CRYPT_LOG_DEBUG || + level == CRYPT_LOG_DEBUG_JSON) + strncat(target, "\n", LOG_MAX_LEN); + + crypt_log(cd, level, target); + } + + va_end(argp); +} diff --git a/lib/cli/libcryptsetup_cli.h b/lib/cli/libcryptsetup_cli.h index 96e1ec41..e0779058 100644 --- a/lib/cli/libcryptsetup_cli.h +++ b/lib/cli/libcryptsetup_cli.h @@ -56,6 +56,15 @@ int crypt_cli_arg_value(struct crypt_cli *ctx, const char *name, void *value); int crypt_cli_arg_type(struct crypt_cli *ctx, const char *name, crypt_arg_type_info *type); +void crypt_cli_logger(struct crypt_device *cd, int level, const char *file, int line, + const char *format, ...); + +/* Log */ +#define log_dbg(x...) crypt_cli_logger(NULL, CRYPT_LOG_DEBUG, __FILE__, __LINE__, x) +#define log_std(x...) crypt_cli_logger(NULL, CRYPT_LOG_NORMAL, __FILE__, __LINE__, x) +#define log_verbose(x...) crypt_cli_logger(NULL, CRYPT_LOG_VERBOSE, __FILE__, __LINE__, x) +#define log_err(x...) crypt_cli_logger(NULL, CRYPT_LOG_ERROR, __FILE__, __LINE__, x) + #ifdef __cplusplus } #endif diff --git a/lib/cli/libcryptsetup_cli.sym b/lib/cli/libcryptsetup_cli.sym index d3992017..52e64af3 100644 --- a/lib/cli/libcryptsetup_cli.sym +++ b/lib/cli/libcryptsetup_cli.sym @@ -5,6 +5,7 @@ CRYPTSETUP_CLI_1.0 { crypt_cli_arg_set; crypt_cli_arg_type; crypt_cli_arg_value; + crypt_cli_logger; local: *; }; diff --git a/src/cryptsetup.h b/src/cryptsetup.h index 6943e388..53df23fd 100644 --- a/src/cryptsetup.h +++ b/src/cryptsetup.h @@ -71,8 +71,6 @@ extern int opt_batch_mode; extern int opt_progress_frequency; /* Common tools */ -void clogger(struct crypt_device *cd, int level, const char *file, int line, - const char *format, ...) __attribute__ ((format (printf, 5, 6))); void tool_log(int level, const char *msg, void *usrptr __attribute__((unused))); void quiet_log(int level, const char *msg, void *usrptr); @@ -129,10 +127,4 @@ void tools_cleanup(void); #define FREE_AND_NULL(x) do { free(x); x = NULL; } while (0) -/* Log */ -#define log_dbg(x...) clogger(NULL, CRYPT_LOG_DEBUG, __FILE__, __LINE__, x) -#define log_std(x...) clogger(NULL, CRYPT_LOG_NORMAL, __FILE__, __LINE__, x) -#define log_verbose(x...) clogger(NULL, CRYPT_LOG_VERBOSE, __FILE__, __LINE__, x) -#define log_err(x...) clogger(NULL, CRYPT_LOG_ERROR, __FILE__, __LINE__, x) - #endif /* CRYPTSETUP_H */ diff --git a/src/utils_tools.c b/src/utils_tools.c index 1773bd56..16c2b235 100644 --- a/src/utils_tools.c +++ b/src/utils_tools.c @@ -77,29 +77,6 @@ void check_signal(int *r) *r = -EINTR; } -#define LOG_MAX_LEN 4096 - -__attribute__((format(printf, 5, 6))) -void clogger(struct crypt_device *cd, int level, const char *file, int line, - const char *format, ...) -{ - va_list argp; - char target[LOG_MAX_LEN + 2]; - - va_start(argp, format); - - if (vsnprintf(&target[0], LOG_MAX_LEN, format, argp) > 0) { - /* All verbose and error messages in tools end with EOL. */ - if (level == CRYPT_LOG_VERBOSE || level == CRYPT_LOG_ERROR || - level == CRYPT_LOG_DEBUG || level == CRYPT_LOG_DEBUG_JSON) - strncat(target, "\n", LOG_MAX_LEN); - - crypt_log(cd, level, target); - } - - va_end(argp); -} - void tool_log(int level, const char *msg, void *usrptr __attribute__((unused))) { switch(level) {