On 2015-01-26 21:12, Rafał Miłecki wrote: > Most app don't want to crash because of unhandled SIGPIPE. It could > happen is such trivial situations like writing to socket. > > Signed-off-by: Rafał Miłecki <[email protected]> > --- > V2: Replace signal call with sigaction > --- > uloop.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/uloop.c b/uloop.c > index 9a77ce4..baaef8d 100644 > --- a/uloop.c > +++ b/uloop.c > @@ -582,6 +582,27 @@ static void uloop_install_handler(int signum, void > (*handler)(int), struct sigac > sigaction(signum, act, NULL); > } > > +static void uloop_ignore_signal(int signum, bool ignore) > +{ > + struct sigaction s; > + > + sigaction(signum, NULL, &s); > + > + if (ignore) { > + if (s.sa_handler == SIG_DFL) { /* Ignore only if there isn't > any custom handler */ > + s.sa_handler = SIG_IGN; > + s.sa_flags = 0; > + sigaction(signum, &s, NULL); > + } > + } else { > + if (s.sa_handler == SIG_IGN) { /* Restore only if noone > modified our SIG_IGN */ > + s.sa_handler = SIG_DFL; > + s.sa_flags = 0; > + sigaction(signum, &s, NULL); > + } > + } > +} Please reduce code duplication as well (setting sa_flags and calling sigaction)
- Felix _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
