summaryrefslogtreecommitdiff
path: root/apt-pkg/acquire.cc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@ubuntu.com>2014-07-18 23:41:29 +0200
committerMichael Vogt <mvo@ubuntu.com>2014-07-21 08:17:17 +0200
commit47aca3cfc17ee23c37693b4e53c675a74b38decd (patch)
tree8112560d31700e67429e0a2a4a479e22cd63d424 /apt-pkg/acquire.cc
parent564720959e4ae47921b795fe6c5ce46e1e1bdc95 (diff)
add pkgAcquire::TransactionHasError()
Diffstat (limited to 'apt-pkg/acquire.cc')
-rw-r--r--apt-pkg/acquire.cc23
1 files changed, 20 insertions, 3 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 2e2e39d51..4b82fa46d 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -185,11 +185,21 @@ void pkgAcquire::AbortTransaction(unsigned long TransactionID)
{
if(_config->FindB("Debug::Acquire::Transaction", false) == true)
std::clog << " Cancel: " << (*I)->DestFile << std::endl;
- Dequeue(*I);
+ //Dequeue(*I);
(*I)->Status = pkgAcquire::Item::StatError;
}
}
/*}}}*/
+bool pkgAcquire::TransactionHasError(unsigned long TransactionID)
+{
+ std::vector<Item*> Transaction;
+ for (ItemIterator I = Items.begin(); I != Items.end(); ++I)
+ if((*I)->TransactionID == TransactionID)
+ if((*I)->Status == pkgAcquire::Item::StatError ||
+ (*I)->Status == pkgAcquire::Item::StatAuthError)
+ return true;
+ return false;
+}
// Acquire::CommitTransaction - Commit a transaction /*{{{*/
void pkgAcquire::CommitTransaction(unsigned long TransactionID)
{
@@ -201,18 +211,25 @@ void pkgAcquire::CommitTransaction(unsigned long TransactionID)
if((*I)->TransactionID == TransactionID)
Transaction.push_back(*I);
+ // move new files into place *and* remove files that are not
+ // part of the transaction but are still on disk
for (std::vector<Item*>::iterator I = Transaction.begin();
I != Transaction.end(); ++I)
{
- if((*I)->PartialFile != "" &&
- (*I)->Status == pkgAcquire::Item::StatDone)
+ if((*I)->PartialFile != "")
{
if(_config->FindB("Debug::Acquire::Transaction", false) == true)
std::clog << "mv "
<< (*I)->PartialFile << " -> "
<< (*I)->DestFile << std::endl;
+
Rename((*I)->PartialFile, (*I)->DestFile);
chmod((*I)->DestFile.c_str(),0644);
+ } else {
+ if(_config->FindB("Debug::Acquire::Transaction", false) == true)
+ std::clog << "rm "
+ << (*I)->DestFile << std::endl;
+ unlink((*I)->DestFile.c_str());
}
}
}