aboutsummaryrefslogtreecommitdiffstats
path: root/common/maperror.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--common/maperror.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/common/maperror.c b/common/maperror.c
index 894e235ca..aba0ee750 100644
--- a/common/maperror.c
+++ b/common/maperror.c
@@ -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;
+}
+