From 9f4eb5b6b8f539d0220652fbbdfc9cf479e0f938 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sat, 15 Jul 2023 22:06:22 +0200 Subject: [PATCH] Minor changes --- src/publisher.c | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/publisher.c b/src/publisher.c index bb02c68..cbf2a30 100644 --- a/src/publisher.c +++ b/src/publisher.c @@ -17,7 +17,6 @@ void publish(void *publisher, char *filepath, char* client, long int interval); int main (int argc, char *argv []) { - printf("%s\n",ZMQ_TOKEN); if(argc != 6){ printf("Usage: %s ",argv[0]); exit(1); @@ -37,7 +36,7 @@ int main (int argc, char *argv []) sprintf(bindto,"tcp://%s:%d",__ip,__port); int rc = zmq_connect (publisher, bindto); if(rc!=0){ - printf("Failed to bind zmq on %s\n",bindto); + printf("Failed to connect to %s\n",bindto); exit(1); } @@ -47,27 +46,32 @@ int main (int argc, char *argv []) int interval=INTERVAL(__loginterval); int interval_next=INTERVAL_NEXT(__loginterval); DIR *dr = opendir(__logdir); - while ((de = readdir(dr)) != NULL){ - if(strcmp(de->d_name,".") && strcmp(de->d_name,"..")){ - char *client=de->d_name; - char logfile[255]; - char logfile_next[255]; - sprintf(logfile,"%s/%s/%ld",__logdir,client,interval); - sprintf(logfile_next,"%s/%s/%ld",__logdir,client,interval_next); - // As long as next logfile is not available, we should wait - // for sending the current one - printf("Waiting for %s...%s\n",client,logfile_next); - while(!FILE_EXISTS(logfile_next)){ - sleep(1); - } - // Send current one - if(FILE_EXISTS(logfile)){ - publish(publisher,logfile,client,interval); - remove(logfile); + if(dr !=NULL){ + while ((de = readdir(dr)) != NULL){ + if(strcmp(de->d_name,".") && strcmp(de->d_name,"..")){ + char *client=de->d_name; + char logfile[255]; + char logfile_next[255]; + sprintf(logfile,"%s/%s/%ld",__logdir,client,interval); + sprintf(logfile_next,"%s/%s/%ld",__logdir,client,interval_next); + // As long as next logfile is not available, we should wait + // for sending the current one + printf("Waiting for %s logger measurements...\n",client); + while(!FILE_EXISTS(logfile_next)){ + sleep(1); + } + // Send current one + if(FILE_EXISTS(logfile)){ + publish(publisher,logfile,client,interval); + remove(logfile); + } } } + closedir(dr); + } + else { + sleep(1); } - closedir(dr); } zmq_close (publisher); @@ -77,7 +81,7 @@ int main (int argc, char *argv []) } void publish(void *publisher, char *filepath, char* client, long int interval){ - printf("Publish!\n"); + printf("Publishing %s measurements\n",client); char buffer[ZMQ_MSG_SIZE]; sprintf(buffer,"%s\n%s\n%s\n%ld\n",ZMQ_TOKEN,__key,client,interval); int msglen=strlen(buffer);