]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Added gnutls_alert_get_strname().
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Tue, 28 Jun 2011 11:09:00 +0000 (14:09 +0300)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 23 Jul 2011 12:10:56 +0000 (14:10 +0200)
lib/gnutls_alert.c
lib/includes/gnutls/gnutls.h.in
lib/libgnutls.map

index 788dec5456beebb15abdda968238230ab8f1d999..b32c34e3b005d28c2a0475f0ffd25a48c95eb29d 100644 (file)
 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().
@@ -93,6 +97,26 @@ gnutls_alert_get_name (gnutls_alert_description_t alert)
   return NULL;
 }
 
+/**
+ * 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.
@@ -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
index af159f5a642da14eaf7414a8ed49f21c2defa9a7..1d6b5e1d1bf539d9d5849adda812cdb1a6f88893 100644 (file)
@@ -739,6 +739,7 @@ typedef enum
                          gnutls_alert_description_t desc);
   int gnutls_alert_send_appropriate (gnutls_session_t session, int err);
   const char *gnutls_alert_get_name (gnutls_alert_description_t alert);
+  const char * gnutls_alert_get_strname (gnutls_alert_description_t alert);
 
   gnutls_sec_param_t gnutls_pk_bits_to_sec_param (gnutls_pk_algorithm_t algo,
                                                   unsigned int bits);
index bd3a4dbdf42b27b1ad5c20c0df32f81a1103827d..b26c06585d37ce915ba02fb2d989fe3d1a95073d 100644 (file)
@@ -713,6 +713,7 @@ GNUTLS_3_0_0 {
        gnutls_pubkey_verify_data2;
        gnutls_x509_trust_list_verify_named_crt;
        gnutls_x509_trust_list_add_named_crt;
+       gnutls_alert_get_strname;
 } GNUTLS_2_12;
 
 GNUTLS_PRIVATE {