commit
915ce6317f
3 changed files with 20 additions and 5 deletions
6
db.cpp
6
db.cpp
|
@ -11,7 +11,11 @@ void CAddrInfo::Update(bool good) {
|
||||||
lastTry = now;
|
lastTry = now;
|
||||||
ourLastTry = now;
|
ourLastTry = now;
|
||||||
total++;
|
total++;
|
||||||
if (good) success++;
|
if (good)
|
||||||
|
{
|
||||||
|
success++;
|
||||||
|
ourLastSuccess = now;
|
||||||
|
}
|
||||||
stat2H.Update(good, age, 3600*2);
|
stat2H.Update(good, age, 3600*2);
|
||||||
stat8H.Update(good, age, 3600*8);
|
stat8H.Update(good, age, 3600*8);
|
||||||
stat1D.Update(good, age, 3600*24);
|
stat1D.Update(good, age, 3600*24);
|
||||||
|
|
13
db.h
13
db.h
|
@ -52,6 +52,9 @@ public:
|
||||||
int blocks;
|
int blocks;
|
||||||
double uptime[5];
|
double uptime[5];
|
||||||
std::string clientSubVersion;
|
std::string clientSubVersion;
|
||||||
|
int64_t lastSuccess;
|
||||||
|
bool fGood;
|
||||||
|
uint64_t services;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +64,7 @@ private:
|
||||||
uint64_t services;
|
uint64_t services;
|
||||||
int64 lastTry;
|
int64 lastTry;
|
||||||
int64 ourLastTry;
|
int64 ourLastTry;
|
||||||
|
int64 ourLastSuccess;
|
||||||
int64 ignoreTill;
|
int64 ignoreTill;
|
||||||
CAddrStat stat2H;
|
CAddrStat stat2H;
|
||||||
CAddrStat stat8H;
|
CAddrStat stat8H;
|
||||||
|
@ -73,7 +77,7 @@ private:
|
||||||
int success;
|
int success;
|
||||||
std::string clientSubVersion;
|
std::string clientSubVersion;
|
||||||
public:
|
public:
|
||||||
CAddrInfo() : services(0), lastTry(0), ourLastTry(0), ignoreTill(0), clientVersion(0), blocks(0), total(0), success(0) {}
|
CAddrInfo() : services(0), lastTry(0), ourLastTry(0), ourLastSuccess(0), ignoreTill(0), clientVersion(0), blocks(0), total(0), success(0) {}
|
||||||
|
|
||||||
CAddrReport GetReport() const {
|
CAddrReport GetReport() const {
|
||||||
CAddrReport ret;
|
CAddrReport ret;
|
||||||
|
@ -86,6 +90,9 @@ public:
|
||||||
ret.uptime[2] = stat1D.reliability;
|
ret.uptime[2] = stat1D.reliability;
|
||||||
ret.uptime[3] = stat1W.reliability;
|
ret.uptime[3] = stat1W.reliability;
|
||||||
ret.uptime[4] = stat1M.reliability;
|
ret.uptime[4] = stat1M.reliability;
|
||||||
|
ret.lastSuccess = ourLastSuccess;
|
||||||
|
ret.fGood = IsGood();
|
||||||
|
ret.services = services;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +133,7 @@ public:
|
||||||
friend class CAddrDb;
|
friend class CAddrDb;
|
||||||
|
|
||||||
IMPLEMENT_SERIALIZE (
|
IMPLEMENT_SERIALIZE (
|
||||||
unsigned char version = 3;
|
unsigned char version = 4;
|
||||||
READWRITE(version);
|
READWRITE(version);
|
||||||
READWRITE(ip);
|
READWRITE(ip);
|
||||||
READWRITE(services);
|
READWRITE(services);
|
||||||
|
@ -152,6 +159,8 @@ public:
|
||||||
READWRITE(clientSubVersion);
|
READWRITE(clientSubVersion);
|
||||||
if (version >= 3)
|
if (version >= 3)
|
||||||
READWRITE(blocks);
|
READWRITE(blocks);
|
||||||
|
if (version >= 4)
|
||||||
|
READWRITE(ourLastSuccess);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
6
main.cpp
6
main.cpp
|
@ -1,5 +1,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#define __STDC_FORMAT_MACROS
|
||||||
|
#include <inttypes.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -284,11 +286,11 @@ extern "C" void* ThreadDumper(void*) {
|
||||||
rename("dnsseed.dat.new", "dnsseed.dat");
|
rename("dnsseed.dat.new", "dnsseed.dat");
|
||||||
}
|
}
|
||||||
FILE *d = fopen("dnsseed.dump", "w");
|
FILE *d = fopen("dnsseed.dump", "w");
|
||||||
fprintf(d, "# address \t%%(2h)\t%%(8h)\t%%(1d)\t%%(7d)\t%%(30d)\tblocks\tversion\n");
|
fprintf(d, "# address \tgood\tlastSuccess\t%%(2h)\t%%(8h)\t%%(1d)\t%%(7d)\t%%(30d)\tblocks\tsvcs\tversion\n");
|
||||||
double stat[5]={0,0,0,0,0};
|
double stat[5]={0,0,0,0,0};
|
||||||
for (vector<CAddrReport>::const_iterator it = v.begin(); it < v.end(); it++) {
|
for (vector<CAddrReport>::const_iterator it = v.begin(); it < v.end(); it++) {
|
||||||
CAddrReport rep = *it;
|
CAddrReport rep = *it;
|
||||||
fprintf(d, "%s\t%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\t%i\t%i \"%s\"\n", rep.ip.ToString().c_str(), 100.0*rep.uptime[0], 100.0*rep.uptime[1], 100.0*rep.uptime[2], 100.0*rep.uptime[3], 100.0*rep.uptime[4], rep.blocks, rep.clientVersion, rep.clientSubVersion.c_str());
|
fprintf(d, "%s\t%d\t%"PRId64"\t%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\t%i\t%"PRIx64"\t%i \"%s\"\n", rep.ip.ToString().c_str(), (int)rep.fGood, rep.lastSuccess, 100.0*rep.uptime[0], 100.0*rep.uptime[1], 100.0*rep.uptime[2], 100.0*rep.uptime[3], 100.0*rep.uptime[4], rep.blocks, rep.services, rep.clientVersion, rep.clientSubVersion.c_str());
|
||||||
stat[0] += rep.uptime[0];
|
stat[0] += rep.uptime[0];
|
||||||
stat[1] += rep.uptime[1];
|
stat[1] += rep.uptime[1];
|
||||||
stat[2] += rep.uptime[2];
|
stat[2] += rep.uptime[2];
|
||||||
|
|
Loading…
Add table
Reference in a new issue