diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2014-12-07 13:16:08 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2014-12-07 13:16:08 +0100 |
commit | 9af266f6c4d44eb39754cc0e16cb7ca192addea0 (patch) | |
tree | 150c392c12ec33e8248a9751439b9fd4e15b70db /src/master.c | |
parent | ea248471703cc71bb1d57c0dc2b7914983cf0127 (diff) | |
download | biruda-9af266f6c4d44eb39754cc0e16cb7ca192addea0.tar.gz biruda-9af266f6c4d44eb39754cc0e16cb7ca192addea0.tar.bz2 |
some better worker output reporting
Diffstat (limited to 'src/master.c')
-rw-r--r-- | src/master.c | 31 |
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 ); } |