1 #define MODULE_LOG_PREFIX "reader"
6 #include "oscam-log-reader.h"
7 #include "oscam-reader.h"
8 #include "oscam-string.h"
10 extern int log_remove_sensitive
;
12 static char *debug_mask_txt(int mask
)
33 static const char *reader_desc_txt(struct s_reader
*reader
)
35 if(reader
->csystem
&& reader
->csystem
->desc
)
36 { return reader
->csystem
->desc
; }
37 else if(reader
->crdr
&& reader
->crdr
->desc
)
38 { return reader
->crdr
->desc
; }
39 else if(reader
->ph
.desc
)
40 { return reader
->ph
.desc
; }
42 { return reader_get_type_desc(reader
, 1); }
45 static char *format_sensitive(char *result
, int remove_sensitive
)
47 // Filter sensitive information
48 int i
, n
= cs_strlen(result
), p
= 0;
52 for(i
= 0; i
< n
; i
++)
70 // Filter sensitive markers
71 for(i
= 0; i
< n
; i
++)
73 if(result
[i
] == '{' || result
[i
] == '}')
76 result
[p
++] = result
[i
];
82 void rdr_log(struct s_reader
*reader
, char *fmt
, ...)
87 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
89 cs_log("%s [%s] %s", reader
->label
, reader_desc_txt(reader
), txt
);
92 void rdr_log_sensitive(struct s_reader
*reader
, char *fmt
, ...)
97 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
99 format_sensitive(txt
, log_remove_sensitive
);
100 rdr_log(reader
, "%s", txt
);
103 void rdr_log_dbg(struct s_reader
*reader
, uint16_t mask
, char *fmt
, ...)
105 if(config_enabled(WITH_DEBUG
))
110 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
112 cs_log_dbg(mask
, "%s [%s] %s%s", reader
->label
, reader_desc_txt(reader
), debug_mask_txt(mask
), txt
);
116 void rdr_log_dbg_sensitive(struct s_reader
*reader
, uint16_t mask
, char *fmt
, ...)
118 if(config_enabled(WITH_DEBUG
))
123 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
125 format_sensitive(txt
, log_remove_sensitive
);
126 rdr_log_dbg(reader
, mask
, "%s", txt
);
130 void rdr_log_dump(struct s_reader
*reader
, const uint8_t *buf
, int n
, char *fmt
, ...)
135 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
137 cs_log_dump(buf
, n
, "%s [%s] %s", reader
->label
, reader_desc_txt(reader
), txt
);
140 void rdr_log_dump_dbg(struct s_reader
*reader
, uint16_t mask
, const uint8_t *buf
, int n
, char *fmt
, ...)
142 if(config_enabled(WITH_DEBUG
))
147 vsnprintf(txt
, sizeof(txt
), fmt
, args
);
149 cs_log_dump_dbg(mask
, buf
, n
, "%s [%s] %s%s", reader
->label
, reader_desc_txt(reader
), debug_mask_txt(mask
), txt
);