Commit Graph

17193 Commits

Author SHA1 Message Date
UdjinM6
0255027fb6
Fix "\n"s 2020-01-28 15:42:00 -06:00
Wladimir J. van der Laan
e7beff5bcd
Merge #12855: net: Minor accumulated cleanups
2c084a6 net: Minor accumulated cleanups (Thomas Snider)

Pull request description:

  From now-derelict larger changes I had been working on, here are a series of DRY refactors/cleanups.  Net loss of 35 lines of code - a small step in the good fight.

  In particular I think operator!= should only ever be implemented as a negation of operator==.  Lower chance for errors, and removes the possibility of divergent behavior.

Tree-SHA512: 58bf4b542a4e8e5bc465b508aaa16e9ab51448c3f9bee52cd9db0a64a5c6c5a13e4b4286d0a5aa864934fc58064799f6a88a40a87154fd3a4bd731a72e254393
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
a3ea0e93ef
Merge #12626: Limit the number of IPs addrman learns from each DNS seeder
46e7f800b Limit the number of IPs we use from each DNS seeder (e0)

Pull request description:

  A risk exists where a malicious DNS seeder eclipses a node by returning an enormous number of IP addresses. In this commit we mitigate this risk by limiting the number of IP addresses addrman learns to 256 per DNS seeder.

  As discussed with @theuni

Tree-SHA512: 949e870765b1470200f2c650341d9e3308a973a7d1a6e557b944b0a2b8ccda49226fc8c4ff7d2a05e5854c4014ec0b67e37a3f2287556fe7dfa2048ede1f2e6f
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
12a9809824
Merge #12342: Extend #11583 to include "version handshake timeout" message
c887f87 Extend #11583 to include the most common message generated by non-contributing peers (port scanners?) 37% of the log default log entries for a node that has been up for ~24hrs was "version handshake timeout..." (Clem Taylor)

Pull request description:

  37% of the default log entries for a node that has been up for ~24hrs was "version handshake timeout..."

Tree-SHA512: dceeee5d55a9ff7570174aeb63faac9beda239087220522adefef7ed11e0eeffa008ca28726011247c8834c1a222d37817baf895635ab874a95ebc435959070e
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
03576217e5
Merge #12329: net: don't retry failed oneshot connections forever
660f5f1 net: don't retry failed oneshot connections forever (Cory Fields)

Pull request description:

  As introduced by (my suggestion, sorry, in) #11512, failed dns resolves end up as oneshots. But failed oneshots are re-added as oneshots, so we need to make sure that we're not queuing these up forever after failed resolves.

  Rather than trying to differentiate, I think we should just not re-add failed oneshots and be done with it.

  Maybe @sipa can shed a light on what the original intention was.

Tree-SHA512: 2dfe35dabfb6354c315cf6f8ae42971765d36575e685662caae7ed8f9dea9472c6fb1fd5e62ec35301550b74b6613a54265e90fca2a6618544f78dacaac4d4fd

fix 12329 backport

Signed-off-by: Pasta <pasta@dashboost.org>

fix 12329 backport

Signed-off-by: Pasta <pasta@dashboost.org>

fix 12329 backport

Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
211c8a3a5b
Merge #12326: net: initialize socket to avoid closing random fd's
96dbd38 net: initialize socket to avoid closing random fd's (Cory Fields)

Pull request description:

  An excellent spot by @david60.

  Even if it isn't causing the fd issue we're looking for, this should be fixed.

Tree-SHA512: 062a8f2cdd39d895213e1263dbd7b8391473ddaea2f93c82c211a9bb6ea6744d48a6c84c8ff804b16b865d14145492635c500a9fd138d0988fee5e4f719ebb91
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
49549390af
Merge #12218: net: Move misbehaving logging to net logging category
d3a185a net: Move misbehaving logging to net logging category (Wladimir J. van der Laan)

Pull request description:

  This moves the error messages for misbehavior (when available) into the line that reports the misbehavior, as well as moves the logging to the `net` category.

  This is a continuation of #11583 and avoids serious-looking errors due to misbehaving peers. As it is impossible to correlate the `peer=X` numbers to specific incoming connections now without enabling the `net` category, it doesn't really help to see these messages by default.

  To do this, Misbehaving() gains an optional `message` argument.

  E.g. change:

      2018-01-18 16:02:27 Misbehaving: x.x.x.x:62174 peer=164603 (80 -> 100) BAN THRESHOLD EXCEEDED
      2018-01-18 16:02:27 ERROR: non-continuous headers sequence

  to

      2018-01-18 16:02:27 Misbehaving: x.x.x.x:62174 peer=164603 (80 -> 100) BAN THRESHOLD EXCEEDED: non-continuous headers sequence

  When there is a category for "important" net messages (see #12219 ), we should move it there.

Tree-SHA512: 51c97e9a649bf5409f2fd4625fa1243a036e9c9de6037bb064244207408c2e0eb025e3af80866df673cdc006b8f35dc4078d074033f0d4c6a73bbb03949a269f
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
500a60a8fe
Merge #11744: net: Add missing locks in net.{cpp,h}
bfb0c0a Add Clang thread safety analysis annotations (practicalswift)
63f21d2 net: Add missing locks in net.{cpp,h} (practicalswift)

Pull request description:

  Add missing locks in `net.{cpp,h}`:
  * writing variable `nTotalBytesRecv` requires holding mutex `cs_totalBytesRecv` exclusively
  * writing variables `nTotalBytesSent`, `nMaxOutboundTotalBytesSentInCycle` and `nMaxOutboundCycleStartTime` require holding mutex `cs_totalBytesSent` exclusively
  * writing variables `nMaxOutboundTimeframe` and `nMaxOutboundLimit` require holding mutex `cs_totalBytesSent` exclusively
  * writing variable `vAddedNodes` requires holding mutex `cs_vAddedNodes` exclusively

Tree-SHA512: 54a5b4bc6dc6f404dacf403af2ddd7b2214cc0a17d1d32a282def1c6b536105dada56bfabbc8606f56755f2d24874abba09913b51c8d13b0f2b000149551f0b0
2020-01-26 20:44:58 -06:00
Wladimir J. van der Laan
f4fb2c1906
Merge #11583: Do not make it trivial for inbound peers to generate log entries
be9f38c Do not make it trivial for inbound peers to generate log entries (Matt Corallo)

Pull request description:

  Based on #11580 because I'm lazy.

  We should generally avoid writing to debug.log unconditionally for
  inbound peers which misbehave (the peer being about to be banned
  being an exception, since they cannot do this twice).

Tree-SHA512: 8e59c8d08d00b1527951b30f4842d010a4c2fc440503ade112baa2c1b9afd0e0d1c5c2df83dde25183a242af45089cf9b9f873b71796771232ffb6c5fc6cc0cc
2020-01-26 01:21:24 -06:00
Wladimir J. van der Laan
fccf28b6a0
Merge #11577: Fix warnings (-Wsign-compare) when building with DEBUG_ADDRMAN
6eddd43 Fix warnings when building with DEBUG_ADDRMAN (practicalswift)

Pull request description:

  Fix warnings when building with `DEBUG_ADDRMAN`.

  Warnings prior to this commit:

  ```
  addrman.cpp:390:24: warning: comparison of integers of different signs: 'size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]
      if (vRandom.size() != nTried + nNew)
          ~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~
  addrman.cpp:411:52: warning: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long') [-Wsign-compare]
          if (info.nRandomPos < 0 || info.nRandomPos >= vRandom.size() || vRandom[info.nRandomPos] != n)
                                     ~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
  addrman.cpp:419:25: warning: comparison of integers of different signs: 'size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]
      if (setTried.size() != nTried)
          ~~~~~~~~~~~~~~~ ^  ~~~~~~
  addrman.cpp:421:23: warning: comparison of integers of different signs: 'size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]
      if (mapNew.size() != nNew)
          ~~~~~~~~~~~~~ ^  ~~~~
  4 warnings generated.
  ```

Tree-SHA512: 0316faecfe95066d2c9a0b6b3960086e43824f21a67086a895ea45fbce1327f8d6df5945fe923c2dbe4efce430bc1384d515d317c3930d97d24965e507cf734d
2020-01-26 01:18:38 -06:00
Wladimir J. van der Laan
94e99441c5
Merge #11512: Use GetDesireableServiceFlags in seeds, dnsseeds, fixing static seed adding
2b839ab Update chainparams comment for more info on service bits per dnsseed (Matt Corallo)
62e7642 Fall back to oneshot for DNS Seeds which don't support filtering. (Matt Corallo)
51ae766 Use GetDesireableServiceFlags in static seeds, document this. (Matt Corallo)
fb6f6b1 bluematt's testnet-seed now supports x9 (and is just a static list) (Matt Corallo)

Pull request description:

  4440710 broke inserting entries into addrman from dnsseeds which
  did not support service bits, as well as static seeds. Static seeds
  were already being filtered by UA for 0.13.1+ (ie NODE_WITNESS), so
  simply changing the default service bits to include NODE_WITNESS
  (and updating docs appropriately) is sufficient. For DNS Seeds, not
  supporting NODE_WITNESS is no longer useful, so instead use
  non-filtering seeds as oneshot hosts irrespective of named proxy.

  I've set my testnet-seed to also support x9, though because it is simply a static host, it may be useful to leave the support off so that it is used as a oneshot to get addresses from a live node instead. I'm fine with either.

Tree-SHA512: 3f17d4d2b0b84d876981c962d2b44cb0c8f95f52c56a48c6b35fd882f6d7a40805f320ec452985a1c0b34aebddb1922709156c3ceccd1b9f8363fd7cb537d21d
2020-01-26 01:15:36 -06:00
Wladimir J. van der Laan
88197c7414
Merge #11448: [gui] reset addrProxy/addrSeparateProxyTor if colon char missing
ce2418f [gui] reset addrProxy/addrSeparateProxyTor if colon char missing (Cristian Mircea Messel)

Pull request description:

  If addrProxy or addrSeparateProxyTor do not have a colon in the string
  somewhere in the QSettings storage, then attempting to open the options
  dialog will cause the entire program to crash.

  Fixes #11209

Tree-SHA512: 2d9e6987cf05af3f41033290b61d00920f7fe4a65bea7efd96ed417a8ca7866d248f091e09947cc8aad3a6a4aa8b7777211cfff7f379a62188be50df2c46d4b2
2020-01-26 01:10:21 -06:00
Wladimir J. van der Laan
c261173669
Merge #13946: p2p: Clarify control flow in ProcessMessage
fa6c3dea420b6c50c164ccc34f4e9e8a7d9a8022 p2p: Clarify control flow in ProcessMessage() (MarcoFalke)

Pull request description:

  `ProcessMessage` is effectively a massive switch case construct. In the past there were attempts to clarify the control flow in `ProcessMessage()` by moving each case into a separate static function (see #9608). It was closed because it wasn't clear if moving each case into a function was the right approach.
  Though, we can quasi treat each case as a function by adding a return statement to each case. (Can be seen as a continuation of bugfix #13162)

  This patch does exactly that.

  Also note that this patch is a subset of previous approaches such as #9608 and #10145.

  Review suggestion: `git diff HEAD~ --function-context`

Tree-SHA512: 91f6106840de2f29bb4f10d27bae0616b03a91126e6c6013479e1dd79bee53f22a78902b631fe85517dd5dc0fa7239939b4fefc231851a13c819458559f6c201
2020-01-25 11:02:00 -06:00
Wladimir J. van der Laan
7f88a67d5b
Merge #11363: net: Split socket create/connect
3830b6e net: use CreateSocket for binds (Cory Fields)
df3bcf8 net: pass socket closing responsibility up to caller for outgoing connections (Cory Fields)
9e3b2f5 net: Move IsSelectableSocket check into socket creation (Cory Fields)
1729c29 net: split socket creation out of connection (Cory Fields)

Pull request description:

  Requirement for #11227.

  We'll need to create sockets and perform the actual connect in separate steps, so break them up.

  #11227 adds an RAII wrapper around connection attempts, as a belt-and-suspenders in case a CloseSocket is missed.

Tree-SHA512: de675bb718cc56d68893c303b8057ca062c7431eaa17ae7c4829caed119fa3f15b404d8f52aca22a6bca6e73a26fb79e898b335d090ab015bf6456cf417fc694
2020-01-25 10:46:54 -06:00
UdjinM6
39b17fd5a3
Fix empty TRAVIS_COMMIT_RANGE for one-commit-branch builds in Travis (#3299) 2020-01-24 19:59:06 +03:00
UdjinM6
546e69f1af
Fix CActiveMasternodeManager::GetLocalAddress to prefer IPv4 if multiple local addresses are known (#3304)
* Fix CActiveMasternodeManager::GetLocalAddress to prefer IPv4 if multiple local addresses are known

* Make sure LookupHost succeeded
2020-01-24 17:09:59 +03:00
UdjinM6
e4ef7e8d09
Drop unused invSet in CDKGSession (#3303) 2020-01-24 17:09:25 +03:00
UdjinM6
da7686c936
Update translations 2020-01-23 (#3302)
100%: es, ko
97%+: ro, zh_TW
2020-01-24 17:08:56 +03:00
Alexander Block
c182c6ca14 Upgrade Travis to use Bionic instead of Trusty (#3143)
* Upgrade Travis to use Bionic instead of Trusty

* Don't install realpath/docker anymore

Not needed due to upgrade to Bionic
2020-01-22 13:36:54 +03:00
Alexander Block
1dd2b11000 Backport bitcoin#11027: [RPC] Only return hex field once in getrawtransaction (#3298)
* Merge #11027: [RPC] Only return hex field once in getrawtransaction

6bbdafc Pass serialization flags and whether to include hex to TxToUniv (Andrew Chow)
e029c6e Only return hex field once in getrawtransaction (Andrew Chow)

Pull request description:

  The hex is already returned in `TxToUniv()`, no need to give it out a second time in getrawtransaction itself.

Tree-SHA512: 270289f2d6dea37f51f5a42db3dae5debdbe83c6b504fccfd3391588da986ed474592c6655d522dc51022d4b08fa90ed1ebb249afe036309f95adfe3652cb262

* Remove backported traces of RPCSerializationFlags

We don't have this in Dash

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2020-01-22 13:36:22 +03:00
UdjinM6
b7a89d3492
Fix dip4-coinbasemerkleroots.py race condition (#3297)
Sometimes the node we ask for mnlistdiff is so fast to reply that we receive the message back before we reset `last_mnlistdiff`. To fix this we should reset it before sending the message, not after.
2020-01-22 13:35:47 +03:00
UdjinM6
b57901dfaa
Various fixes for DSTX-es (#3295)
* Check MNs up to 24 blocks deep when verifying `dstx`

* Handle DSTX-es more like regular txes and not like "other" invs

* Try asking for a DSTX too when trying to find missing tx parents

* Check DSTX-es when chainlock arrives

`HasChainLock` was always `false` in `IsExpired` because tip is updated before the corresponding chainlock is received

* Apply `Handle DSTX-es more like regular txes` idea to `AlreadyHave()`

* Alternative handling of DSTX+recentRejects

Co-authored-by: Alexander Block <ablock84@gmail.com>
2020-01-22 13:35:31 +03:00
PastaPastaPasta
141861ebae Merge #11117: Prepare for non-Base58 addresses (#3294)
* Merge #11117: Prepare for non-Base58 addresses

864cd2787 Move CBitcoinAddress to base58.cpp (Pieter Wuille)
5c8ff0d44 Introduce wrappers around CBitcoinAddress (Pieter Wuille)

Pull request description:

  This patch removes the need for the intermediary Base58 type `CBitcoinAddress`, by providing {`Encode`,`Decode`,`IsValid`}`Destination` functions that directly operate on the conversion between `std::string`s and `CTxDestination`.

  As a side, it also fixes a number of indentation issues, and removes probably several unnecessary implicit `CTxDestination`<->`CBitcoinAddress` conversions.

  This change is far from complete. In follow-ups I'd like to:
  * Split off the specific address and key encoding logic from base58.h, and move it to a address.h or so.
  * Replace `CTxDestination` with a non-`boost::variant` version (which can be more efficient as `boost::variant` allocates everything on the heap, and remove the need for `boost::get<...>` and `IsValidDestination` calls everywhere).
  * Do the same for `CBitcoinSecret`, `CBitcoinExtKey`, and `CBitcoinExtPubKey`.

  However, I've tried to keep this patch to be minimally invasive, but still enough to support non-Base58 addresses. Perhaps a smaller patch is possible to hack Bech32 support into `CBitcoinAddress`, but I would consider that a move in the wrong direction.

Tree-SHA512: c2c77ffb57caeadf2429b1c2562ce60e8c7be8aa9f8e51b591f354b6b441162625b2efe14c023a1ae485cf2ed417263afa35c892891dfaa7844e7fbabccab85e

* CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* fix CBitcoinAddress GetKeyID check

Signed-off-by: Pasta <pasta@dashboost.org>

* fix providertx.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* hopefully fix governance-classes.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* partially fix governance-validators.cpp, unable to resolve "address.IsScript()"

Signed-off-by: Pasta <pasta@dashboost.org>

* partially fix governance-classes.cpp, unable to resolve "address.IsScript()"

Signed-off-by: Pasta <pasta@dashboost.org>

* fix governance-classes.h

Signed-off-by: Pasta <pasta@dashboost.org>

* DecodeTransaction -> DecodeDestination, fix governance-validators.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* More fixes for 3294

* Move GetIndexKey into rpc/misc.cpp near getAddressesFromParams

No need to have it in base58.cpp anymore as this is only used in getAddressesFromParams

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: Alexander Block <ablock84@gmail.com>
2020-01-22 13:35:04 +03:00
UdjinM6
39a524d684
Merge pull request #3289 from PastaPastaPasta/backports-0.16-pr4
Backports 0.16 pr4
2020-01-22 13:33:57 +03:00
Alexander Block
19b39167e8
Remove use of NULL in wallet.cpp
Also remove redundant "return false"
2020-01-21 18:05:39 -06:00
UdjinM6
364cc42edb
Fix 11486 2020-01-17 13:09:22 -06:00
UdjinM6
cff940c288
Fix 11541 2020-01-17 13:09:17 -06:00
UdjinM6
682b59a262
Fix 11452 2020-01-17 13:09:12 -06:00
UdjinM6
b9e76deb10
Fix 7061 2020-01-17 13:09:07 -06:00
Alexander Block
5b4fe43c25
Replace generic CScopedDBTransaction with specialized CEvoDBScopedCommitter (#3292)
This has the wanted side effect of proper locking of "cs" inside
CommitCurTransaction and RollbackCurTransaction, which was not easily
possible to implement in the generic version. This fixes some rare crashes.
2020-01-17 16:01:22 +01:00
UdjinM6
5edaad4b29 Translations 2020-01 (#3192)
* en

* ru

* 100%: bg, de, fi, fr, it, nl, pt, sk, vi, zh_CN

* 90%+: ar, es, ja, ko, pl, ro, th, tr, zh_TW

* drop sv

It looks like it was abandoned, dropped below 80% threshold (73.3% atm)
2020-01-17 16:00:53 +01:00
taw00
a69851325e trivial: adding SVG and high contrast icons (#3209)
* adding favicon image
- noticed that someone already contributed all my pixmaps I have been using for
  my builds (thank you, whoever you were). The favicon was left out. Adding
  that as well. It is useful from a completist perspective and have users a
  resource they can just use if they have need of a favicon for their project.

* trivial: adding SVG and high contrast icons
Purpose: for accessibility, if QT wallet is packaged (linux) correctly,
when the user switches to high contrast in their desktop environment
the high contrast icons will be used.
The packaging should land these icons in the
`/usr/share/icons/HighContrast` and `/usr/share/icons/hicolor` trees.

* trivial: HighContrast SVG is actually HighContrast now.
2020-01-17 15:45:25 +01:00
UdjinM6
77e7d5ca5c Update man pages (#3291) 2020-01-17 15:43:07 +01:00
UdjinM6
7d39637b02 Bump copyright year to 2020 (#3290)
* Bump _COPYRIGHT_YEAR

* Run copyright update script

./contrib/devtools/copyright_header.py update .

* Update COPYING

* Bump copyright year in dash-cli/qt/tx and dashd map pages
2020-01-17 15:42:55 +01:00
MarcoFalke
eb9263f046
Merge #11624: Docs: Change formatting for sequence of steps
d0b1fc88d Docs: Change formatting for sequence of steps (Vivek Ganesan)

Pull request description:

  A numbered list is used when the sequence of steps matters. A bulleted list is used to denote a set of items where the sequence does not matter.

  The workflow is a sequence and hence changed to a numbered list.

  Reference: https://www.w3.org/wiki/HTML_lists#Ordered_lists

Tree-SHA512: 310532713ed2dc3a5fe6d3b54f77fef09f355fa0ead57f2861c469e9149c658af4767cf00fb3e13569f6c4700edb0cc0265c2654c59393df80a99bf5123de5f5
2020-01-16 09:22:46 -06:00
MarcoFalke
e1cbdef16c
Merge #11585: addrman: Add missing lock in Clear() (CAddrMan)
3ab545d7f addrman: Add missing lock in Clear() (CAddrMan) (practicalswift)

Pull request description:

  Add missing lock in `Clear()` (`CAddrMan`).

  The variable `vRandom` is guarded by the mutex `cs`.

  **Note to reviewers:** Does this look correct? Should the lock cover the entire scope of the method, or should it be limited to cover only `std::vector<int>().swap(vRandom);`?

Tree-SHA512: 8833f31beaed1728fa55b13ddf9e0b8e24e395931497329be2440ce1c5113ff02871707d40830260adabd30c4ea86088f5da5cf8a821150c0d820f50a2ce386a
2020-01-16 09:22:46 -06:00
MarcoFalke
458db168d4
Merge #11618: rpc: Lock cs_main in blockToJSON/blockheaderToJSON
a9b6ba0b7 Add missing cs_main locks when calling blockToJSON/blockheaderToJSON (practicalswift)

Pull request description:

  `blockToJSON(...)` and `blockheaderToJSON(...)` read the variable `chainActive` which requires holding the mutex `cs_main`. So does `GetDifficulty(...)`.

Tree-SHA512: bfb94f5e3238accbf6a4daddde49d53f1891c38ae9b07e25b3098c485747159258f64bb66a50e147b32beac601de89d9d04ff717b6c4f1460d329c90a53d3333
2020-01-16 09:22:46 -06:00
MarcoFalke
40410ede66
Merge #11626: rpc: Make logging RPC public
cabff7588 rpc: Make logging RPC public (Wladimir J. van der Laan)

Pull request description:

  This started out as a developer hack but now it's useful enough for general use. Unhide the call by moving it to `control` category. This makes it documented in `help`.

Tree-SHA512: f45fa378558b552d4e2a110bf85100b0eaaa6180bb5f62cb54a251f66026d4625b670c69d85c281eebbf4b56b80b65618c51a5a593b8f9d0a04b31e95adc91f4
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
c85b038beb
Merge #11480: [ui] Add toggle for unblinding password fields
ff35de8 [ui] Add toggle for unblinding password fields (Thomas Snider)

Pull request description:

  Proposed change for adding the ability to toggle password visibility in the password dialog.  This is similar to functionality in most password managers and is specifically added with the use case of password managers in mind - the password in that case is likely pasted twice into both the new password and confirm password fields.

  If this is a welcome change, I am open to suggestions on rearranging the layout.

Tree-SHA512: 1823f356f8f941cc584c44de264433e9a573cb8a358efa300a412c4458b5564d8d193969be40859195cf9c8d6768eee895ee22440d51db4f09175f9b4e28bced
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
bbd89c54f1
Merge #11611: [build] Don't fail when passed --disable-lcov and lcov isn't available
223a4aa [build] Don't fail when passed --disable-lcov and lcov isn't available (fanquake)

Pull request description:

  Fixes #10828
  As pointed out in #10828, failing with "lcov not found" when we've been passed --disable-lcov doesn't make sense. Master currently behaves like this (where lcov isn't available):
  ```
  ./configure --disable-lcov
  checking for pkg-config... /usr/local/bin/pkg-config
  checking pkg-config is at least version 0.9.0... yes
  configure: error: "lcov testing requested but lcov not found"
  ```

  cc @janstary

Tree-SHA512: 606fdbddae67e72fff175f2f34e2c9af4e6972d40d5e1ec5c5d8be5051a728e5b16c35cfd856da0c0ce81dcab9db154a4937b1a6ca1e0233b6e160f2f4362002
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
5f7eebec51
Merge #11511: [Init] Remove redundant exit(EXIT_FAILURE) instances and replace with return false
b296bf1 Init: Remove redundant exit(EXIT_FAILURE) instances and replace with return false (donaloconnor)

Pull request description:

  While reviewing the bitcoin code I noticed that there are a few exit(EXIT_FAILURE) at various places in the AppInit function.

  This function returns to main() which will return/exit with EXIT_FAILURE so returning false instead of an explicit exit(EXIT_FAILURE) seems to be cleaner.

  This PR attempts to make things a bit more consistent.

  There is a subtle difference between exit() and return from main in that the exit() will not clean up any local vars but I don't think this makes a difference in this case. Using exit() might even lead to bugs in the future where the dtor of local objects are expected to be called.

Tree-SHA512: 7d104c3a752b4e7d7bc2382ef7e62543462988f1bbf13dd4077fbeff5399729b76c71a4352556f188b8d306604232477466f5bb827b58a6f3f6273f2370e1faa
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
ce381d0826
Merge #11571: Fixed a couple small grammatical errors.
f927ee1 Fixed a couple small grammatical errors. (Christian Gentry)

Pull request description:

  1. "If a pull request is not to be considered for merging (yet), please
  prefix the ..."

  2. If a particular commit references another issue, please add the reference. For
  example: `refs #1234` or `fixes #4321`.

Tree-SHA512: b2ed11a235800a6b8e9450937352954a2222eb6f08f9556c8f298fd3d64d18e731397b46f3141eab01e0196f53fa3a9d84fb707a1e7691a63dd146b3c5298fe5
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
7b26c638c7
Merge #11573: [Util] Update tinyformat.h
60b98f8 [Util] Update tinyformat.h (fanquake)

Pull request description:

  Updates `tinyformat.h` to commit c42f/tinyformat@689695c upstream. Including:
  8a2812d848
  5d9e05a347
  48e2e48789

  @achow101 mentioned that since upgrading to Ubuntu 17.10 (GCC 7), tinyformat had been throwing lots of -Wimplicit-fallthrough warnings. However fallthrough warnings should have been silenced by #10489. cc @theuni.

  The upstream commit to fix fallthrough warnings is in this PR https://github.com/c42f/tinyformat/pull/39.

  The last time tinyformat.h was updated in this repo was in #8274.

Tree-SHA512: a51bd30544693550e08148daf5d244e3a3a410caff7897351eb9cd28f661dc85e193e045bb86068ee4006b2f89a7233b7573b8c50d93d2a9a15a11386fdcc605
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
2f61a2007a
Merge #11541: Build: Fix Automake warnings when running autogen.sh
cc5c39d [Build] Add AM_OBJCXXFLAGS and QT_PIE_FLAGS to OBJCXXFLAGS to future-proof darwin targets (fanquake)
f8c6697 Fix automake warnings when running autogen.sh (Evan Klitzke)

Pull request description:

  Adjusted @eklitzke's commit to completely remove GZIP_ENV.
  Added a commit to address OBJCXXFLAGS.
  Rebased on master.
  Relevant info from @theuni & #11013 below.

  --------
  GZIP_ENV was indeed added for determinism, but gitian exports this as needed, so it's not really necessary. I'd rather just remove it.

  The mm.o rule was added to support XCode 4.2's ancient version of automake. That's irrelevant now, so it makes sense to remove that too.

  All darwin targets are PIE by default, so we don't technically need the flags, but I'd be more comfortable if we hooked up the OBJCXXFLAGS in case future ones are added.

  --------

  The second commit addresses the last point, but could probably use a better commit message.
  These warnings are removed from autogen output:
  ```
  Makefile.am:12: warning: user variable 'GZIP_ENV' defined here ...
  /usr/local/Cellar/automake/1.15.1/share/automake-1.15/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here
  src/Makefile.am: installing 'build-aux/depcomp'
  src/Makefile.am:503: warning: user target '.mm.o' defined here ...
  /usr/local/Cellar/automake/1.15.1/share/automake-1.15/am/depend2.am: ... overrides Automake target '.mm.o' defined here
  ```

Tree-SHA512: bd59df5f6d3aafe35d5e36925bfe61cc71e774583a0438d7dd946c9e7ecf6e59d42f90a58b8cfef0faa404c81050338ad4cefe721b4a949af881e73b6ab254d4
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
81ebfb7f76
Merge #11452: Improve ZMQ functional test
cc9ee80 Improve ZMQ functional test (João Barbosa)

Pull request description:

  After #11439, this PR only improves:
   - test comments;
   - simplicity by removing *duplicate* tests;
   - also removes duplicate code.

Tree-SHA512: 3636fa9694c827128128742ad31e635d19670c3645aef8e7b1cb46069c21631e8b0db059486a6f6e7eee237a23d93bce6df95190394b5a8dcfce31a49a72d17f
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
e357bda75b
Merge #11467: Fix typos. Use nullptr instead of NULL.
0aacfa4 Remove accidental stray semicolon (practicalswift)
68feb49 Use nullptr instead of NULL (practicalswift)
c6b07fd Fix a vs. an typo (practicalswift)

Pull request description:

  Minor cleanups:
  * Typo: Fix a vs. an typo
  * Typo: Remove accidental stray semicolon (only remaining instance in repo)
  * Correctness/consistency: Use `nullptr` instead of `NULL` (only remaining instance in repo)

Tree-SHA512: 47142e557da9d3fa0b532c46edeb7f356a1f6dc5973e60b0e496badff3581ff696eade542d49da777ac7f2e895129cc8487ccdb1984ff828434fa86f9a56dad0
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
186edbeeeb
Merge #11495: [trivial] Make namespace explicit for is_regular_file
f4c4e38 [trivial] Make namespace explicit for is_regular_file (John Newbery)

Pull request description:

  is_regular_file resolves using argument dependent lookup. Make the
  namespace explicit so it's obvious where the function is defined.

  For those not familiar with argument dependent lookups:

  - http://en.cppreference.com/w/cpp/language/adl
  - https://en.wikipedia.org/wiki/Argument-dependent_name_lookup

  Thanks to C++ guru @ryanofsky for pointing this out to me.

Tree-SHA512: 919f1818081a8f90c5751181f87e13b06d90f8aec0ab873100434e55c85cca6e0e288ecc7f135e19e9b5dba7952e96b6393864b7840e20b69dd40e92a157928b
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
21514ceb50
Merge #11486: [tests] Add uacomment tests
c5dfa90 [tests] Add uacomment tests (Cristian Mircea Messel)

Pull request description:

  Checks for setting the value, max length and reserved characters

Tree-SHA512: a62e2cf8e455a3cd3987c0855f7bfc49de47504c01263e3573366e3cbff400c5678224773d4f1e4ac684fff34d987994e490a0978c4da05ff2a4bfa972c84723
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
467c52c75f
Merge #11508: Fix crash via division by zero assertion
207408b Fix crash via division by zero assertion (Jonas Schnelli)

Pull request description:

  Replaces the newly added `assert` for a devision by zero protection by a control structure. Floating point division by zero is defined by the floating point standard and results in +inf or -inf.

  Introduced in #11133
  Reported by @mzhou, fixes #11501

Tree-SHA512: ac9b4efa3ba52a2aa246fb11170128c4aaf829fd491b649524c85069c6ed33ae612e761809aea9d9a44bdea29a417b3f3a558226495094b5070a42a56b2ac77e
2020-01-16 09:22:46 -06:00
Pieter Wuille
4cdb8f143c
Merge #11062: [mempool] Mark mempool import fails that were found in mempool as 'already there'
258d33b41 [mempool] Mark unaccepted txs present in mempool as 'already there'. (Karl-Johan Alm)

Pull request description:

  I was investigating the reasons for failed imports in mempool and noticed that `LoadMempool()` and `pwallet->postInitProcess()` (for all wallets) are executed concurrently. The wallet will end up importing transactions that `LoadMempool()` later tries to import; the latter will fail due to the tx already being in the mempool.

  This PR changes the log message, adding an additional "already there" entry. For transactions not accepted into mempool, a check if they are in the mempool is done first, and if found, they are counted as 'already there', otherwise counted as 'failed'.

  Also slight rewording for consistency (successes, failed, expired, ... -> succeeded, failed, expired).

Tree-SHA512: 1a6134a25260917f2768365e0dfd8b278fe3f8287cab38bb028b7de3d517718a2d37696186dc7a23ceab338cc755fbbe7d45358ee94e573610fddd2a0620d6e5
2020-01-16 09:22:46 -06:00