summaryrefslogtreecommitdiff
path: root/src/master.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2014-12-07 13:16:08 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2014-12-07 13:16:08 +0100
commit9af266f6c4d44eb39754cc0e16cb7ca192addea0 (patch)
tree150c392c12ec33e8248a9751439b9fd4e15b70db /src/master.c
parentea248471703cc71bb1d57c0dc2b7914983cf0127 (diff)
downloadbiruda-9af266f6c4d44eb39754cc0e16cb7ca192addea0.tar.gz
biruda-9af266f6c4d44eb39754cc0e16cb7ca192addea0.tar.bz2
some better worker output reporting
Diffstat (limited to 'src/master.c')
-rw-r--r--src/master.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/master.c b/src/master.c
index fafbbbe..387fe5f 100644
--- a/src/master.c
+++ b/src/master.c
@@ -344,8 +344,12 @@ static int master_output_free( const char *name )
return 0;
}
-static int master_output_write( const char *spool_dir, const char *name, const char *msg )
+static int master_output_write( const char *spool_dir, json_object *obj )
{
+ json_object *worker_obj;
+ json_object_object_get_ex( obj, "worker", &worker_obj );
+ const char *name = json_object_get_string( worker_obj );
+
worker_t *w = worker_by_name( name );
if( w == NULL ) return 0;
@@ -356,8 +360,23 @@ static int master_output_write( const char *spool_dir, const char *name, const c
master_output_init( spool_dir, name );
if( wed->spool_file == NULL ) return 0;
}
+
+ json_object *msg_obj;
+ json_object_object_get_ex( obj, "msg", &msg_obj );
+ const char *msg = json_object_get_string( msg_obj );
+
+ json_object *stream_obj;
+ json_object_object_get_ex( obj, "stream", &stream_obj );
+ const char *stream = json_object_get_string( stream_obj );
+
+ json_object *ts_obj;
+ json_object_object_get_ex( obj, "timestamp", &ts_obj );
+ time_t ts = json_object_get_int( ts_obj );
- fputs( msg, wed->spool_file );
+ char line[1024];
+ snprintf( line, sizeof( line ), "%lu %s %s %s", ts, name, stream, msg );
+
+ fputs( line, wed->spool_file );
fflush( wed->spool_file );
return 0;
@@ -478,13 +497,7 @@ NEXT_COMMAND:
const char *worker = json_object_get_string( worker_obj );
master_output_free( worker );
} else if( strcmp( op, "output" ) == 0 ) {
- json_object *worker_obj;
- json_object_object_get_ex( recv_obj, "worker", &worker_obj );
- const char *worker = json_object_get_string( worker_obj );
- json_object *msg_obj;
- json_object_object_get_ex( recv_obj, "msg", &msg_obj );
- const char *msg = json_object_get_string( msg_obj );
- master_output_write( tdata->spool_dir, worker, msg );
+ master_output_write( tdata->spool_dir, recv_obj );
} else {
fprintf( stderr, "WARNING: master received unkown message: %s\n", answer );
}