* configure.ac: Require libksba 0.9.11.
[gnupg.git] / common / maperror.c
index f52a599..9efd643 100644 (file)
 #include <ctype.h>
 #include <unistd.h>
 
-#include <ksba.h>
 #include <assuan.h>
 
 #include "util.h"
 #include "errors.h"
 
-/* Note: we might want to wrap this in a macro to get our hands on
-   the line and file where the error occured */
-int
-map_ksba_err (int err)
-{
-  switch (err)
-    {
-    case 0: 
-      break;
-
-    case -1: err = GPG_ERR_EOF; break;
-    case KSBA_Out_Of_Core: err = GPG_ERR_ENOMEM; break;
-    case KSBA_Invalid_Value: err = GPG_ERR_INV_VALUE; break;
-    case KSBA_Not_Implemented: err = GPG_ERR_NOT_IMPLEMENTED; break;
-    case KSBA_Conflict: err = GPG_ERR_CONFLICT; break;
-    case KSBA_Read_Error: err = GPG_ERR_EIO; break;
-    case KSBA_Write_Error: err = GPG_ERR_EIO; break;
-    case KSBA_No_Data: err = GPG_ERR_NO_DATA; break;
-    case KSBA_Bug: err = GPG_ERR_BUG; break;
-    case KSBA_Unsupported_Algorithm: err = GPG_ERR_UNSUPPORTED_ALGORITHM; break;
-    case KSBA_Invalid_Index: err = GPG_ERR_INV_INDEX; break;
-    case KSBA_Invalid_Sexp: err = GPG_ERR_INV_SEXP; break;
-    case KSBA_Unknown_Sexp: err = GPG_ERR_UNKNOWN_SEXP; break;
-      
-    default:
-      err = GPG_ERR_GENERAL;
-      break;
-    }
-  return gpg_err_make (GPG_ERR_SOURCE_GPGSM, err);
-}
-
-
-int 
-map_gcry_err (int err)
-{
-  return err;
-}
-
-int 
-map_kbx_err (int err)
-{
-  return err;
-}
 
 /* Map Assuan error code ERR to an GPG_ERR_ code.  We need to
    distinguish between genuine (and legacy) Assuan error codes and
@@ -82,7 +38,7 @@ map_kbx_err (int err)
    simple: All errors with a gpg_err_source of UNKNOWN are genuine
    Assuan codes all others are passed verbatim through. */
 gpg_error_t
-map_assuan_err (int err)
+map_assuan_err_with_source (int source, int err)
 {
   gpg_err_code_t ec;
 
@@ -115,11 +71,13 @@ map_assuan_err (int err)
     case ASSUAN_Not_Confirmed:   ec = GPG_ERR_NOT_CONFIRMED; break;
     case ASSUAN_Invalid_Id:      ec = GPG_ERR_INV_ID; break;
 
+    case ASSUAN_Locale_Problem:  ec = GPG_ERR_LOCALE_PROBLEM; break;
+
     default:
       ec = err < 100? GPG_ERR_ASSUAN_SERVER_FAULT : GPG_ERR_ASSUAN;
       break;
     }
-  return gpg_err_make (GPG_ERR_SOURCE_UNKNOWN, ec);
+  return gpg_err_make (source, ec);
 }
 
 /* Map GPG_xERR_xx error codes to Assuan status codes */
@@ -144,14 +102,3 @@ map_to_assuan_status (int rc)
 
   return gpg_err_make (es, ec);
 }
-
-
-
-
-
-
-
-
-
-
-