|
|
@ -63,14 +63,28 @@ const struct { |
|
|
|
{NULL, NULL} |
|
|
|
{NULL, NULL} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace { |
|
|
|
|
|
|
|
|
|
|
|
// don't add private key handling cmd's to the history
|
|
|
|
// don't add private key handling cmd's to the history
|
|
|
|
const QStringList RPCConsole::historyFilter = QStringList() |
|
|
|
const QStringList historyFilter = QStringList() |
|
|
|
<< "importprivkey" |
|
|
|
<< "importprivkey" |
|
|
|
<< "signrawtransaction" |
|
|
|
<< "signrawtransaction" |
|
|
|
<< "walletpassphrase" |
|
|
|
<< "walletpassphrase" |
|
|
|
<< "walletpassphrasechange" |
|
|
|
<< "walletpassphrasechange" |
|
|
|
<< "encryptwallet"; |
|
|
|
<< "encryptwallet"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool command_may_contain_sensitive_data(const QString cmd) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Q_FOREACH(QString unallowedCmd, historyFilter) { |
|
|
|
|
|
|
|
if (cmd.trimmed().startsWith(unallowedCmd)) { |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* Object for executing console RPC commands in a separate thread.
|
|
|
|
/* Object for executing console RPC commands in a separate thread.
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
class RPCExecutor : public QObject |
|
|
|
class RPCExecutor : public QObject |
|
|
@ -764,15 +778,7 @@ void RPCConsole::on_lineEdit_returnPressed() |
|
|
|
message(CMD_REQUEST, cmd); |
|
|
|
message(CMD_REQUEST, cmd); |
|
|
|
Q_EMIT cmdRequest(cmd); |
|
|
|
Q_EMIT cmdRequest(cmd); |
|
|
|
|
|
|
|
|
|
|
|
bool storeHistory = true; |
|
|
|
bool storeHistory = !command_may_contain_sensitive_data(cmd); |
|
|
|
Q_FOREACH(QString unallowedCmd, historyFilter) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (cmd.trimmed().startsWith(unallowedCmd)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
storeHistory = false; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (storeHistory) |
|
|
|
if (storeHistory) |
|
|
|
{ |
|
|
|
{ |
|
|
|