|
|
@ -164,9 +164,18 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive, |
|
|
|
|
|
|
|
|
|
|
|
Db db(&dbenv, 0); |
|
|
|
Db db(&dbenv, 0); |
|
|
|
int result = db.verify(strFile.c_str(), NULL, &strDump, flags); |
|
|
|
int result = db.verify(strFile.c_str(), NULL, &strDump, flags); |
|
|
|
if (result != 0) |
|
|
|
if (result == DB_VERIFY_BAD) |
|
|
|
{ |
|
|
|
{ |
|
|
|
printf("ERROR: db salvage failed\n"); |
|
|
|
printf("Error: Salvage found errors, all data may not be recoverable.\n"); |
|
|
|
|
|
|
|
if (!fAggressive) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
printf("Error: Rerun with aggressive mode to ignore errors and continue.\n"); |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (result != 0 && result != DB_VERIFY_BAD) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
printf("ERROR: db salvage failed: %d\n",result); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|