aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authorPatrick Varilly <[email protected]>2011-07-14 02:45:34 +0200
committerStéphane Gimenez <[email protected]>2011-07-14 03:29:07 +0200
commit8c41469140584f3cbdd09fb62a1287da0216f431 (patch)
treeda2b8d9445fb2db927f3f3f0fd19da36378bb0a9 /src/net.cpp
parentMerge pull request #406 from muggenhor/warning-fixes (diff)
downloaddiscoin-8c41469140584f3cbdd09fb62a1287da0216f431.tar.xz
discoin-8c41469140584f3cbdd09fb62a1287da0216f431.zip
Single DB transaction for all addresses in a message
Cuts disk activity at startup immensely
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/net.cpp b/src/net.cpp
index ac5a2834b..dcfff934b 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -440,7 +440,7 @@ void ThreadGetMyExternalIP(void* parg)
-bool AddAddress(CAddress addr, int64 nTimePenalty)
+bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB)
{
if (!addr.IsRoutable())
return false;
@@ -455,7 +455,10 @@ bool AddAddress(CAddress addr, int64 nTimePenalty)
// New address
printf("AddAddress(%s)\n", addr.ToString().c_str());
mapAddresses.insert(make_pair(addr.GetKey(), addr));
- CAddrDB().WriteAddress(addr);
+ if (pAddrDB)
+ pAddrDB->WriteAddress(addr);
+ else
+ CAddrDB().WriteAddress(addr);
return true;
}
else
@@ -477,7 +480,12 @@ bool AddAddress(CAddress addr, int64 nTimePenalty)
fUpdated = true;
}
if (fUpdated)
- CAddrDB().WriteAddress(addrFound);
+ {
+ if (pAddrDB)
+ pAddrDB->WriteAddress(addrFound);
+ else
+ CAddrDB().WriteAddress(addrFound);
+ }
}
}
return false;