aboutsummaryrefslogtreecommitdiffstats
path: root/common/maperror.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2002-01-10 19:46:20 +0000
committerWerner Koch <[email protected]>2002-01-10 19:46:20 +0000
commit8bad9e344b6a084b506ba6d2117cc433a8383734 (patch)
treee23fb2bd882894cd6c1cef684baafedf05f0e931 /common/maperror.c
parent* assuan-handler.c (assuan_set_okay_line): New. (diff)
downloadgnupg-8bad9e344b6a084b506ba6d2117cc433a8383734.tar.gz
gnupg-8bad9e344b6a084b506ba6d2117cc433a8383734.zip
*** empty log message ***
Diffstat (limited to 'common/maperror.c')
-rw-r--r--common/maperror.c53
1 files changed, 52 insertions, 1 deletions
diff --git a/common/maperror.c b/common/maperror.c
index 0c259ddd0..ee1bdc86a 100644
--- a/common/maperror.c
+++ b/common/maperror.c
@@ -1,5 +1,5 @@
/* maperror.c - Error mapping
- * Copyright (C) 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -147,3 +147,54 @@ map_assuan_err (int err)
return err;
}
+/* Map GNUPG_xxx error codes to Assuan status codes */
+int
+map_to_assuan_status (int rc)
+{
+ switch (rc)
+ {
+ case 0: break;
+ case GNUPG_Bad_Certificate: rc = ASSUAN_Bad_Certificate; break;
+ case GNUPG_Bad_Certificate_Path: rc = ASSUAN_Bad_Certificate_Path; break;
+ case GNUPG_Missing_Certificate: rc = ASSUAN_Missing_Certificate; break;
+ case GNUPG_No_Data: rc = ASSUAN_No_Data_Available; break;
+ case GNUPG_Bad_Signature: rc = ASSUAN_Bad_Signature; break;
+ case GNUPG_Not_Implemented: rc = ASSUAN_Not_Implemented; break;
+ case GNUPG_No_Agent: rc = ASSUAN_No_Agent; break;
+ case GNUPG_Agent_Error: rc = ASSUAN_Agent_Error; break;
+ case GNUPG_No_Public_Key: rc = ASSUAN_No_Public_Key; break;
+ case GNUPG_No_Secret_Key: rc = ASSUAN_No_Secret_Key; break;
+ case GNUPG_Invalid_Data: rc = ASSUAN_Invalid_Data; break;
+ case GNUPG_Invalid_Name: rc = ASSUAN_Invalid_Name; break;
+
+ case GNUPG_Bad_PIN:
+ case GNUPG_Bad_Passphrase:
+ rc = ASSUAN_No_Secret_Key;
+ break;
+
+ case GNUPG_Read_Error:
+ case GNUPG_Write_Error:
+ case GNUPG_IO_Error:
+ rc = ASSUAN_Server_IO_Error;
+ break;
+ case GNUPG_Out_Of_Core:
+ case GNUPG_Resource_Limit:
+ rc = ASSUAN_Server_Resource_Problem;
+ break;
+ case GNUPG_Bug:
+ case GNUPG_Internal_Error:
+ rc = ASSUAN_Server_Bug;
+ break;
+ default:
+ rc = ASSUAN_Server_Fault;
+ break;
+ }
+ return rc;
+}
+
+
+
+
+
+
+