]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
API to dump stats to a log
authorAlan T. DeKok <aland@freeradius.org>
Tue, 17 Dec 2019 14:17:41 +0000 (09:17 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 17 Dec 2019 14:52:32 +0000 (09:52 -0500)
src/lib/io/network.c
src/lib/io/network.h

index 25a8f6108a2ca94c9d1983d42183ab291d0136fb..c26debd01d907a72f02faca0b6d8bbdc9c364edb 100644 (file)
@@ -1461,6 +1461,20 @@ int fr_network_stats(fr_network_t const *nr, int num, uint64_t *stats)
        return 5;
 }
 
+void fr_network_stats_log(fr_network_t const *nr, fr_log_t const *log)
+{
+       int i;
+
+       /*
+        *      Dump all of the channel statistics.
+        */
+       for (i = 0; i < nr->max_workers; i++) {
+               if (!nr->workers[i]) continue;
+
+               fr_channel_stats_log(nr->workers[i]->channel, log, __FILE__, __LINE__);
+       }
+}
+
 static int cmd_stats_self(FILE *fp, UNUSED FILE *fp_err, void *ctx, UNUSED fr_cmd_info_t const *info)
 {
        fr_network_t const *nr = ctx;
index 6c9652de47cef36074fd7e839a3f5d3a1e8a0e37..ed6616359e2a8c46bdc1aec8aaf0d7d518051656 100644 (file)
@@ -54,6 +54,8 @@ int fr_network_worker_add(fr_network_t *nr, fr_worker_t *worker) CC_HINT(nonnull
 void fr_network_listen_read(fr_network_t *nr, fr_listen_t *li) CC_HINT(nonnull);
 int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *li, uint8_t const *packet, size_t packet_len, fr_time_t recv_time);
 int fr_network_stats(fr_network_t const *nr, int num, uint64_t *stats) CC_HINT(nonnull);
+void fr_network_stats_log(fr_network_t const *nr, fr_log_t const *log) CC_HINT(nonnull);
+
 extern fr_cmd_table_t cmd_network_table[];
 
 #ifdef __cplusplus