X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=accesslog.cpp;h=03aeec8a51fb284884410418c1c9eef901cfd725;hp=7dfadff5bbd5923a0ef74ac1566b32c506a80f3c;hb=71fc5575037bead8b6e927a1fffd199e4fc4514b;hpb=eb0dea72c24b4791f73fdf04a19a0fb47a29926a diff --git a/accesslog.cpp b/accesslog.cpp index 7dfadff..03aeec8 100644 --- a/accesslog.cpp +++ b/accesslog.cpp @@ -1,9 +1,9 @@ +#include +#include +#include #include +#include #include -#include -#include - -#include #include #include @@ -51,23 +51,21 @@ void AccessLogThread::do_work() swap(pending_writes, writes); } - if (logfp == NULL) { - continue; + if (logfp != NULL) { + // Do the actual writes. + time_t now = time(NULL); + for (size_t i = 0; i < writes.size(); ++i) { + fprintf(logfp, "%llu %s %s %d %llu %llu %llu\n", + (long long unsigned)(writes[i].connect_time), + writes[i].remote_addr.c_str(), + writes[i].stream_id.c_str(), + int(now - writes[i].connect_time), + (long long unsigned)(writes[i].bytes_sent), + (long long unsigned)(writes[i].bytes_lost), + (long long unsigned)(writes[i].num_loss_events)); + } + fflush(logfp); } - - // Do the actual writes. - time_t now = time(NULL); - for (size_t i = 0; i < writes.size(); ++i) { - fprintf(logfp, "%llu %s %s %d %llu %llu %llu\n", - (long long unsigned)(writes[i].connect_time), - writes[i].remote_addr.c_str(), - writes[i].stream_id.c_str(), - int(now - writes[i].connect_time), - (long long unsigned)(writes[i].bytes_sent), - (long long unsigned)(writes[i].bytes_lost), - (long long unsigned)(writes[i].num_loss_events)); - } - fflush(logfp); // Wait until the stop_fd pipe is closed, one second has passed. // or a spurious signal arrives. @@ -89,9 +87,11 @@ void AccessLogThread::do_work() continue; } } - - if (fclose(logfp) == EOF) { - log_perror("fclose"); + + if (logfp != NULL) { + if (fclose(logfp) == EOF) { + log_perror("fclose"); + } } logfp = NULL;