diff --git a/src/source.c b/src/source.c index 1b463ef1..375c9ef1 100644 --- a/src/source.c +++ b/src/source.c @@ -656,6 +656,7 @@ static void source_init (source_t *source) stats_event_args (source->mount, "listeners", "%lu", source->listeners); stats_event_args (source->mount, "listener_peak", "%lu", source->peak_listeners); stats_event_time (source->mount, "stream_start"); + stats_event_time_iso8601 (source->mount, "stream_start_iso8601"); DEBUG0("Source creation complete"); source->last_read = time (NULL); diff --git a/src/stats.c b/src/stats.c index 3ca8da63..3ad59c8a 100644 --- a/src/stats.c +++ b/src/stats.c @@ -597,6 +597,18 @@ void stats_event_time (const char *mount, const char *name) } +void stats_event_time_iso8601 (const char *mount, const char *name) +{ + time_t now = time(NULL); + struct tm local; + char buffer[100]; + + localtime_r (&now, &local); + strftime (buffer, sizeof (buffer), "%FT%T%z", &local); + stats_event (mount, name, buffer); +} + + void stats_global (ice_config_t *config) { stats_event (NULL, "server_id", config->server_id); @@ -613,6 +625,7 @@ static void *_stats_thread(void *arg) event_listener_t *listener; stats_event_time (NULL, "server_start"); + stats_event_time_iso8601 (NULL, "server_start_iso8601"); /* global currently active stats */ stats_event (NULL, "clients", "0"); diff --git a/src/stats.h b/src/stats.h index 3e3efb2d..833fc159 100644 --- a/src/stats.h +++ b/src/stats.h @@ -89,6 +89,7 @@ void stats_event_sub(const char *source, const char *name, unsigned long value); void stats_event_dec(const char *source, const char *name); void stats_event_hidden (const char *source, const char *name, int hidden); void stats_event_time (const char *mount, const char *name); +void stats_event_time_iso8601 (const char *mount, const char *name); void *stats_connection(void *arg); void stats_callback (client_t *client, void *notused);