X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=stats.cpp;h=4e82d7f3395f206ed0b750d6b72980cf4c796d9a;hb=162161d07d8db58b69e74847e71012c775c4ecca;hp=71fb4852cef695693c1a91e70ef4a61c2f764cb1;hpb=4856c49f1b63753ce86ad759ee649a1117628a8e;p=cubemap diff --git a/stats.cpp b/stats.cpp index 71fb485..4e82d7f 100644 --- a/stats.cpp +++ b/stats.cpp @@ -1,12 +1,12 @@ +#include #include +#include #include #include #include #include #include #include -#include -#include #include #include "client.h" @@ -44,8 +44,12 @@ void StatsThread::do_work() fp = fdopen(fd, "w"); if (fp == NULL) { log_perror("fdopen"); - close(fd); - unlink(filename); + if (close(fd) == -1) { + log_perror("close"); + } + if (unlink(filename) == -1) { + log_perror(filename); + } free(filename); goto sleep; } @@ -53,8 +57,10 @@ void StatsThread::do_work() now = time(NULL); client_stats = servers->get_client_stats(); for (size_t i = 0; i < client_stats.size(); ++i) { - fprintf(fp, "%s %s %d %llu %llu %llu\n", + fprintf(fp, "%s %d %d %s %d %llu %llu %llu\n", client_stats[i].remote_addr.c_str(), + client_stats[i].sock, + client_stats[i].fwmark, client_stats[i].stream_id.c_str(), int(now - client_stats[i].connect_time), (long long unsigned)(client_stats[i].bytes_sent), @@ -63,15 +69,20 @@ void StatsThread::do_work() } if (fclose(fp) == EOF) { log_perror("fclose"); - unlink(filename); + if (unlink(filename) == -1) { + log_perror(filename); + } free(filename); goto sleep; } if (rename(filename, stats_file.c_str()) == -1) { - log_perror("rename"); + if (unlink(filename) == -1) { + log_perror(filename); + } unlink(filename); } + free(filename); sleep: // Wait until the stop_fd pipe is closed, stats_interval timeout,