summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2014-07-14 18:43:28 (GMT)
committerNirbheek Chauhan <nirbheek@centricular.com>2014-07-14 18:43:28 (GMT)
commit4ebd3a09a6979bc568459aea842f09d12f4ad4f2 (patch)
tree50c58a9559a4083172e25e2daab0530b518e45ca
parent2d94a4b759ec2fc6290f601b10109f6625eeab7b (diff)
downloadsoup-transcoding-proxy-4ebd3a09a6979bc568459aea842f09d12f4ad4f2.zip
soup-transcoding-proxy-4ebd3a09a6979bc568459aea842f09d12f4ad4f2.tar.gz
main: Add SIGINT handler
-rw-r--r--src/lib.c7
-rw-r--r--src/main.c10
2 files changed, 14 insertions, 3 deletions
diff --git a/src/lib.c b/src/lib.c
index 5816b4e..bb076f6 100644
--- a/src/lib.c
+++ b/src/lib.c
@@ -59,9 +59,10 @@ stp_on_gst_bus_message (GstBus *bus,
return TRUE;
}
-gboolean stp_unref_gst_buffer (GstBuffer **buffer,
- guint idx,
- gpointer user_data)
+gboolean
+stp_unref_gst_buffer (GstBuffer **buffer,
+ guint idx,
+ gpointer user_data)
{
gst_buffer_unref (*buffer);
*buffer = NULL;
diff --git a/src/main.c b/src/main.c
index 2beca56..6e61c3e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -20,6 +20,8 @@
* Boston, MA 02110-1301, USA.
*/
+#include <glib-unix.h>
+
#include "lib.h"
#include "encode.h"
@@ -701,6 +703,13 @@ GET:
}
}
+gboolean
+exit_on_signal_cb (SoupServer *server)
+{
+ soup_server_quit (server);
+ return G_SOURCE_REMOVE;
+}
+
int
main (int argc,
char *argv[])
@@ -740,6 +749,7 @@ main (int argc,
G_CALLBACK (request_finished_cb), ctx_table);
g_signal_connect (server, "request-aborted",
G_CALLBACK (request_aborted_cb), ctx_table);
+ g_unix_signal_add (SIGINT, (GSourceFunc)exit_on_signal_cb, server);
soup_server_run (server);
return 0;