Change the connected time from time_t to timespec.
[cubemap] / accesslog.cpp
index 9cd5be0..4414650 100644 (file)
@@ -53,18 +53,22 @@ void AccessLogThread::do_work()
 
                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].url.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));
+                       timespec now;
+                       if (clock_gettime(CLOCK_MONOTONIC_COARSE, &now) == -1) {
+                               log_perror("clock_gettime(CLOCK_MONOTONIC_COARSE)");
+                       } else {
+                               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.tv_sec),
+                                               writes[i].remote_addr.c_str(),
+                                               writes[i].url.c_str(),
+                                               int(now.tv_sec - writes[i].connect_time.tv_sec),  // Rather coarse.
+                                               (long long unsigned)(writes[i].bytes_sent),
+                                               (long long unsigned)(writes[i].bytes_lost),
+                                               (long long unsigned)(writes[i].num_loss_events));
+                               }
+                               fflush(logfp);
                        }
-                       fflush(logfp);
                }
 
                // Wait until we are being woken up, either to quit or because