projects
/
apt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
debian/prerm: remove file as nobody will upgrade from 0.4.10 anymore
[apt.git]
/
apt-pkg
/
acquire.cc
diff --git
a/apt-pkg/acquire.cc
b/apt-pkg/acquire.cc
index fff1b2b6ad379b28603de987933b4523dc5c3f36..74510ae21aaaef46ff13aeb9578c8f4b295c99f7 100644
(file)
--- a/
apt-pkg/acquire.cc
+++ b/
apt-pkg/acquire.cc
@@
-13,9
+13,6
@@
##################################################################### */
/*}}}*/
// Include Files /*{{{*/
##################################################################### */
/*}}}*/
// Include Files /*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/acquire.h"
-#endif
#include <apt-pkg/acquire.h>
#include <apt-pkg/acquire-item.h>
#include <apt-pkg/acquire-worker.h>
#include <apt-pkg/acquire.h>
#include <apt-pkg/acquire-item.h>
#include <apt-pkg/acquire-worker.h>
@@
-27,7
+24,8
@@
#include <iostream>
#include <sstream>
#include <iostream>
#include <sstream>
-
+#include <stdio.h>
+
#include <dirent.h>
#include <sys/time.h>
#include <errno.h>
#include <dirent.h>
#include <sys/time.h>
#include <errno.h>
@@
-193,9
+191,9
@@
void pkgAcquire::Enqueue(ItemDesc &Item)
Item.Owner->Status = Item::StatIdle;
// Queue it into the named queue
Item.Owner->Status = Item::StatIdle;
// Queue it into the named queue
- I->Enqueue(Item);
- ToFetch++;
-
+ if(I->Enqueue(Item))
+
ToFetch++;
+
// Some trace stuff
if (Debug == true)
{
// Some trace stuff
if (Debug == true)
{
@@
-268,7
+266,7
@@
pkgAcquire::MethodConfig *pkgAcquire::GetConfig(string Access)
return 0;
/* if a method uses DownloadLimit, we switch to SingleInstance mode */
return 0;
/* if a method uses DownloadLimit, we switch to SingleInstance mode */
- if(_config->FindI("Acquire::"+Access+"::DlLimit",0) > 0)
+ if(_config->FindI("Acquire::"+Access+"::Dl
-
Limit",0) > 0)
Conf->SingleInstance = true;
return Conf;
Conf->SingleInstance = true;
return Conf;
@@
-447,8
+445,9
@@
bool pkgAcquire::Clean(string Dir)
unlink(Dir->d_name);
};
unlink(Dir->d_name);
};
- chdir(StartDir.c_str());
closedir(D);
closedir(D);
+ if (chdir(StartDir.c_str()) != 0)
+ return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str());
return true;
}
/*}}}*/
return true;
}
/*}}}*/
@@
-486,7
+485,7
@@
double pkgAcquire::PartialPresent()
Total += (*I)->PartialSize;
return Total;
}
Total += (*I)->PartialSize;
return Total;
}
-
+ /*}}}*/
// Acquire::UriBegin - Start iterator for the uri list /*{{{*/
// ---------------------------------------------------------------------
/* */
// Acquire::UriBegin - Start iterator for the uri list /*{{{*/
// ---------------------------------------------------------------------
/* */
@@
-503,7
+502,6
@@
pkgAcquire::UriIterator pkgAcquire::UriEnd()
return UriIterator(0);
}
/*}}}*/
return UriIterator(0);
}
/*}}}*/
-
// Acquire::MethodConfig::MethodConfig - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
// Acquire::MethodConfig::MethodConfig - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
@@
-517,7
+515,6
@@
pkgAcquire::MethodConfig::MethodConfig()
Next = 0;
}
/*}}}*/
Next = 0;
}
/*}}}*/
-
// Queue::Queue - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
// Queue::Queue - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
@@
-549,11
+546,17
@@
pkgAcquire::Queue::~Queue()
// Queue::Enqueue - Queue an item to the queue /*{{{*/
// ---------------------------------------------------------------------
/* */
// Queue::Enqueue - Queue an item to the queue /*{{{*/
// ---------------------------------------------------------------------
/* */
-
void
pkgAcquire::Queue::Enqueue(ItemDesc &Item)
+
bool
pkgAcquire::Queue::Enqueue(ItemDesc &Item)
{
QItem **I = &Items;
{
QItem **I = &Items;
- for (; *I != 0; I = &(*I)->Next);
-
+ // move to the end of the queue and check for duplicates here
+ for (; *I != 0; I = &(*I)->Next)
+ if (Item.URI == (*I)->URI)
+ {
+ Item.Owner->Status = Item::StatDone;
+ return false;
+ }
+
// Create a new item
QItem *Itm = new QItem;
*Itm = Item;
// Create a new item
QItem *Itm = new QItem;
*Itm = Item;
@@
-563,6
+566,7
@@
void pkgAcquire::Queue::Enqueue(ItemDesc &Item)
Item.Owner->QueueCounter++;
if (Items->Next == 0)
Cycle();
Item.Owner->QueueCounter++;
if (Items->Next == 0)
Cycle();
+ return true;
}
/*}}}*/
// Queue::Dequeue - Remove an item from the queue /*{{{*/
}
/*}}}*/
// Queue::Dequeue - Remove an item from the queue /*{{{*/
@@
-615,7
+619,7
@@
bool pkgAcquire::Queue::Startup()
added other source retry to have cycle maintain a pipeline depth
on its own. */
if (Cnf->Pipeline == true)
added other source retry to have cycle maintain a pipeline depth
on its own. */
if (Cnf->Pipeline == true)
- MaxPipeDepth =
10
;
+ MaxPipeDepth =
_config->FindI("Acquire::Max-Pipeline-Depth",10)
;
else
MaxPipeDepth = 1;
}
else
MaxPipeDepth = 1;
}
@@
-722,7
+726,6
@@
void pkgAcquire::Queue::Bump()
Cycle();
}
/*}}}*/
Cycle();
}
/*}}}*/
-
// AcquireStatus::pkgAcquireStatus - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
// AcquireStatus::pkgAcquireStatus - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
@@
-792,7
+795,7
@@
bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
// Compute the CPS
struct timeval NewTime;
gettimeofday(&NewTime,0);
// Compute the CPS
struct timeval NewTime;
gettimeofday(&NewTime,0);
- if (
NewTime.tv_sec - Time.tv_sec == 6 && NewTime.tv_usec > Time.tv_usec
||
+ if (
(NewTime.tv_sec - Time.tv_sec == 6 && NewTime.tv_usec > Time.tv_usec)
||
NewTime.tv_sec - Time.tv_sec > 6)
{
double Delta = NewTime.tv_sec - Time.tv_sec +
NewTime.tv_sec - Time.tv_sec > 6)
{
double Delta = NewTime.tv_sec - Time.tv_sec +