From 1b6d659c38ff5fd44aa4bc22f28cfeae43e8f8f5 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:54:59 +0000 Subject: Fixed locking of archives dir Author: jgg Date: 1999-10-24 06:03:48 GMT Fixed locking of archives dir --- cmdline/apt-get.cc | 20 +++++++++++++++++++- debian/changelog | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index a30c9833d..d7727c7d3 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: apt-get.cc,v 1.83 1999/10/22 05:58:54 jgg Exp $ +// $Id: apt-get.cc,v 1.84 1999/10/24 06:03:48 jgg Exp $ /* ###################################################################### apt-get - Cover for dpkg @@ -1216,6 +1216,15 @@ bool DoDSelectUpgrade(CommandLine &CmdL) /* */ bool DoClean(CommandLine &CmdL) { + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); + if (_error->PendingError() == true) + return _error->Error("Unable to lock the download directory"); + } + pkgAcquire Fetcher; Fetcher.Clean(_config->FindDir("Dir::Cache::archives")); Fetcher.Clean(_config->FindDir("Dir::Cache::archives") + "partial/"); @@ -1240,6 +1249,15 @@ class LogCleaner : public pkgArchiveCleaner bool DoAutoClean(CommandLine &CmdL) { + // Lock the archive directory + FileFd Lock; + if (_config->FindB("Debug::NoLocking",false) == false) + { + Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); + if (_error->PendingError() == true) + return _error->Error("Unable to lock the download directory"); + } + CacheFile Cache; if (Cache.Open() == false) return false; diff --git a/debian/changelog b/debian/changelog index c51691eb1..2a2cf4ebf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,11 +20,11 @@ apt (0.3.13.1) unstable; urgency=low * Checks for the partial directories before doing downloads Closes: #47392 * no_proxy environment variable (http only!) Closes: #43476 * apt-cache showsrc Closes: #45799 - * De-Refs Single Pure virtual packages. Closes: #42437, #43555 * Regexs for install. Closes: #35304, #38835 * Dependency reports now show OR group relations * Re-Install feature. Cloes: #46961, #37393, #38919 + * Locks archive directory on clean (woops) -- Jason Gunthorpe Fri, 3 Sep 1999 09:04:28 -0700 -- cgit v1.2.3