summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2019-07-15 16:30:34 -0500
committerAdam Ierymenko <adam.ierymenko@gmail.com>2019-07-15 16:30:34 -0500
commit90872c906fa0f415804873bb7388fea417e4252c (patch)
tree2f94adb22b7cd4efe22b40a42d7534ac2db27d3e /controller
parentbdc2ec1f5e2074c067ce225352de3e0dd92b1356 (diff)
downloadinfinitytier-90872c906fa0f415804873bb7388fea417e4252c.tar.gz
infinitytier-90872c906fa0f415804873bb7388fea417e4252c.zip
Fix FileDB stuff and latency measurement.
Diffstat (limited to 'controller')
-rw-r--r--controller/FileDB.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/controller/FileDB.cpp b/controller/FileDB.cpp
index 917784ba..64c305bb 100644
--- a/controller/FileDB.cpp
+++ b/controller/FileDB.cpp
@@ -86,25 +86,26 @@ FileDB::FileDB(EmbeddedNetworkController *const nc,const Identity &myId,const ch
FILE *f = fopen(p,"wb");
if (f) {
fprintf(f,"{");
- char *memberPrefix = "";
+ const char *memberPrefix = "";
for(auto m=nw->second.begin();m!=nw->second.end();++m) {
fprintf(f,"%s\"%.10llx\":{" ZT_EOL_S,memberPrefix,(unsigned long long)m->first);
memberPrefix = ",";
InetAddress lastAddr;
- char *timestampPrefix = " ";
+ const char *timestampPrefix = " ";
int cnt = 0;
- for(auto ts=m->second.rbegin();ts!=m->second.rend();++ts) {
+ for(auto ts=m->second.rbegin();ts!=m->second.rend();) {
if (cnt < 25) {
if (lastAddr != ts->second) {
lastAddr = ts->second;
fprintf(f,"%s\"%lld\":\"%s\"" ZT_EOL_S,timestampPrefix,(long long)ts->first,ts->second.toString(atmp));
timestampPrefix = ",";
++cnt;
+ ++ts;
} else {
- m->second.erase(ts.base()); // erase previous entries for same IP/port
+ ts = std::map<int64_t,InetAddress>::reverse_iterator(m->second.erase(std::next(ts).base()));
}
} else {
- m->second.erase(ts.base()); // erase entries beyond the 25 max written to log
+ ts = std::map<int64_t,InetAddress>::reverse_iterator(m->second.erase(std::next(ts).base()));
}
}
fprintf(f,"}");