pkgAcquire::Queue::QItem *Itm = 0;
if (URI.empty() == false)
Itm = OwnerQ->FindItem(URI,this);
+
+ // update used mirror
+ string UsedMirror = LookupTag(Message,"UsedMirror", "");
+ if (!UsedMirror.empty() &&
+ Itm &&
+ Itm->Description.find(" ") != string::npos)
+ {
+ Itm->Description.replace(0, Itm->Description.find(" "), UsedMirror);
+ // FIXME: will we need this as well?
+ //Itm->ShortDesc = UsedMirror;
+ }
// Determine the message number and dispatch
switch (Number)
if (Res <= 0)
return MethodFailure();
-
- // Hmm.. this should never happen.
- if (Res < 0)
- return true;
OutQueue.erase(0,Res);
if (OutQueue.empty() == true)
{
_error->Error("Method %s has died unexpectedly!",Access.c_str());
- ExecWait(Process,Access.c_str(),true);
+ // do not reap the child here to show meaningfull error to the user
+ ExecWait(Process,Access.c_str(),false);
Process = -1;
close(InFd);
close(OutFd);