mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
Corrected multiple Yubikey bugs (#880)
* Fixed database not showing modified after failed save * Fixed Yubikey not being redetected after replug * Fixed single shot challenge resulting in failed saves
This commit is contained in:
parent
df3051038e
commit
8e7fa3d3d6
@ -363,6 +363,8 @@ bool DatabaseTabWidget::saveDatabase(Database* db)
|
||||
emit messageDismissTab();
|
||||
return true;
|
||||
} else {
|
||||
dbStruct.modified = true;
|
||||
updateTabName(db);
|
||||
emit messageTab(tr("Writing the database failed.").append("\n").append(errorMessage),
|
||||
MessageWidget::Error);
|
||||
return false;
|
||||
|
@ -50,7 +50,7 @@ QByteArray YkChallengeResponseKey::rawKey() const
|
||||
*/
|
||||
bool YkChallengeResponseKey::challenge(const QByteArray& challenge)
|
||||
{
|
||||
return this->challenge(challenge, 1);
|
||||
return this->challenge(challenge, 2);
|
||||
}
|
||||
|
||||
bool YkChallengeResponseKey::challenge(const QByteArray& challenge, unsigned retries)
|
||||
@ -70,8 +70,8 @@ bool YkChallengeResponseKey::challenge(const QByteArray& challenge, unsigned ret
|
||||
|
||||
QEventLoop loop;
|
||||
QFutureWatcher<YubiKey::ChallengeResult> watcher;
|
||||
watcher.setFuture(future);
|
||||
connect(&watcher, SIGNAL(finished()), &loop, SLOT(quit()));
|
||||
watcher.setFuture(future);
|
||||
loop.exec();
|
||||
|
||||
if (m_blocking) {
|
||||
|
@ -154,7 +154,7 @@ YubiKey::ChallengeResult YubiKey::challenge(int slot, bool mayBlock, const QByte
|
||||
QByteArray paddedChallenge = challenge;
|
||||
|
||||
// ensure that YubiKey::init() succeeded
|
||||
if (m_yk == NULL) {
|
||||
if (!init()) {
|
||||
m_mutex.unlock();
|
||||
return ERROR;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user