+#include <errno.h>
#include <fcntl.h>
+#include <poll.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
-#include <sys/poll.h>
-#include <errno.h>
#include <vector>
#include "client.h"
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;
}
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),
}
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");
- unlink(filename);
+ if (unlink(filename) == -1) {
+ log_perror(filename);
+ }
}
+ free(filename);
sleep:
// Wait until the stop_fd pipe is closed, stats_interval timeout,