summaryrefslogtreecommitdiff
path: root/lib/gnutls_alert.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-06-28 14:09:00 +0300
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-07-23 14:10:56 +0200
commit6f292254cd91e4c6a2e489e327b106d766d933a7 (patch)
tree2947a841545359965e5aa9f4ae46848a2accbf96 /lib/gnutls_alert.c
parenta6975081adb6a420ae499b4df0b211c9b3f16f91 (diff)
downloadgnutls-6f292254cd91e4c6a2e489e327b106d766d933a7.tar.gz
Added gnutls_alert_get_strname().
Diffstat (limited to 'lib/gnutls_alert.c')
-rw-r--r--lib/gnutls_alert.c98
1 files changed, 60 insertions, 38 deletions
diff --git a/lib/gnutls_alert.c b/lib/gnutls_alert.c
index 788dec5456..b32c34e3b0 100644
--- a/lib/gnutls_alert.c
+++ b/lib/gnutls_alert.c
@@ -34,47 +34,51 @@
typedef struct
{
gnutls_alert_description_t alert;
+ const char *name;
const char *desc;
} gnutls_alert_entry;
+#define ALERT_ENTRY(x,y) \
+ {x, #x, y}
+
static const gnutls_alert_entry sup_alerts[] = {
- {GNUTLS_A_CLOSE_NOTIFY, N_("Close notify")},
- {GNUTLS_A_UNEXPECTED_MESSAGE, N_("Unexpected message")},
- {GNUTLS_A_BAD_RECORD_MAC, N_("Bad record MAC")},
- {GNUTLS_A_DECRYPTION_FAILED, N_("Decryption failed")},
- {GNUTLS_A_RECORD_OVERFLOW, N_("Record overflow")},
- {GNUTLS_A_DECOMPRESSION_FAILURE, N_("Decompression failed")},
- {GNUTLS_A_HANDSHAKE_FAILURE, N_("Handshake failed")},
- {GNUTLS_A_BAD_CERTIFICATE, N_("Certificate is bad")},
- {GNUTLS_A_UNSUPPORTED_CERTIFICATE, N_("Certificate is not supported")},
- {GNUTLS_A_CERTIFICATE_REVOKED, N_("Certificate was revoked")},
- {GNUTLS_A_CERTIFICATE_EXPIRED, N_("Certificate is expired")},
- {GNUTLS_A_CERTIFICATE_UNKNOWN, N_("Unknown certificate")},
- {GNUTLS_A_ILLEGAL_PARAMETER, N_("Illegal parameter")},
- {GNUTLS_A_UNKNOWN_CA, N_("CA is unknown")},
- {GNUTLS_A_ACCESS_DENIED, N_("Access was denied")},
- {GNUTLS_A_DECODE_ERROR, N_("Decode error")},
- {GNUTLS_A_DECRYPT_ERROR, N_("Decrypt error")},
- {GNUTLS_A_EXPORT_RESTRICTION, N_("Export restriction")},
- {GNUTLS_A_PROTOCOL_VERSION, N_("Error in protocol version")},
- {GNUTLS_A_INSUFFICIENT_SECURITY, N_("Insufficient security")},
- {GNUTLS_A_USER_CANCELED, N_("User canceled")},
- {GNUTLS_A_SSL3_NO_CERTIFICATE, N_("No certificate (SSL 3.0)")},
- {GNUTLS_A_INTERNAL_ERROR, N_("Internal error")},
- {GNUTLS_A_NO_RENEGOTIATION, N_("No renegotiation is allowed")},
- {GNUTLS_A_CERTIFICATE_UNOBTAINABLE,
- N_("Could not retrieve the specified certificate")},
- {GNUTLS_A_UNSUPPORTED_EXTENSION, N_("An unsupported extension was sent")},
- {GNUTLS_A_UNRECOGNIZED_NAME,
- N_("The server name sent was not recognized")},
- {GNUTLS_A_UNKNOWN_PSK_IDENTITY,
- N_("The SRP/PSK username is missing or not known")},
- {0, NULL}
+ ALERT_ENTRY(GNUTLS_A_CLOSE_NOTIFY, N_("Close notify")),
+ ALERT_ENTRY(GNUTLS_A_UNEXPECTED_MESSAGE, N_("Unexpected message")),
+ ALERT_ENTRY(GNUTLS_A_BAD_RECORD_MAC, N_("Bad record MAC")),
+ ALERT_ENTRY(GNUTLS_A_DECRYPTION_FAILED, N_("Decryption failed")),
+ ALERT_ENTRY(GNUTLS_A_RECORD_OVERFLOW, N_("Record overflow")),
+ ALERT_ENTRY(GNUTLS_A_DECOMPRESSION_FAILURE, N_("Decompression failed")),
+ ALERT_ENTRY(GNUTLS_A_HANDSHAKE_FAILURE, N_("Handshake failed")),
+ ALERT_ENTRY(GNUTLS_A_BAD_CERTIFICATE, N_("Certificate is bad")),
+ ALERT_ENTRY(GNUTLS_A_UNSUPPORTED_CERTIFICATE, N_("Certificate is not supported")),
+ ALERT_ENTRY(GNUTLS_A_CERTIFICATE_REVOKED, N_("Certificate was revoked")),
+ ALERT_ENTRY(GNUTLS_A_CERTIFICATE_EXPIRED, N_("Certificate is expired")),
+ ALERT_ENTRY(GNUTLS_A_CERTIFICATE_UNKNOWN, N_("Unknown certificate")),
+ ALERT_ENTRY(GNUTLS_A_ILLEGAL_PARAMETER, N_("Illegal parameter")),
+ ALERT_ENTRY(GNUTLS_A_UNKNOWN_CA, N_("CA is unknown")),
+ ALERT_ENTRY(GNUTLS_A_ACCESS_DENIED, N_("Access was denied")),
+ ALERT_ENTRY(GNUTLS_A_DECODE_ERROR, N_("Decode error")),
+ ALERT_ENTRY(GNUTLS_A_DECRYPT_ERROR, N_("Decrypt error")),
+ ALERT_ENTRY(GNUTLS_A_EXPORT_RESTRICTION, N_("Export restriction")),
+ ALERT_ENTRY(GNUTLS_A_PROTOCOL_VERSION, N_("Error in protocol version")),
+ ALERT_ENTRY(GNUTLS_A_INSUFFICIENT_SECURITY, N_("Insufficient security")),
+ ALERT_ENTRY(GNUTLS_A_USER_CANCELED, N_("User canceled")),
+ ALERT_ENTRY(GNUTLS_A_SSL3_NO_CERTIFICATE, N_("No certificate (SSL 3.0)")),
+ ALERT_ENTRY(GNUTLS_A_INTERNAL_ERROR, N_("Internal error")),
+ ALERT_ENTRY(GNUTLS_A_NO_RENEGOTIATION, N_("No renegotiation is allowed")),
+ ALERT_ENTRY(GNUTLS_A_CERTIFICATE_UNOBTAINABLE,
+ N_("Could not retrieve the specified certificate")),
+ ALERT_ENTRY(GNUTLS_A_UNSUPPORTED_EXTENSION, N_("An unsupported extension was sent")),
+ ALERT_ENTRY(GNUTLS_A_UNRECOGNIZED_NAME,
+ N_("The server name sent was not recognized")),
+ ALERT_ENTRY(GNUTLS_A_UNKNOWN_PSK_IDENTITY,
+ N_("The SRP/PSK username is missing or not known")),
+ {0, NULL, NULL}
};
/**
* gnutls_alert_get_name:
- * @alert: is an alert number #gnutls_session_t structure.
+ * @alert: is an alert number.
*
* This function will return a string that describes the given alert
* number, or %NULL. See gnutls_alert_get().
@@ -94,6 +98,26 @@ gnutls_alert_get_name (gnutls_alert_description_t alert)
}
/**
+ * gnutls_alert_get_strname:
+ * @alert: is an alert number.
+ *
+ * This function will return a string of the name of the alert.
+ *
+ * Returns: string corresponding to #gnutls_alert_description_t value.
+ **/
+const char *
+gnutls_alert_get_strname (gnutls_alert_description_t alert)
+{
+ const gnutls_alert_entry *p;
+
+ for (p = sup_alerts; p->name != NULL; p++)
+ if (p->alert == alert)
+ return p->name;
+
+ return NULL;
+}
+
+/**
* gnutls_alert_send:
* @session: is a #gnutls_session_t structure.
* @level: is the level of the alert
@@ -303,11 +327,9 @@ gnutls_alert_send_appropriate (gnutls_session_t session, int err)
* @session: is a #gnutls_session_t structure.
*
* This function will return the last alert number received. This
- * function should be called if %GNUTLS_E_WARNING_ALERT_RECEIVED or
- * %GNUTLS_E_FATAL_ALERT_RECEIVED has been returned by a gnutls
- * function. The peer may send alerts if he thinks some things were
- * not right. Check gnutls.h for the available alert descriptions.
- *
+ * function should be called when %GNUTLS_E_WARNING_ALERT_RECEIVED or
+ * %GNUTLS_E_FATAL_ALERT_RECEIVED errors are returned by a gnutls
+ * function. The peer may send alerts if he encounters an error.
* If no alert has been received the returned value is undefined.
*
* Returns: the last alert received, a