From: Krzysztof Jackiewicz Date: Mon, 13 Jun 2016 13:16:34 +0000 (+0200) Subject: Update error translation function X-Git-Tag: accepted/tizen/common/20160810.161523~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F92%2F74292%2F3;p=platform%2Fcore%2Fsecurity%2Fyaca.git Update error translation function Use macro for error translation. Don't return NULL. Update usage in error_dump(). Change-Id: I4e6368732a89f5710c2354e704dd073512a6b2f1 --- diff --git a/src/debug.c b/src/debug.c index 02d80c6..3778fc9 100644 --- a/src/debug.c +++ b/src/debug.c @@ -41,25 +41,20 @@ API void yaca_debug_set_error_cb(yaca_error_cb fn) error_cb = fn; } -API char *yaca_debug_translate_error(yaca_error_e err) +#define ERRORDESCRIBE(name) case name: return #name +API const char *yaca_debug_translate_error(yaca_error_e err) { - switch (err) { - case YACA_ERROR_NONE: - return "YACA_ERROR_NONE"; - case YACA_ERROR_INVALID_PARAMETER: - return "YACA_ERROR_INVALID_PARAMETER"; - case YACA_ERROR_OUT_OF_MEMORY: - return "YACA_ERROR_OUT_OF_MEMORY"; - case YACA_ERROR_INTERNAL: - return "YACA_ERROR_INTERNAL"; - case YACA_ERROR_DATA_MISMATCH: - return "YACA_ERROR_DATA_MISMATCH"; - case YACA_ERROR_INVALID_PASSWORD: - return "YACA_ERROR_INVALID_PASSWORD"; - default: - return NULL; - } + switch(err) { + ERRORDESCRIBE(YACA_ERROR_NONE); + ERRORDESCRIBE(YACA_ERROR_INVALID_PARAMETER); + ERRORDESCRIBE(YACA_ERROR_OUT_OF_MEMORY); + ERRORDESCRIBE(YACA_ERROR_INTERNAL); + ERRORDESCRIBE(YACA_ERROR_DATA_MISMATCH); + ERRORDESCRIBE(YACA_ERROR_INVALID_PASSWORD); + default: return "Error not defined"; + } } +#undef ERRORDESCRIBE void error_dump(const char *file, int line, const char *function, int code) { @@ -75,12 +70,15 @@ void error_dump(const char *file, int line, const char *function, int code) unsigned long err; size_t written; const char *err_str = yaca_debug_translate_error(code); + const char *sign = ""; + + if (code < 0) { + code *= -1; + sign = "-"; + } - written = snprintf(buf, BUF_SIZE, "%s:%d %s() API error: ", file, line, function); - if (err_str != NULL) - written += snprintf(buf + written, BUF_SIZE - written, "%s\n", err_str); - else - written += snprintf(buf + written, BUF_SIZE - written, "0x%X\n", code); + written = snprintf(buf, BUF_SIZE, "%s:%d %s() API error: %s0x%02X (%s)\n", file, + line, function, sign, code, err_str); while ((err = ERR_get_error()) != 0 && written < BUF_SIZE - 1) { if (!error_strings_loaded) {