diff options
author | João Barbosa <joao.paulo.barbosa@gmail.com> | 2019-10-02 21:55:52 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2019-10-04 13:50:06 +0200 |
commit | bd22dea6331ddb7b2d43913764ea5d8d5077f839 (patch) | |
tree | 86dfbdaf9c6e19631b49cf66bd1591068c45e15c /src/qt | |
parent | cd1e7bb064315ce909dfa1a0a14a5660d985f266 (diff) |
Prevent processing duplicate payment requests
Github-Pull: #17031
Rebased-From: 3f89e1eb237efcbd6415ca2cd0acddb6596153d7
Tree-SHA512: da428b0d70c06a99c948d7d4af0827e517b6d93be11a7462a73cca2b829cc3e40e74eadca5c3148e80be56a7a64213507243a5d7d7e67d5d74317f3c07f2ef16
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/paymentserver.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 00d83d23dd..806cc3c41e 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -82,7 +82,7 @@ static QString ipcServerName() // the main GUI window is up and ready to ask the user // to send payment. -static QList<QString> savedPaymentRequests; +static QSet<QString> savedPaymentRequests; // // Sending to the server is done synchronously, at startup. @@ -107,7 +107,8 @@ void PaymentServer::ipcParseCommandLine(interfaces::Node& node, int argc, char* // will start a mainnet instance and throw a "wrong network" error. if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI { - savedPaymentRequests.append(arg); + if (savedPaymentRequests.contains(arg)) continue; + savedPaymentRequests.insert(arg); SendCoinsRecipient r; if (GUIUtil::parseBitcoinURI(arg, &r) && !r.address.isEmpty()) @@ -127,7 +128,8 @@ void PaymentServer::ipcParseCommandLine(interfaces::Node& node, int argc, char* #ifdef ENABLE_BIP70 else if (QFile::exists(arg)) // Filename { - savedPaymentRequests.append(arg); + if (savedPaymentRequests.contains(arg)) continue; + savedPaymentRequests.insert(arg); PaymentRequestPlus request; if (readPaymentRequestFromFile(arg, request)) @@ -280,7 +282,7 @@ void PaymentServer::handleURIOrFile(const QString& s) { if (saveURIs) { - savedPaymentRequests.append(s); + savedPaymentRequests.insert(s); return; } |