summaryrefslogtreecommitdiff
path: root/src/subscriber.c
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2023-07-16 14:50:53 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2023-07-16 14:50:53 +0200
commit33c54437949aaefacc3326a1c2d577db072cbacd (patch)
tree985241d4701cf57a8c7912a3a97ebe3bf1acc00d /src/subscriber.c
parente0fdde7cd04550e6a13aa626d2ef6517bf6e5608 (diff)
Minor changes
Diffstat (limited to 'src/subscriber.c')
-rw-r--r--src/subscriber.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/subscriber.c b/src/subscriber.c
index 2f8dd2a..27c9441 100644
--- a/src/subscriber.c
+++ b/src/subscriber.c
@@ -2,9 +2,17 @@
#include <assert.h>
#include <time.h>
#include <string.h>
-
+#include <signal.h>
#include "utils.h"
+unsigned char __stop=0;
+void sighandler(int signo){
+ if (signo == SIGINT){
+ printf("Stopping...\n");
+ __stop=1;
+ }
+}
+
int main (int argc, char *argv [])
{
if(argc != 3){
@@ -18,6 +26,7 @@ int main (int argc, char *argv [])
//----- Various inits
mkdirp(cdatadir);
+ signal(SIGINT,sighandler);
//----- Init ZMQ
void *context = zmq_ctx_new ();
@@ -35,8 +44,10 @@ int main (int argc, char *argv [])
//----- Listen
char buffer[ZMQ_MSG_SIZE];
int size;
- while(1){
+ while(!__stop){
size=zmq_recv (subscriber, buffer, ZMQ_MSG_SIZE-1, 0);
+ if(size<=0)
+ continue;
buffer[size < ZMQ_MSG_SIZE ? size : ZMQ_MSG_SIZE - 1] = '\0';
//----- Read buffer
char *token = strtok(buffer, "\n");