Line data Source code
1 : /** 2 : * The MIT License (MIT) 3 : * 4 : * Copyright (c) 2021 RSK Labs Ltd 5 : * 6 : * Permission is hereby granted, free of charge, to any person obtaining a copy 7 : * of this software and associated documentation files (the "Software"), to 8 : * deal in the Software without restriction, including without limitation the 9 : * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10 : * sell copies of the Software, and to permit persons to whom the Software is 11 : * furnished to do so, subject to the following conditions: 12 : * 13 : * The above copyright notice and this permission notice shall be included in 14 : * all copies or substantial portions of the Software. 15 : * 16 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 : * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 : * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22 : * IN THE SOFTWARE. 23 : */ 24 : 25 : #include <stdio.h> 26 : #include <stdarg.h> 27 : 28 : #include "log.h" 29 : 30 : static char *log_prefix = (char *)NULL; 31 : 32 130 : void LOG(const char *format, ...) { 33 : va_list args; 34 130 : va_start(args, format); 35 : 36 130 : if (log_prefix) { 37 0 : printf("%s", log_prefix); 38 : } 39 130 : vprintf(format, args); 40 : 41 130 : va_end(args); 42 130 : } 43 : 44 22 : void LOG_HEX(const char *prefix, const void *buffer, const size_t size) { 45 22 : if (log_prefix) { 46 0 : printf("%s", log_prefix); 47 : } 48 22 : printf("%s ", prefix); 49 22 : if (size > 0) { 50 22 : printf("0x"); 51 221 : for (unsigned int i = 0; i < size; i++) { 52 199 : printf("%02x", ((unsigned char *)buffer)[i]); 53 : } 54 : } else { 55 0 : printf("EMPTY"); 56 : } 57 22 : printf("\n"); 58 22 : } 59 : 60 0 : void log_set_prefix(const char *prefix) { 61 0 : log_prefix = (char *)prefix; 62 0 : } 63 : 64 0 : void log_clear_prefix() { 65 0 : log_prefix = (char *)NULL; 66 0 : }