]> git.saurik.com Git - apt.git/commitdiff
* use pkgAcqMethod::FailReason() for consistent error reporting
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 5 Feb 2007 16:52:28 +0000 (17:52 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 5 Feb 2007 16:52:28 +0000 (17:52 +0100)
apt-pkg/acquire-item.cc
methods/connect.cc
methods/http.cc
methods/mirror.cc
po/apt-all.pot

index 0d3d6a083938cd885280094bb798ecfb17becde9..08a029ff4057dcc5e4bb5a9bb61d5692b5f5d66f 100644 (file)
@@ -82,8 +82,7 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
    }   
    
    // report mirror failure back to LP if we actually use a mirror
-   if(!UsedMirror.empty())
-      ReportMirrorFailure(ErrorText);
+   ReportMirrorFailure(ErrorText);
 }
                                                                        /*}}}*/
 // Acquire::Item::Start - Item has begun to download                   /*{{{*/
@@ -138,10 +137,13 @@ void pkgAcquire::Item::Rename(string From,string To)
 
 void pkgAcquire::Item::ReportMirrorFailure(string FailCode)
 {
-   // report that Queue->Uri failed
+   // we only act if a mirror was used at all
+   if(UsedMirror.empty())
+      return;
 #if 0
    std::cerr << "\nReportMirrorFailure: " 
             << UsedMirror
+            << " Uri: " << DescURI()
             << " FailCode: " 
             << FailCode << std::endl;
 #endif
@@ -278,6 +280,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5,
          Status = StatAuthError;
          ErrorText = _("MD5Sum mismatch");
          Rename(DestFile,DestFile + ".FAILED");
+        ReportMirrorFailure("HashChecksumFailure");
          return;
       }
       // Done, move it into position
@@ -765,6 +768,7 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
       }
 
       // gpgv method failed 
+      ReportMirrorFailure("GPGFailure");
       _error->Warning("GPG error: %s: %s",
                       Desc.Description.c_str(),
                       LookupTag(Message,"Message").c_str());
index 4e227c3fd655d63e7b2c548e9d7c032d9d9c8b2f..145001fb37c2aa637cfaecca46b944a0acc2b001 100644 (file)
@@ -163,6 +163,7 @@ bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd,
                  DefPort = 0;
                  continue;
               }
+              Owner->SetFailReason("ResolveFailure");
               return _error->Error(_("Could not resolve '%s'"),Host.c_str());
            }
            
index deaa8d0c851050ed191e01533ded25fe68b1b4ab..01ad146557ff09905346c0c278e9f990e8a1839d 100644 (file)
@@ -914,6 +914,9 @@ int HttpMethod::DealWithHeaders(FetchResult &Res,ServerState *Srv)
       failure */
    if (Srv->Result < 200 || Srv->Result >= 300)
    {
+      char err[255];
+      snprintf(err,sizeof(err)-1,"HttpError%i",Srv->Result);
+      SetFailReason(err);
       _error->Error("%u %s",Srv->Result,Srv->Code);
       if (Srv->HaveContent == true)
         return 4;
index 8ccfb8559cc4753471d22cd20e8d9fb70bd413c9..b64879bec19429929a403b5c98652c7da573d1fd 100644 (file)
@@ -31,20 +31,14 @@ using namespace std;
                                                                        /*}}}*/
 
 /* Done:
- * - works with http only
+ * - works with http (only!)
  * - always picks the first mirror from the list
  * - call out to problem reporting script
  * - supports "deb mirror://host/path/to/mirror-list/// dist component"
+ * - use pkgAcqMethod::FailReason() to have a string representation
+ *   of the failure that is also send to LP
  * 
  * TODO: 
- * what about gpgv  failures? this should call-out to the problem reporting
-   script, but we need to know what mirror was used -> just run pkgAcquire::Item::ReportMirrorFailure()
- * better standard format for errors to send back 
- * - implement failure reporting  at the pkgAcquire::Item::Failed() level 
-     but then we need to send back what uri exactly was failing 
-     [mvo: the problem with this approach is ::Failed() is not really
-           called for all failures :/ e.g. md5sum mismatch in a archive
-           is not]
  * - deal with runing as non-root because we can't write to the lists 
      dir then -> use the cached mirror file
  * - better method to download than having a pkgAcquire interface here
index 39759f265854afbb381cf843c58fdd6d861ff227..f24f19ba7aeef8437af81d789b0c29a5ff88dbcd 100644 (file)
@@ -1330,7 +1330,7 @@ msgstr ""
 
 #: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750
 #: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324
-#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 methods/mirror.cc:96
+#: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 methods/mirror.cc:98
 #, c-format
 msgid "Unable to read %s"
 msgstr ""
@@ -1621,7 +1621,7 @@ msgstr ""
 msgid "Unable to accept connection"
 msgstr ""
 
-#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303
+#: methods/ftp.cc:864 methods/http.cc:960 methods/rsh.cc:303
 msgid "Problem hashing file"
 msgstr ""
 
@@ -1685,22 +1685,22 @@ msgstr ""
 msgid "Connecting to %s"
 msgstr ""
 
-#: methods/connect.cc:166
+#: methods/connect.cc:167
 #, c-format
 msgid "Could not resolve '%s'"
 msgstr ""
 
-#: methods/connect.cc:172
+#: methods/connect.cc:173
 #, c-format
 msgid "Temporary failure resolving '%s'"
 msgstr ""
 
-#: methods/connect.cc:175
+#: methods/connect.cc:176
 #, c-format
 msgid "Something wicked happened resolving '%s:%s' (%i)"
 msgstr ""
 
-#: methods/connect.cc:222
+#: methods/connect.cc:223
 #, c-format
 msgid "Unable to connect to %s %s:"
 msgstr ""
@@ -1813,15 +1813,15 @@ msgstr ""
 msgid "Error reading from server"
 msgstr ""
 
-#: methods/http.cc:1106
+#: methods/http.cc:1109
 msgid "Bad header data"
 msgstr ""
 
-#: methods/http.cc:1123
+#: methods/http.cc:1126
 msgid "Connection failed"
 msgstr ""
 
-#: methods/http.cc:1214
+#: methods/http.cc:1217
 msgid "Internal error"
 msgstr ""
 
@@ -1956,7 +1956,7 @@ msgid "Unable to stat the mount point %s"
 msgstr ""
 
 #: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44
-#: methods/mirror.cc:102
+#: methods/mirror.cc:104
 #, c-format
 msgid "Unable to change to %s"
 msgstr ""
@@ -2357,40 +2357,40 @@ msgstr ""
 msgid "IO Error saving source cache"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:131
+#: apt-pkg/acquire-item.cc:130
 #, c-format
 msgid "rename failed, %s (%s -> %s)."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:279 apt-pkg/acquire-item.cc:988
+#: apt-pkg/acquire-item.cc:281 apt-pkg/acquire-item.cc:992
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:683
+#: apt-pkg/acquire-item.cc:686
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:796
+#: apt-pkg/acquire-item.cc:800
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:855
+#: apt-pkg/acquire-item.cc:859
 #, c-format
 msgid ""
 "I wasn't able to locate file for the %s package. This might mean you need to "
 "manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:891
+#: apt-pkg/acquire-item.cc:895
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:978
+#: apt-pkg/acquire-item.cc:982
 msgid "Size mismatch"
 msgstr ""