]> git.saurik.com Git - apt.git/blobdiff - methods/gpgv.cc
merge with the debian tree
[apt.git] / methods / gpgv.cc
index ba7389cbaef5a6188cfff4f48bc32ceee12ec50a..2b1fa51691e26b9350f01f7b5ffcd9db22e22278 100644 (file)
@@ -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
 {
@@ -120,9 +121,9 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
       // Redirect the pipe to the status fd (3)
       dup2(fd[1], 3);
 
-      putenv("LANG=");
-      putenv("LC_ALL=");
-      putenv("LC_MESSAGES=");
+      putenv((char *)"LANG=");
+      putenv((char *)"LC_ALL=");
+      putenv((char *)"LC_MESSAGES=");
       execvp(gpgvpath.c_str(), (char **)Args);
              
       exit(111);
@@ -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);