]> git.saurik.com Git - apt.git/commitdiff
* mirror method:
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 14 Mar 2011 10:34:32 +0000 (11:34 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 14 Mar 2011 10:34:32 +0000 (11:34 +0100)
  - when downloading data, show the mirror being used

apt-pkg/acquire-method.cc
apt-pkg/acquire-worker.cc
debian/changelog
methods/mirror.cc

index 17d52cf518b6c4f81c42706e8d30873dd7854946..29d53f2ac01a0a9945a79a0580275ab5604d1879 100644 (file)
@@ -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");
index 4f0b52af9739e213d5ef55d578bcbf5250c8f74e..ddd8e31018c5bcc028d4fe0c2183fc558876704d 100644 (file)
@@ -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)
index 6176aa87eaf1ebd06600e68931624a5d812c0686..efa7be76306f3ce224255bfe7a80ce14b19c2350 100644 (file)
@@ -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
 
index d092cc657c4363fe21f31accf665ee937afb6025..5a53d3c819fd44606f96dc03ecfb136b895c23cf 100644 (file)
@@ -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;
    }