aboutsummaryrefslogtreecommitdiffstats
path: root/kbx
diff options
context:
space:
mode:
Diffstat (limited to 'kbx')
-rw-r--r--kbx/ChangeLog8
-rw-r--r--kbx/Makefile.am9
-rw-r--r--kbx/keybox-blob.c32
-rw-r--r--kbx/keybox-defs.h7
-rw-r--r--kbx/keybox-dump.c8
-rw-r--r--kbx/keybox-file.c22
-rw-r--r--kbx/keybox-init.c2
-rw-r--r--kbx/keybox-search.c38
-rw-r--r--kbx/keybox-update.c74
-rw-r--r--kbx/keybox.h26
10 files changed, 110 insertions, 116 deletions
diff --git a/kbx/ChangeLog b/kbx/ChangeLog
index 14c225fea..af6e6b016 100644
--- a/kbx/ChangeLog
+++ b/kbx/ChangeLog
@@ -1,3 +1,11 @@
+2003-06-03 Werner Koch <[email protected]>
+
+ Changed all error codes in all files to the new libgpg-error scheme.
+
+ * keybox-defs.h: Include gpg-error.h .
+ (KeyboxError): Removed.
+ * Makefile.am: Removed keybox-error.c stuff.
+
2002-11-14 Werner Koch <[email protected]>
* keybox-search.c (blob_cmp_name) <compare all names>: Fixed
diff --git a/kbx/Makefile.am b/kbx/Makefile.am
index 78d5df26d..ada2963d9 100644
--- a/kbx/Makefile.am
+++ b/kbx/Makefile.am
@@ -1,5 +1,5 @@
# Keybox Makefile
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
@@ -24,7 +24,6 @@ INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
EXTRA_DIST = mkerrors
AM_CPPFLAGS = $(KSBA_CFLAGS) $(LIBGCRYPT_CFLAGS)
-BUILT_SOURCES = keybox-errors.c
noinst_LIBRARIES = libkeybox.a
bin_PROGRAMS = kbxutil
@@ -32,7 +31,6 @@ bin_PROGRAMS = kbxutil
common_sources = \
keybox.h keybox-defs.h keybox-search-desc.h \
keybox-util.c \
- keybox-errors.c \
keybox-init.c \
keybox-blob.c \
keybox-file.c \
@@ -44,10 +42,7 @@ common_sources = \
libkeybox_a_SOURCES = $(common_sources)
kbxutil_SOURCES = kbxutil.c $(common_sources)
-kbxutil_LDADD = ../jnlib/libjnlib.a $(KSBA_LIBS) $(LIBGCRYPT_LIBS)
-
-keybox-errors.c : keybox.h mkerrors
- $(srcdir)/mkerrors < $(srcdir)/keybox.h > keybox-errors.c
+kbxutil_LDADD = ../jnlib/libjnlib.a $(KSBA_LIBS) $(LIBGCRYPT_LIBS) -lgpg-error
diff --git a/kbx/keybox-blob.c b/kbx/keybox-blob.c
index 48e2b5b87..709d5f5e1 100644
--- a/kbx/keybox-blob.c
+++ b/kbx/keybox-blob.c
@@ -1,5 +1,5 @@
/* keybox-blob.c - KBX Blob handling
- * Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -489,7 +489,7 @@ x509_create_blob_cert (KEYBOXBLOB blob, KsbaCert cert)
image = ksba_cert_get_image (cert, &length);
if (!image)
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
put_membuf (a, image, length);
add_fixup (blob, 12, a->len - kbstart);
@@ -651,7 +651,7 @@ create_blob_finish (KEYBOXBLOB blob)
/* get the memory area */
p = get_membuf (a, &n);
if (!p)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (GPG_ERR_ENOMEM);
assert (n >= 20);
/* fixup the length */
@@ -659,7 +659,7 @@ create_blob_finish (KEYBOXBLOB blob)
/* do the fixups */
if (blob->fixup_out_of_core)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (GPG_ERR_ENOMEM);
{
struct fixup_list *fl;
@@ -678,7 +678,7 @@ create_blob_finish (KEYBOXBLOB blob)
pp = xtrymalloc (n);
if ( !pp )
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
memcpy (pp , p, n);
blob->blob = pp;
blob->bloblen = n;
@@ -698,8 +698,8 @@ _keybox_create_pgp_blob (KEYBOXBLOB *r_blob, KBNODE keyblock, int as_ephemeral)
*r_blob = NULL;
blob = xtrycalloc (1, sizeof *blob);
- if( !blob )
- return KEYBOX_Out_Of_Core;
+ if (!blob)
+ return gpg_error (gpg_err_code_from_errno (errno));
/* fixme: Do some sanity checks on the keyblock */
@@ -723,7 +723,7 @@ _keybox_create_pgp_blob (KEYBOXBLOB *r_blob, KBNODE keyblock, int as_ephemeral)
blob->sigs = xtrycalloc (blob->nsigs, sizeof *blob->sigs );
if (!blob->keys || !blob->uids || !blob->sigs)
{
- rc = KEYBOX_Out_Of_Core;
+ rc = gpg_error (GPG_ERR_ENOMEM);
goto leave;
}
@@ -818,7 +818,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
*r_blob = NULL;
blob = xtrycalloc (1, sizeof *blob);
if( !blob )
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
p = ksba_cert_get_serial (cert);
if (p)
@@ -828,7 +828,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
if (n < 2)
{
xfree (p);
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
}
blob->serialbuf = p;
p++; n--; /* skip '(' */
@@ -838,7 +838,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
{
xfree (blob->serialbuf);
blob->serialbuf = NULL;
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
}
p++;
blob->serial = p;
@@ -853,13 +853,13 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
names = xtrymalloc (max_names * sizeof *names);
if (!names)
{
- rc = KEYBOX_Out_Of_Core;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
p = ksba_cert_get_issuer (cert, 0);
if (!p)
{
- rc = KEYBOX_Missing_Value;
+ rc = gpg_error (GPG_ERR_MISSING_VALUE);
goto leave;
}
names[blob->nuids++] = p;
@@ -874,7 +874,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
tmp = xtryrealloc (names, max_names * sizeof *names);
if (!tmp)
{
- rc = KEYBOX_Out_Of_Core;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
@@ -891,7 +891,7 @@ _keybox_create_x509_blob (KEYBOXBLOB *r_blob, KsbaCert cert,
blob->sigs = xtrycalloc (blob->nsigs, sizeof *blob->sigs );
if (!blob->keys || !blob->uids || !blob->sigs)
{
- rc = KEYBOX_Out_Of_Core;
+ rc = gpg_error (GPG_ERR_ENOMEM);
goto leave;
}
@@ -964,7 +964,7 @@ _keybox_new_blob (KEYBOXBLOB *r_blob, char *image, size_t imagelen, off_t off)
*r_blob = NULL;
blob = xtrycalloc (1, sizeof *blob);
if (!blob)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
blob->blob = image;
blob->bloblen = imagelen;
diff --git a/kbx/keybox-defs.h b/kbx/keybox-defs.h
index 1c66020f7..e4578d76b 100644
--- a/kbx/keybox-defs.h
+++ b/kbx/keybox-defs.h
@@ -24,6 +24,13 @@
#include <sys/types.h> /* off_t */
#include "keybox.h"
+#ifdef GPG_ERR_SOURCE_DEFAULT
+#error GPG_ERR_SOURCE_DEFAULT already defined
+#endif
+#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_KEYBOX
+#include <gpg-error.h>
+
+
#ifndef HAVE_BYTE_TYPEDEF
typedef unsigned char byte; /* fixme */
#endif
diff --git a/kbx/keybox-dump.c b/kbx/keybox-dump.c
index 4fb3a4eb2..2177bedae 100644
--- a/kbx/keybox-dump.c
+++ b/kbx/keybox-dump.c
@@ -1,5 +1,5 @@
/* keybox-dump.c - Debug helpers
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -322,8 +322,9 @@ _keybox_dump_file (const char *filename, FILE *outfp)
fp = fopen (filename, "rb");
if (!fp)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
fprintf (outfp, "can't open `%s': %s\n", filename, strerror(errno));
- return KEYBOX_File_Error;
+ return tmperr;
}
while ( !(rc = _keybox_read_blob (&blob, fp)) )
@@ -337,8 +338,7 @@ _keybox_dump_file (const char *filename, FILE *outfp)
if (rc == -1)
rc = 0;
if (rc)
- fprintf (outfp, "error reading `%s': %s\n", filename,
- rc == KEYBOX_Read_Error? keybox_strerror(rc):strerror (errno));
+ fprintf (outfp, "error reading `%s': %s\n", filename, gpg_strerror (rc));
if (fp != stdin)
fclose (fp);
diff --git a/kbx/keybox-file.c b/kbx/keybox-file.c
index bbbf78e3c..fc9321478 100644
--- a/kbx/keybox-file.c
+++ b/kbx/keybox-file.c
@@ -1,5 +1,5 @@
/* keybox-file.c - file oeprations
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#include "keybox-defs.h"
@@ -40,7 +41,7 @@ _keybox_read_blob (KEYBOXBLOB *r_blob, FILE *fp)
*r_blob = NULL;
off = ftello (fp);
if (off == (off_t)-1)
- return KEYBOX_Read_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
if ((c1 = getc (fp)) == EOF
|| (c2 = getc (fp)) == EOF
@@ -50,33 +51,34 @@ _keybox_read_blob (KEYBOXBLOB *r_blob, FILE *fp)
{
if ( c1 == EOF && !ferror (fp) )
return -1; /* eof */
- return KEYBOX_Read_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
}
imagelen = (c1 << 24) | (c2 << 16) | (c3 << 8 ) | c4;
if (imagelen > 500000) /* sanity check */
- return KEYBOX_Blob_Too_Large;
+ return gpg_error (GPG_ERR_TOO_LARGE);
if (imagelen < 5)
- return KEYBOX_Blob_Too_Short;
+ return gpg_error (GPG_ERR_TOO_SHORT);
if (!type)
{
/* special treatment for empty blobs. */
if (fseek (fp, imagelen-5, SEEK_CUR))
- return KEYBOX_Read_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
goto again;
}
image = xtrymalloc (imagelen);
if (!image)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
image[0] = c1; image[1] = c2; image[2] = c3; image[3] = c4; image[4] = type;
if (fread (image+5, imagelen-5, 1, fp) != 1)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
xfree (image);
- return KEYBOX_Read_Error;
+ return tmperr;
}
rc = r_blob? _keybox_new_blob (r_blob, image, imagelen, off) : 0;
@@ -95,8 +97,6 @@ _keybox_write_blob (KEYBOXBLOB blob, FILE *fp)
image = _keybox_get_blob_image (blob, &length);
if (fwrite (image, length, 1, fp) != 1)
- {
- return KEYBOX_Write_Error;
- }
+ return gpg_error (gpg_err_code_from_errno (errno));
return 0;
}
diff --git a/kbx/keybox-init.c b/kbx/keybox-init.c
index b1d279999..e11c4f09c 100644
--- a/kbx/keybox-init.c
+++ b/kbx/keybox-init.c
@@ -120,7 +120,7 @@ int
keybox_set_ephemeral (KEYBOX_HANDLE hd, int yes)
{
if (!hd)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
hd->ephemeral = yes;
return 0;
}
diff --git a/kbx/keybox-search.c b/kbx/keybox-search.c
index a96b0c205..231a32d42 100644
--- a/kbx/keybox-search.c
+++ b/kbx/keybox-search.c
@@ -1,5 +1,5 @@
/* keybox-search.c - Search operations
- * Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <string.h>
#include <assert.h>
+#include <errno.h>
#include "../jnlib/stringhelp.h" /* ascii_xxxx() */
#include "keybox-defs.h"
@@ -481,7 +482,7 @@ int
keybox_search_reset (KEYBOX_HANDLE hd)
{
if (!hd)
- return KEYBOX_Invalid_Value;
+ return gpg_error (GPG_ERR_INV_VALUE);
if (hd->found.blob)
{
@@ -512,7 +513,7 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
struct sn_array_s *sn_array = NULL;
if (!hd)
- return KEYBOX_Invalid_Value;
+ return gpg_error (GPG_ERR_INV_VALUE);
/* clear last found result */
if (hd->found.blob)
@@ -548,7 +549,7 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
{
sn_array = xtrycalloc (ndesc, sizeof *sn_array);
if (!sn_array)
- return (hd->error = KEYBOX_Out_Of_Core);
+ return (hd->error = gpg_error (gpg_err_code_from_errno (errno)));
}
}
@@ -557,8 +558,9 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
hd->fp = fopen (hd->kb->fname, "rb");
if (!hd->fp)
{
+ hd->error = gpg_error (gpg_err_code_from_errno (errno));
xfree (sn_array);
- return (hd->error = KEYBOX_File_Open_Error);
+ return hd->error;
}
}
@@ -588,8 +590,9 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
sn_array[n].sn = xtrymalloc (snlen);
if (!sn_array[n].sn)
{
+ hd->error = gpg_error (gpg_err_code_from_errno (errno));
release_sn_array (sn_array, n);
- return (hd->error = KEYBOX_Out_Of_Core);
+ return hd->error;
}
sn_array[n].snlen = snlen;
sn = sn_array[n].sn;
@@ -611,8 +614,9 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
sn_array[n].sn = xtrymalloc (snlen);
if (!sn_array[n].sn)
{
+ hd->error = gpg_error (gpg_err_code_from_errno (errno));
release_sn_array (sn_array, n);
- return (hd->error = KEYBOX_Out_Of_Core);
+ return hd->error;
}
sn_array[n].snlen = snlen;
memcpy (sn_array[n].sn, sn, snlen);
@@ -700,7 +704,7 @@ keybox_search (KEYBOX_HANDLE hd, KEYBOX_SEARCH_DESC *desc, size_t ndesc)
goto found;
break;
default:
- rc = KEYBOX_Invalid_Value;
+ rc = gpg_error (GPG_ERR_INV_VALUE);
goto found;
}
}
@@ -759,37 +763,37 @@ keybox_get_cert (KEYBOX_HANDLE hd, KsbaCert *r_cert)
int rc;
if (!hd)
- return KEYBOX_Invalid_Value;
+ return gpg_error (GPG_ERR_INV_VALUE);
if (!hd->found.blob)
- return KEYBOX_Nothing_Found;
+ return gpg_error (GPG_ERR_NOTHING_FOUND);
if (blob_get_type (hd->found.blob) != BLOBTYPE_X509)
- return KEYBOX_Wrong_Blob_Type;
+ return gpg_error (GPG_ERR_WRONG_BLOB_TYPE);
buffer = _keybox_get_blob_image (hd->found.blob, &length);
if (length < 40)
- return KEYBOX_Blob_Too_Short;
+ return gpg_error (GPG_ERR_TOO_SHORT);
cert_off = get32 (buffer+8);
cert_len = get32 (buffer+12);
if (cert_off+cert_len > length)
- return KEYBOX_Blob_Too_Short;
+ return gpg_error (GPG_ERR_TOO_SHORT);
reader = ksba_reader_new ();
if (!reader)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (GPG_ERR_ENOMEM);
rc = ksba_reader_set_mem (reader, buffer+cert_off, cert_len);
if (rc)
{
ksba_reader_release (reader);
/* fixme: need to map the error codes */
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
}
cert = ksba_cert_new ();
if (!cert)
{
ksba_reader_release (reader);
- return KEYBOX_Out_Of_Core;
+ return gpg_error (GPG_ERR_ENOMEM);
}
rc = ksba_cert_read_der (cert, reader);
@@ -798,7 +802,7 @@ keybox_get_cert (KEYBOX_HANDLE hd, KsbaCert *r_cert)
ksba_cert_release (cert);
ksba_reader_release (reader);
/* fixme: need to map the error codes */
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
}
*r_cert = cert;
diff --git a/kbx/keybox-update.c b/kbx/keybox-update.c
index 8b189bbed..52ad258b0 100644
--- a/kbx/keybox-update.c
+++ b/kbx/keybox-update.c
@@ -1,5 +1,5 @@
/* keybox-update.c - keybox update operations
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -50,15 +50,16 @@ create_tmp_file (const char *template,
{
bakfname = xtrymalloc (strlen (template) + 1);
if (!bakfname)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
strcpy (bakfname, template);
strcpy (bakfname+strlen(template)-4, EXTSEP_S "bak");
tmpfname = xtrymalloc (strlen (template) + 1);
if (!tmpfname)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
xfree (bakfname);
- return KEYBOX_Out_Of_Core;
+ return tmperr;
}
strcpy (tmpfname,template);
strcpy (tmpfname + strlen (template)-4, EXTSEP_S "tmp");
@@ -67,28 +68,30 @@ create_tmp_file (const char *template,
{ /* file does not end with kbx; hmmm */
bakfname = xtrymalloc ( strlen (template) + 5);
if (!bakfname)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
strcpy (stpcpy (bakfname, template), EXTSEP_S "bak");
tmpfname = xtrymalloc ( strlen (template) + 5);
if (!tmpfname)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
xfree (bakfname);
- return KEYBOX_Out_Of_Core;
+ return tmperr;
}
strcpy (stpcpy (tmpfname, template), EXTSEP_S "tmp");
}
# else /* Posix file names */
bakfname = xtrymalloc (strlen (template) + 2);
if (!bakfname)
- return KEYBOX_Out_Of_Core;
+ return gpg_error (gpg_err_code_from_errno (errno));
strcpy (stpcpy (bakfname,template),"~");
tmpfname = xtrymalloc ( strlen (template) + 5);
if (!tmpfname)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
xfree (bakfname);
- return KEYBOX_Out_Of_Core;
+ return tmperr;
}
strcpy (stpcpy (tmpfname,template), EXTSEP_S "tmp");
# endif /* Posix filename */
@@ -96,9 +99,10 @@ create_tmp_file (const char *template,
*r_fp = fopen (tmpfname, "wb");
if (!*r_fp)
{
+ gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
xfree (tmpfname);
xfree (bakfname);
- return KEYBOX_File_Create_Error;
+ return tmperr;
}
*r_bakfname = bakfname;
@@ -139,7 +143,7 @@ rename_tmp_file (const char *bakfname, const char *tmpfname,
#endif
if (rename (fname, bakfname) )
{
- return KEYBOX_File_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
}
}
@@ -149,7 +153,7 @@ rename_tmp_file (const char *bakfname, const char *tmpfname,
#endif
if (rename (tmpfname, fname) )
{
- rc = KEYBOX_File_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
if (secret)
{
/* log_info ("WARNING: 2 files with confidential" */
@@ -185,7 +189,7 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
/* Open the source file. Because we do a rename, we have to check the
permissions of the file */
if (access (fname, W_OK))
- return KEYBOX_Write_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
fp = fopen (fname, "rb");
if (mode == 1 && !fp && errno == ENOENT)
@@ -193,7 +197,7 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
newfp = fopen (fname, "wb");
if (!newfp )
{
- return KEYBOX_File_Create_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
}
rc = _keybox_write_blob (blob, newfp);
@@ -203,7 +207,7 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
}
if ( fclose (newfp) )
{
- return KEYBOX_File_Create_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
}
/* if (chmod( fname, S_IRUSR | S_IWUSR )) */
@@ -216,7 +220,7 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
if (!fp)
{
- rc = KEYBOX_File_Open_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
@@ -236,13 +240,13 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
{
if (fwrite (buffer, nread, 1, newfp) != 1)
{
- rc = KEYBOX_Write_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
if (ferror (fp))
{
- rc = KEYBOX_Read_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
@@ -265,14 +269,14 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
if (fwrite (buffer, nread, 1, newfp) != 1)
{
- rc = KEYBOX_Write_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
if (ferror (fp))
{
- rc = KEYBOX_Read_Error;
- goto leave;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
+ goto leave;
}
/* skip this blob */
@@ -296,13 +300,13 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
{
if (fwrite (buffer, nread, 1, newfp) != 1)
{
- rc = KEYBOX_Write_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
if (ferror (fp))
{
- rc = KEYBOX_Read_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
}
@@ -310,13 +314,13 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob,
/* close both files */
if (fclose(fp))
{
- rc = KEYBOX_File_Close_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
fclose (newfp);
goto leave;
}
if (fclose(newfp))
{
- rc = KEYBOX_File_Close_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
goto leave;
}
@@ -341,12 +345,12 @@ keybox_insert_cert (KEYBOX_HANDLE hd, KsbaCert cert,
KEYBOXBLOB blob;
if (!hd)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
if (!hd->kb)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
fname = hd->kb->fname;
if (!fname)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
/* close this one otherwise we will mess up the position for a next
search. Fixme: it would be better to adjust the position after
@@ -390,18 +394,18 @@ keybox_delete (KEYBOX_HANDLE hd)
int rc;
if (!hd)
- return KEYBOX_Invalid_Value;
+ return gpg_error (GPG_ERR_INV_VALUE);
if (!hd->found.blob)
- return KEYBOX_Nothing_Found;
+ return gpg_error (GPG_ERR_NOTHING_FOUND);
if (!hd->kb)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
fname = hd->kb->fname;
if (!fname)
- return KEYBOX_Invalid_Handle;
+ return gpg_error (GPG_ERR_INV_HANDLE);
off = _keybox_get_blob_fileoffset (hd->found.blob);
if (off == (off_t)-1)
- return KEYBOX_General_Error;
+ return gpg_error (GPG_ERR_GENERAL);
off += 4;
if (hd->fp)
@@ -412,19 +416,19 @@ keybox_delete (KEYBOX_HANDLE hd)
fp = fopen (hd->kb->fname, "r+b");
if (!fp)
- return KEYBOX_File_Open_Error;
+ return gpg_error (gpg_err_code_from_errno (errno));
if (fseeko (fp, off, SEEK_SET))
- rc = KEYBOX_Write_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
else if (putc (0, fp) == EOF)
- rc = KEYBOX_Write_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
else
rc = 0;
if (fclose (fp))
{
if (!rc)
- rc = KEYBOX_File_Close_Error;
+ rc = gpg_error (gpg_err_code_from_errno (errno));
}
return rc;
diff --git a/kbx/keybox.h b/kbx/keybox.h
index a763ec837..5fe5516d4 100644
--- a/kbx/keybox.h
+++ b/kbx/keybox.h
@@ -1,5 +1,5 @@
/* keybox.h - Keybox operations
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2003 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -43,27 +43,6 @@ extern "C" {
#endif
-typedef enum {
- KEYBOX_No_Error = 0,
- KEYBOX_General_Error = 1,
- KEYBOX_Out_Of_Core = 2,
- KEYBOX_Invalid_Value = 3,
- KEYBOX_Timeout = 4,
- KEYBOX_Read_Error = 5,
- KEYBOX_Write_Error = 6,
- KEYBOX_File_Error = 7,
- KEYBOX_Blob_Too_Short = 8,
- KEYBOX_Blob_Too_Large = 9,
- KEYBOX_Invalid_Handle = 10,
- KEYBOX_File_Create_Error = 11,
- KEYBOX_File_Open_Error = 12,
- KEYBOX_File_Close_Error = 13,
- KEYBOX_Nothing_Found = 14,
- KEYBOX_Wrong_Blob_Type = 15,
- KEYBOX_Missing_Value = 16,
-} KeyboxError;
-
-
typedef struct keybox_handle *KEYBOX_HANDLE;
@@ -115,9 +94,6 @@ void keybox_set_malloc_hooks ( void *(*new_alloc_func)(size_t n),
void *(*new_realloc_func)(void *p, size_t n),
void (*new_free_func)(void*) );
-/*-- keybox-errors.c (built) --*/
-const char *keybox_strerror (KeyboxError err);
-
#ifdef __cplusplus
}