diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-08-29 17:58:08 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-08-29 18:02:15 +0200 |
commit | 170aef20bc3a59d5139c2eff8794d9ba4c83a2e5 (patch) | |
tree | 8354a7496e390e03e6fbdd0e6e663c4228326cb7 /src/verbose.c | |
parent | 6d8d9dc5aad148a74bcdf8965bee9f7058a08166 (diff) |
hooking: Add hook at global scope
Actually the global scope only allows to trace
log messages.
Change-Id: Ib73edf2e3168311b2ad694d857e6647e34884313
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/verbose.c')
-rw-r--r-- | src/verbose.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/verbose.c b/src/verbose.c index 2d60dfca..e0e38248 100644 --- a/src/verbose.c +++ b/src/verbose.c @@ -132,12 +132,16 @@ void verbose(int loglevel, const char *file, int line, const char *function, con void vverbose(int loglevel, const char *file, int line, const char *function, const char *fmt, va_list args) { - if (verbose_observer) { + void (*observer)(int loglevel, const char *file, int line, const char *function, const char *fmt, va_list args) = verbose_observer; + + if (!observer) + _vverbose_(loglevel, file, line, function, fmt, args); + else { va_list ap; va_copy(ap, args); - verbose_observer(loglevel, file, line, function, fmt, ap); + _vverbose_(loglevel, file, line, function, fmt, args); + observer(loglevel, file, line, function, fmt, ap); va_end(ap); } - _vverbose_(loglevel, file, line, function, fmt, args); } |