X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bin%2Foverride.c;h=1eabda0135b5efa9edec3a727d3f349f68993794;hb=2eb05547c95e390ecab9f047beb7c4098f656ff2;hp=2f7606ba56367fc9964afced6a24a1f50c894700;hpb=4213a133fd1ef14fd9b62620412a45af091d73ae;p=vlc diff --git a/bin/override.c b/bin/override.c index 2f7606ba56..1eabda0135 100644 --- a/bin/override.c +++ b/bin/override.c @@ -147,4 +147,30 @@ int rand (void) } +/** Signals **/ +#include + +void (*signal (int signum, void (*handler) (int))) (int) +{ + if (override) + { + const char *msg = "Error"; + + if ((signum == SIGPIPE && handler == SIG_IGN) + || (signum != SIGPIPE && handler == SIG_DFL)) + /* Same settings we already use */ + msg = "Warning"; + LOG(msg, "%d, %p", signum, handler); + } + return CALL(signal, signum, handler); +} + +int sigaction (int signum, const struct sigaction *act, struct sigaction *old) +{ + if (act != NULL) + LOG("Error", "%d, %p, %p", signum, act, old); + return CALL(sigaction, signum, act, old); +} + + #endif /* __ELF__ */