Explorar el Código

* methods/gpgv.cc:
- deal with gpgs NODATA message

Michael Vogt hace 20 años
padre
commit
2abb68b77d
Se han modificado 2 ficheros con 10 adiciones y 1 borrados
  1. 3 0
      debian/changelog
  2. 7 1
      methods/gpgv.cc

+ 3 - 0
debian/changelog

@@ -12,6 +12,9 @@ apt (0.6.45) unstable; urgency=low
       messages (first half of a fix for #374195)
   * doc/examples/configure-index:
     - document Debug::pkgAcquire::Auth     
+  * methods/gpgv.cc:
+    - deal with gpg error "NODATA". Closes: #296103, Thanks to 
+      Luis Rodrigo Gallardo Cruz for the patch
   * Merged from Christian Perrier bzr branch:
     * ko.po: Updated to 512t. Closes: #378901
     * hu.po: Updated to 512t. Closes: #376330

+ 7 - 1
methods/gpgv.cc

@@ -17,6 +17,7 @@
 #define GNUPGBADSIG "[GNUPG:] BADSIG"
 #define GNUPGNOPUBKEY "[GNUPG:] NO_PUBKEY"
 #define GNUPGVALIDSIG "[GNUPG:] VALIDSIG"
+#define GNUPGNODATA "[GNUPG:] NODATA"
 
 class GPGVMethod : public pkgAcqMethod
 {
@@ -171,7 +172,12 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
             std::cerr << "Got NO_PUBKEY " << std::endl;
          NoPubKeySigners.push_back(string(buffer+sizeof(GNUPGPREFIX)));
       }
-
+      if (strncmp(buffer, GNUPGNODATA, sizeof(GNUPGBADSIG)-1) == 0)
+      {
+         if (_config->FindB("Debug::Acquire::gpgv", false))
+            std::cerr << "Got NODATA! " << std::endl;
+         BadSigners.push_back(string(buffer+sizeof(GNUPGPREFIX)));
+      }
       if (strncmp(buffer, GNUPGVALIDSIG, sizeof(GNUPGVALIDSIG)-1) == 0)
       {
          char *sig = buffer + sizeof(GNUPGPREFIX);