mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 12:59:44 -07:00
added PrintAndLogEx for merge commits between repo easier than now
This commit is contained in:
parent
a6e2ec60ff
commit
d535391708
4 changed files with 117 additions and 0 deletions
|
@ -16,6 +16,7 @@
|
||||||
#include "emv/dump.h"
|
#include "emv/dump.h"
|
||||||
#include "asn1dump.h"
|
#include "asn1dump.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "ui.h" // PrintAndLog
|
||||||
|
|
||||||
int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval) {
|
int ecdsa_asn1_get_signature(uint8_t *signature, size_t signaturelen, uint8_t *rval, uint8_t *sval) {
|
||||||
if (!signature || !signaturelen || !rval || !sval)
|
if (!signature || !signaturelen || !rval || !sval)
|
||||||
|
|
72
client/ui.c
72
client/ui.c
|
@ -16,6 +16,7 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <readline/readline.h>
|
#include <readline/readline.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
#include "util.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
@ -32,6 +33,77 @@ static char *logfilename = "proxmark3.log";
|
||||||
#ifndef EXTERNAL_PRINTANDLOG
|
#ifndef EXTERNAL_PRINTANDLOG
|
||||||
static pthread_mutex_t print_lock = PTHREAD_MUTEX_INITIALIZER;
|
static pthread_mutex_t print_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
|
||||||
|
void PrintAndLogEx(logLevel_t level, char *fmt, ...) {
|
||||||
|
|
||||||
|
// skip debug messages if client debugging is turned off i.e. 'DATA SETDEBUG 0'
|
||||||
|
// if (g_debugMode == 0 && level == DEBUG)
|
||||||
|
// return;
|
||||||
|
|
||||||
|
char buffer[MAX_PRINT_BUFFER] = {0};
|
||||||
|
char buffer2[MAX_PRINT_BUFFER] = {0};
|
||||||
|
char prefix[20] = {0};
|
||||||
|
char *token = NULL;
|
||||||
|
int size = 0;
|
||||||
|
// {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG}
|
||||||
|
static char *prefixes[7] = { "", "", "INFO: ", "FAILED: ", "WARNING: ", "ERROR: ", "#: "};
|
||||||
|
|
||||||
|
switch( level ) {
|
||||||
|
case FAILED:
|
||||||
|
strncpy(prefix,_RED_(FAILED: ), sizeof(prefix)-1);
|
||||||
|
break;
|
||||||
|
case DEBUG:
|
||||||
|
strncpy(prefix,_BLUE_(#: ), sizeof(prefix)-1);
|
||||||
|
break;
|
||||||
|
case SUCCESS:
|
||||||
|
strncpy(prefix,_GREEN_( ), sizeof(prefix)-1);
|
||||||
|
break;
|
||||||
|
case WARNING:
|
||||||
|
strncpy(prefix,_CYAN_(WARNING: ), sizeof(prefix)-1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
strncpy(prefix, prefixes[level], sizeof(prefix)-1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
va_list args;
|
||||||
|
va_start(args, fmt);
|
||||||
|
vsnprintf(buffer, sizeof(buffer), fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
// no prefixes for normal
|
||||||
|
if ( level == NORMAL ) {
|
||||||
|
PrintAndLog(buffer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strchr(buffer, '\n')) {
|
||||||
|
|
||||||
|
const char delim[2] = "\n";
|
||||||
|
|
||||||
|
// line starts with newline
|
||||||
|
if (buffer[0] == '\n')
|
||||||
|
PrintAndLog("");
|
||||||
|
|
||||||
|
token = strtok(buffer, delim);
|
||||||
|
|
||||||
|
while (token != NULL) {
|
||||||
|
|
||||||
|
size = strlen(buffer2);
|
||||||
|
|
||||||
|
if (strlen(token))
|
||||||
|
snprintf(buffer2+size, sizeof(buffer2)-size, "%s%s\n", prefix, token);
|
||||||
|
else
|
||||||
|
snprintf(buffer2+size, sizeof(buffer2)-size, "\n");
|
||||||
|
|
||||||
|
token = strtok(NULL, delim);
|
||||||
|
}
|
||||||
|
PrintAndLog(buffer2);
|
||||||
|
} else {
|
||||||
|
snprintf(buffer2, sizeof(buffer2), "%s%s", prefix, buffer);
|
||||||
|
PrintAndLog(buffer2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PrintAndLog(char *fmt, ...)
|
void PrintAndLog(char *fmt, ...)
|
||||||
{
|
{
|
||||||
char *saved_line;
|
char *saved_line;
|
||||||
|
|
|
@ -14,11 +14,15 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define MAX_PRINT_BUFFER 2048
|
||||||
|
typedef enum logLevel {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG} logLevel_t;
|
||||||
|
|
||||||
void ShowGui(void);
|
void ShowGui(void);
|
||||||
void HideGraphWindow(void);
|
void HideGraphWindow(void);
|
||||||
void ShowGraphWindow(void);
|
void ShowGraphWindow(void);
|
||||||
void RepaintGraphWindow(void);
|
void RepaintGraphWindow(void);
|
||||||
void PrintAndLog(char *fmt, ...);
|
void PrintAndLog(char *fmt, ...);
|
||||||
|
void PrintAndLogEx(logLevel_t level, char *fmt, ...);
|
||||||
void SetLogFilename(char *fn);
|
void SetLogFilename(char *fn);
|
||||||
void SetFlushAfterWrite(bool flush_after_write);
|
void SetFlushAfterWrite(bool flush_after_write);
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,46 @@
|
||||||
#define FILE_PATH_SIZE 2000
|
#define FILE_PATH_SIZE 2000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARRAYLEN
|
||||||
|
# define ARRAYLEN(x) (sizeof(x)/sizeof((x)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _BLUE_(s) "\x1b[34m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _BLUE_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _RED_(s) "\x1b[31m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _RED_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _GREEN_(s) "\x1b[32m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _GREEN_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _YELLOW_(s) "\x1b[33m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _YELLOW_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _MAGENTA_(s) "\x1b[35m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _MAGENTA_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) || (__APPLE__)
|
||||||
|
# define _CYAN_(s) "\x1b[36m" #s "\x1b[0m "
|
||||||
|
#else
|
||||||
|
# define _CYAN_(s) #s " "
|
||||||
|
#endif
|
||||||
|
|
||||||
extern int ukbhit(void);
|
extern int ukbhit(void);
|
||||||
|
|
||||||
extern void AddLogLine(char *fileName, char *extData, char *c);
|
extern void AddLogLine(char *fileName, char *extData, char *c);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue