diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-07-15 14:58:40 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-07-15 14:58:40 +0200 |
| commit | 0c0a6ebf44d5e9b4c0a99b3d9b353a522439dd49 (patch) | |
| tree | 315b2486f3d5dbaf1cb17c6251cf9146fe2daa75 /src/publisher.c | |
| parent | 3440874807ea71ee599e5199eb40f24be3dcc9ac (diff) | |
Minor changes
Diffstat (limited to 'src/publisher.c')
| -rw-r--r-- | src/publisher.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/publisher.c b/src/publisher.c index c9f702e..a42b41b 100644 --- a/src/publisher.c +++ b/src/publisher.c @@ -79,7 +79,25 @@ int main (int argc, char *argv []) void publish(void *publisher, char *filepath, char* client, long int interval){ printf("Publish!\n"); char buffer[ZMQ_MSG_SIZE]; - sprintf(buffer,"%s\n%s\n%ld",ZMQ_TOKEN,__key,interval); - // TODO: Send every lines of the file + sprintf(buffer,"%s\n%s\n%ld\n",ZMQ_TOKEN,__key,interval); + int msglen=strlen(buffer); + + FILE *fptr; + char * line = NULL; + size_t len = 0; + ssize_t read; + fptr=fopen(filepath,"r"); + while ((read = getline(&line, &len, fptr)) != -1) { + if((read+msglen) <ZMQ_MSG_SIZE){ + strcat(buffer,line); + msglen+=read; + } else { + zmq_send (publisher, buffer, ZMQ_MSG_SIZE, 0); + sprintf(buffer,"%s\n%s\n%ld\n",ZMQ_TOKEN,__key,interval); + strcat(buffer,line); + msglen=strlen(buffer); + } + } + fclose(fptr); zmq_send (publisher, buffer, ZMQ_MSG_SIZE, 0); }
\ No newline at end of file |
