New error codes and another mapping fnc.
authorWerner Koch <wk@gnupg.org>
Wed, 5 Dec 2001 23:45:42 +0000 (23:45 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 5 Dec 2001 23:45:42 +0000 (23:45 +0000)
common/errors.h
common/maperror.c
common/util.h

index ba48b46..b704ff3 100644 (file)
@@ -53,6 +53,9 @@ enum {
   GNUPG_File_Create_Error = 24,
   GNUPG_File_Error = 25,
   GNUPG_Not_Supported = 26,
+  GNUPG_Invalid_Data = 27,
+  GNUPG_Assuan_Server_Fault = 28,
+  GNUPG_Assuan_Error = 29, /* catch all assuan error */
 };
 
 /* Status codes - fixme: should go into another file */
index 894e235..aba0ee7 100644 (file)
@@ -30,7 +30,7 @@
 
 #include "util.h"
 #include "errors.h"
-
+#include "../assuan/assuan.h"
 
 /* Note: we might want to wrap this in a macro to get our hands on
    the line and file where the error occired */
@@ -83,3 +83,25 @@ map_kbx_err (int err)
   return err;
 }
 
+
+int 
+map_assuan_err (int err)
+{
+  switch (err)
+    {
+    case -1:
+    case 0:
+      break;
+
+    case ASSUAN_Not_Implemented: err = GNUPG_Not_Implemented; break;
+    case ASSUAN_Server_Fault:    err = GNUPG_Assuan_Server_Fault; break;
+    case ASSUAN_No_Public_Key:   err = GNUPG_No_Public_Key; break;
+    case ASSUAN_No_Secret_Key:   err = GNUPG_No_Secret_Key; break;
+
+    default:
+      err = err < 100? GNUPG_Assuan_Server_Fault : GNUPG_Assuan_Error;
+      break;
+    }
+  return err;
+}
+
index 478d851..485cc1c 100644 (file)
@@ -52,6 +52,7 @@
 int map_ksba_err (int err);
 int map_gcry_err (int err);
 int map_kbx_err (int err);
+int map_assuan_err (int err);
 
 
 #endif /*GNUPG_COMMON_UTIL_H*/