jolly has uploaded this change for review.

View Change

examples/stream-*: Prevent signals from interrupting main loop

SIGHUP and SIGPIPE are signals that must not interrupt the main loop
if a socket is closed or fails.

Change-Id: Ida3858600f5c87ff559e75ddf9ac031b3a8592a9
---
M examples/stream-client.c
M examples/stream-server.c
2 files changed, 30 insertions(+), 2 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/25/35925/1
diff --git a/examples/stream-client.c b/examples/stream-client.c
index e42748f..f17a7d8 100644
--- a/examples/stream-client.c
+++ b/examples/stream-client.c
@@ -32,8 +32,11 @@

static struct osmo_stream_cli *conn;

-void sighandler(int foo)
+static void sighandler(int sigset)
{
+ if (sigset == SIGPIPE || sigset == SIGHUP)
+ return;
+
LOGP(DSTREAMTEST, LOGL_NOTICE, "closing stream.\n");
exit(EXIT_SUCCESS);
}
@@ -150,6 +153,11 @@

LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop\n");

+ signal(SIGINT, sighandler);
+ signal(SIGHUP, sighandler);
+ signal(SIGTERM, sighandler);
+ signal(SIGPIPE, sighandler);
+
while(1) {
osmo_select_main(0);
}
diff --git a/examples/stream-server.c b/examples/stream-server.c
index 9faf307..26dff95 100644
--- a/examples/stream-server.c
+++ b/examples/stream-server.c
@@ -36,8 +36,11 @@
static struct osmo_stream_srv *conn;


-void sighandler(int foo)
+static void sighandler(int sigset)
{
+ if (sigset == SIGPIPE || sigset == SIGHUP)
+ return;
+
LOGP(DSTREAMTEST, LOGL_NOTICE, "closing STREAMSERVER.\n");
exit(EXIT_SUCCESS);
}
@@ -166,6 +169,11 @@
osmo_fd_setup(kbd_ofd, STDIN_FILENO, OSMO_FD_READ, kbd_cb, srv, 0);
osmo_fd_register(kbd_ofd);

+ signal(SIGINT, sighandler);
+ signal(SIGHUP, sighandler);
+ signal(SIGTERM, sighandler);
+ signal(SIGPIPE, sighandler);
+
LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop on %s\n", osmo_stream_srv_link_get_sockname(srv));

while(1) {

To view, visit change 35925. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: Ida3858600f5c87ff559e75ddf9ac031b3a8592a9
Gerrit-Change-Number: 35925
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas@eversberg.eu>
Gerrit-MessageType: newchange