Skip to content

Commit dc05035

Browse files
author
Cevap Master
authored
Merge pull request dashpay#69 from cevap/patch
Patch
2 parents 00df395 + 60c41f4 commit dc05035

File tree

8 files changed

+25
-17
lines changed

8 files changed

+25
-17
lines changed

src/addrman.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -334,10 +334,10 @@ void CAddrMan::Attempt_(const CService& addr, int64_t nTime)
334334
info.nAttempts++;
335335
}
336336

337-
CAddress CAddrMan::Select_()
337+
CAddrInfo CAddrMan::Select_()
338338
{
339339
if (size() == 0)
340-
return CAddress();
340+
return CAddrInfo();
341341

342342
// Use a 50% chance for choosing between tried and new table entries.
343343
if (nTried > 0 && (nNew == 0 || GetRandInt(2) == 0)) {
@@ -346,8 +346,10 @@ CAddress CAddrMan::Select_()
346346
while (1) {
347347
int nKBucket = GetRandInt(ADDRMAN_TRIED_BUCKET_COUNT);
348348
int nKBucketPos = GetRandInt(ADDRMAN_BUCKET_SIZE);
349-
if (vvTried[nKBucket][nKBucketPos] == -1)
350-
continue;
349+
while (vvTried[nKBucket][nKBucketPos] == -1) {
350+
nKBucket = (nKBucket + insecure_rand()) % ADDRMAN_TRIED_BUCKET_COUNT;
351+
nKBucketPos = (nKBucketPos + insecure_rand()) % ADDRMAN_BUCKET_SIZE;
352+
}
351353
int nId = vvTried[nKBucket][nKBucketPos];
352354
assert(mapInfo.count(nId) == 1);
353355
CAddrInfo& info = mapInfo[nId];
@@ -361,8 +363,10 @@ CAddress CAddrMan::Select_()
361363
while (1) {
362364
int nUBucket = GetRandInt(ADDRMAN_NEW_BUCKET_COUNT);
363365
int nUBucketPos = GetRandInt(ADDRMAN_BUCKET_SIZE);
364-
if (vvNew[nUBucket][nUBucketPos] == -1)
365-
continue;
366+
while (vvNew[nUBucket][nUBucketPos] == -1) {
367+
nUBucket = (nUBucket + insecure_rand()) % ADDRMAN_NEW_BUCKET_COUNT;
368+
nUBucketPos = (nUBucketPos + insecure_rand()) % ADDRMAN_BUCKET_SIZE;
369+
}
366370
int nId = vvNew[nUBucket][nUBucketPos];
367371
assert(mapInfo.count(nId) == 1);
368372
CAddrInfo& info = mapInfo[nId];

src/addrman.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,17 @@
2525
*/
2626
class CAddrInfo : public CAddress
2727
{
28+
public:
29+
//! last try whatsoever by us (memory only)
30+
int64_t nLastTry;
31+
2832
private:
2933
//! where knowledge about this address first came from
3034
CNetAddr source;
3135

3236
//! last successful connection by us
3337
int64_t nLastSuccess;
3438

35-
//! last try whatsoever by us:
36-
// int64_t CAddress::nLastTry
37-
3839
//! connection attempts since last successful attempt
3940
int nAttempts;
4041

@@ -232,7 +233,7 @@ class CAddrMan
232233

233234
//! Select an address to connect to.
234235
//! nUnkBias determines how much to favor new addresses over tried ones (min=0, max=100)
235-
CAddress Select_();
236+
CAddrInfo Select_();
236237

237238
#ifdef DEBUG_ADDRMAN
238239
//! Perform consistency check. Returns an error code or zero.
@@ -534,9 +535,9 @@ class CAddrMan
534535
* Choose an address to connect to.
535536
* nUnkBias determines how much "new" entries are favored over "tried" ones (0-100).
536537
*/
537-
CAddress Select()
538+
CAddrInfo Select()
538539
{
539-
CAddress addrRet;
540+
CAddrInfo addrRet;
540541
{
541542
LOCK(cs);
542543
Check();

src/net.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,7 @@ void ThreadOpenConnections()
13631363

13641364
int nTries = 0;
13651365
while (true) {
1366-
CAddress addr = addrman.Select();
1366+
CAddrInfo addr = addrman.Select();
13671367

13681368
// if we selected an invalid address, restart
13691369
if (!addr.IsValid() || setConnected.count(addr.GetGroup()) || IsLocal(addr))

src/protocol.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ void CAddress::Init()
100100
{
101101
nServices = NODE_NETWORK;
102102
nTime = 100000000;
103-
nLastTry = 0;
104103
}
105104

106105
CInv::CInv()

src/protocol.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,6 @@ class CAddress : public CService
120120

121121
// disk and network only
122122
unsigned int nTime;
123-
124-
// memory only
125-
int64_t nLastTry;
126123
};
127124

128125
/** inv message data */

src/qt/bitcoingui.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,7 @@ void BitcoinGUI::optionsClicked()
781781

782782
OptionsDialog dlg(this, enableWallet);
783783
dlg.setModel(clientModel->getOptionsModel());
784+
dlg.setCurrentIndex(0);
784785
dlg.exec();
785786
}
786787

src/qt/optionsdialog.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,3 +345,8 @@ bool OptionsDialog::eventFilter(QObject* object, QEvent* event)
345345
}
346346
return QDialog::eventFilter(object, event);
347347
}
348+
349+
void OptionsDialog::setCurrentIndex(int index)
350+
{
351+
ui->tabWidget->setCurrentIndex(index);
352+
}

src/qt/optionsdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class OptionsDialog : public QDialog
3333

3434
void setModel(OptionsModel* model);
3535
void setMapper();
36+
void setCurrentIndex(int index);
3637

3738
protected:
3839
bool eventFilter(QObject* object, QEvent* event);

0 commit comments

Comments
 (0)