Take advantage of newer gpg-error features.
[gnupg.git] / sm / export.c
index b4450b2..0f01e5f 100644 (file)
@@ -15,7 +15,8 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ * USA.
  */
 
 #include <config.h>
@@ -116,7 +117,7 @@ insert_duptable (duptable_t *table, unsigned char *fpr, int *exists)
   /* Insert that fingerprint. */
   t = xtrymalloc (sizeof *t);
   if (!t)
-    return gpg_error_from_errno (errno);
+    return gpg_error_from_syserror ();
   memcpy (t->fpr, fpr+1, 19);
   t->next = table[idx];
   table[idx] = t;
@@ -128,7 +129,7 @@ insert_duptable (duptable_t *table, unsigned char *fpr, int *exists)
 
 /* Export all certificates or just those given in NAMES. */
 void
-gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp)
+gpgsm_export (ctrl_t ctrl, STRLIST names, FILE *fp)
 {
   KEYDB_HANDLE hd = NULL;
   KEYDB_SEARCH_DESC *desc = NULL;
@@ -169,7 +170,7 @@ gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp)
   if (!ndesc)
     {
       log_error ("allocating memory for export failed: %s\n",
-                 gpg_strerror (OUT_OF_CORE (errno)));
+                 gpg_strerror (out_of_core ()));
       goto leave;
     }
 
@@ -348,7 +349,7 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, FILE *fp)
   if (!desc)
     {
       log_error ("allocating memory for export failed: %s\n",
-                 gpg_strerror (OUT_OF_CORE (errno)));
+                 gpg_strerror (out_of_core ()));
       goto leave;
     }
 
@@ -520,6 +521,7 @@ popen_protect_tool (const char *pgmname,
   argv[i++] = "--homedir";
   argv[i++] = opt.homedir;
   argv[i++] = "--p12-export";
+  argv[i++] = "--have-cert";
   argv[i++] = "--prompt";
   argv[i++] = prompt?prompt:"";
   argv[i++] = "--enable-status-msg";
@@ -556,14 +558,14 @@ export_p12 (ctrl_t ctrl, const unsigned char *certimg, size_t certimglen,
   infp = tmpfile ();
   if (!infp)
     {
-      err = gpg_error_from_errno (errno);
+      err = gpg_error_from_syserror ();
       log_error (_("error creating temporary file: %s\n"), strerror (errno));
       goto cleanup;
     }
 
   if (fwrite (certimg, certimglen, 1, infp) != 1)
     {
-      err = gpg_error_from_errno (errno);
+      err = gpg_error_from_syserror ();
       log_error (_("error writing to temporary file: %s\n"),
                  strerror (errno));
       goto cleanup;
@@ -572,7 +574,7 @@ export_p12 (ctrl_t ctrl, const unsigned char *certimg, size_t certimglen,
   outfp = tmpfile ();
   if (!outfp)
     {
-      err = gpg_error_from_errno (errno);
+      err = gpg_error_from_syserror ();
       log_error (_("error creating temporary file: %s\n"), strerror (errno));
       goto cleanup;
     }