diff --git a/.gitignore b/.gitignore
index e5f191c..55af06b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,6 @@
/publisher
/client
-# Logs
-/logs
\ No newline at end of file
+# Caches
+/logs
+/cdata
\ No newline at end of file
diff --git a/Makefile b/Makefile
index a4f0315..a18b2fe 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ all: publisher client logger
publisher: src/publisher.c src/utils.c
$(CC) -lzmq $^ -o $@
-client: src/client.c
+client: src/client.c src/utils.c
$(CC) -lzmq $^ -o $@
logger: src/logger.c src/utils.c
diff --git a/src/client.c b/src/client.c
index cd01232..fc62359 100644
--- a/src/client.c
+++ b/src/client.c
@@ -10,14 +10,18 @@
int main (int argc, char *argv [])
{
- if(argc != 3){
- printf("Usage: %s
",argv[0]);
+ if(argc != 4){
+ printf("Usage: %s ",argv[0]);
exit(1);
}
//----- Arguments
char *ip=argv[1];
int port=atoi(argv[2]);
+ char *cdatadir=argv[3];
+
+ //----- Various inits
+ mkdirp(cdatadir);
//----- Init ZMQ
void *context = zmq_ctx_new ();
@@ -38,7 +42,36 @@ int main (int argc, char *argv [])
while(1){
size=zmq_recv (subscriber, buffer, ZMQ_MSG_SIZE-1, 0);
buffer[size < ZMQ_MSG_SIZE ? size : ZMQ_MSG_SIZE - 1] = '\0';
- printf("Received: %s\n",buffer);
+ //----- Read buffer
+ char *token = strtok(buffer, "\n");
+ char key[255];
+ char client[255];
+ long int interval;
+ FILE *fptr;
+ int line=1;
+ while(token != NULL){
+ if(line==2)
+ strcpy(key,token);
+ else if(line==3)
+ strcpy(client,token);
+ else if(line==4)
+ interval=atoi(token);
+
+ if(line==4){
+ char path[255]="";
+ sprintf(path,"%s/%s_%s_%ld",cdatadir,key,client,interval);
+ fptr=fopen(path,"a");
+ }
+
+ if(line>4){
+ fwrite(token, strlen(token), 1, fptr);
+ fwrite("\n",2,1,fptr);
+ }
+
+ token=strtok(NULL, "\n");
+ line++;
+ }
+ fclose(fptr);
}
diff --git a/src/publisher.c b/src/publisher.c
index a42b41b..f4bb86d 100644
--- a/src/publisher.c
+++ b/src/publisher.c
@@ -79,7 +79,7 @@ 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\n",ZMQ_TOKEN,__key,interval);
+ sprintf(buffer,"%s\n%s\n%s\n%ld\n",ZMQ_TOKEN,__key,client,interval);
int msglen=strlen(buffer);
FILE *fptr;
@@ -93,7 +93,7 @@ void publish(void *publisher, char *filepath, char* client, long int interval){
msglen+=read;
} else {
zmq_send (publisher, buffer, ZMQ_MSG_SIZE, 0);
- sprintf(buffer,"%s\n%s\n%ld\n",ZMQ_TOKEN,__key,interval);
+ sprintf(buffer,"%s\n%s\n%s\n%ld\n",ZMQ_TOKEN,__key,client,interval);
strcat(buffer,line);
msglen=strlen(buffer);
}