summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2011-03-14 11:34:32 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2011-03-14 11:34:32 +0100
commit196fd13629fc0f673b18735d633bdf69a3272590 (patch)
tree7217babb8ca4b9cf64d8ad0b9ea973fb30f7a6f4
parentd6cc7079e895e76ad9d086fcc6a40224dd41bb62 (diff)
downloadapt-196fd13629fc0f673b18735d633bdf69a3272590.tar.gz
* mirror method:
- when downloading data, show the mirror being used
-rw-r--r--apt-pkg/acquire-method.cc17
-rw-r--r--apt-pkg/acquire-worker.cc11
-rw-r--r--debian/changelog2
-rw-r--r--methods/mirror.cc4
4 files changed, 29 insertions, 5 deletions
diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc
index 17d52cf51..29d53f2ac 100644
--- a/apt-pkg/acquire-method.cc
+++ b/apt-pkg/acquire-method.cc
@@ -149,6 +149,8 @@ void pkgAcqMethod::URIStart(FetchResult &Res)
if (Res.ResumePoint != 0)
End += snprintf(End,sizeof(S)-4 - (End - S),"Resume-Point: %lu\n",
Res.ResumePoint);
+ if (UsedMirror.empty() == false)
+ End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str());
strcat(End,"\n");
if (write(STDOUT_FILENO,S,strlen(S)) != (signed)strlen(S))
@@ -418,9 +420,11 @@ void pkgAcqMethod::Log(const char *Format,...)
// sprintf the description
char S[1024];
- unsigned int Len = snprintf(S,sizeof(S)-4,"101 Log\nURI: %s\n"
- "Message: ",CurrentURI.c_str());
-
+ unsigned int Len = snprintf(S,sizeof(S)-4,"101 Log\n"
+ "URI: %s\n"
+ "UsedMirror: %s\n"
+ "Message: ", UsedMirror.c_str(),
+ CurrentURI.c_str());
vsnprintf(S+Len,sizeof(S)-4-Len,Format,args);
strcat(S,"\n\n");
@@ -442,8 +446,11 @@ void pkgAcqMethod::Status(const char *Format,...)
// sprintf the description
char S[1024];
- unsigned int Len = snprintf(S,sizeof(S)-4,"102 Status\nURI: %s\n"
- "Message: ",CurrentURI.c_str());
+ unsigned int Len = snprintf(S,sizeof(S)-4,"102 Status\n"
+ "URI: %s\n"
+ "UsedMirror: %s\n"
+ "Message: ",UsedMirror.c_str(),
+ CurrentURI.c_str());
vsnprintf(S+Len,sizeof(S)-4-Len,Format,args);
strcat(S,"\n\n");
diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc
index 4f0b52af9..ddd8e3101 100644
--- a/apt-pkg/acquire-worker.cc
+++ b/apt-pkg/acquire-worker.cc
@@ -199,6 +199,17 @@ bool pkgAcquire::Worker::RunMessages()
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)
diff --git a/debian/changelog b/debian/changelog
index 6176aa87e..efa7be763 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ apt (0.8.13) unstable; urgency=low
* apt-pkg/acquire-item.cc:
- mark pkgAcqIndexTrans as Index-File to avoid asking the
user to insert the CD on each apt-get update
+ * mirror method:
+ - when downloading data, show the mirror being used
-- Michael Vogt <michael.vogt@ubuntu.com> Thu, 10 Mar 2011 15:56:54 +0100
diff --git a/methods/mirror.cc b/methods/mirror.cc
index d092cc657..5a53d3c81 100644
--- a/methods/mirror.cc
+++ b/methods/mirror.cc
@@ -186,6 +186,10 @@ bool MirrorMethod::TryNextMirror()
Queue->Uri.replace(0, mirror->length(), *nextmirror);
if (Debug)
clog << "TryNextMirror: " << Queue->Uri << endl;
+
+ // inform parent
+ UsedMirror = *nextmirror;
+ Log("Switching mirror");
return true;
}