std::cout.flush();\r
}\r
\r
+#define SAMPLING_TIME 5\r
+\r
+static char const* time_now_string()\r
+{\r
+ time_t t = std::time(0);\r
+ static char str[200];\r
+\r
+ tm* timeinfo = std::localtime(&t);\r
+ std::strftime(str, 200, "%b %d %X", timeinfo);\r
+ return str;\r
+}\r
+\r
+static time_t time_now_seconds()\r
+{\r
+ time_t t = std::time(0);\r
+\r
+ return t;\r
+}\r
+\r
void*\r
CCore::StatusLoop(void* data)\r
{\r
if(Settings->GetI("dht") > 0) \r
output << ", dht: " << sstatus.dht_nodes;\r
output << " <> ";\r
- output << "dl: " << Round(sstatus.download_rate/1024, 2) << "kb/s, ";\r
- output << "ul: " << Round(sstatus.upload_rate/1024, 2) << "kb/s <> ";\r
+ output << "dl: " << Round(sstatus.download_rate/1024.0, 2) << "kb/s, ";\r
+ output << "ul: " << Round(sstatus.upload_rate/1024.0, 2) << "kb/s <> ";\r
output << "dld: " << tstatus.total_done/1048576 << "mb, ";\r
output << "uld: " << sstatus.total_payload_upload/1048576 << "mb, ";\r
output << "size: " << tstatus.total_wanted/1048576 << "mb <> ";\r
PrintStatusStream(output, columns, stdout_is_tty);\r
output.str("");\r
\r
- output << "--Peers: ";\r
+ /* print peer information each SAMPLING_TIME seconds */\r
+ loopcount++;\r
+ if (time_now_seconds() % SAMPLING_TIME != 0) {\r
+ sleep(1);\r
+ continue;\r
+ }\r
\r
/* build peer status message */\r
+ output << "--Peers: (" << time_now_string() << ") ";\r
+\r
t->get_peer_info(peers);\r
\r
std::vector<libtorrent::peer_info>::iterator it = peers.begin();\r
while (it != peers.end()) {\r
output << "[ ip: " << it->ip;\r
- output << ", dl: " << Round(it->down_speed/1024, 2);\r
- output << ", ul: " << Round(it->up_speed/1024, 2);\r
+ output << ", dl: " << Round(it->down_speed/1024.0, 2) << "kb/s";\r
+ output << ", ul: " << Round(it->up_speed/1024.0, 2) << "kb/s";\r
output << " ]";\r
it++;\r
}\r
output.str("");\r
\r
sleep(1);\r
- loopcount++;\r
}\r
\r
return 0;\r