Added silc_packet_error_string.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 28 Apr 2007 10:53:21 +0000 (10:53 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 28 Apr 2007 10:53:21 +0000 (10:53 +0000)
lib/silccore/silcpacket.c
lib/silccore/silcpacket.h

index 69204c84a0f693655124754fc2d9310a42faaa74..ccd821198d9f757f075c265f144911fa3e206973 100644 (file)
@@ -623,6 +623,25 @@ void silc_packet_engine_stop(SilcPacketEngine engine)
   silc_free(engine);
 }
 
+static const char *packet_error[] = {
+  "Cannot read from stream",
+  "Cannot write to stream",
+  "Packet MAC failed",
+  "Packet decryption failed",
+  "Unknown SID",
+  "Packet is malformed",
+  "System out of memory",
+};
+
+/* Return packet error string */
+
+const char *silc_packet_error_string(SilcPacketError error)
+{
+  if (error < SILC_PACKET_ERR_READ || error > SILC_PACKET_ERR_NO_MEMORY)
+    return "";
+  return packet_error[error];
+}
+
 /* Return list of packet streams in the engine */
 
 SilcDList silc_packet_engine_get_streams(SilcPacketEngine engine)
index 5dfcdc93edea59f70f69c4b473186c791e41fd8e..240c446d97ad9cd720918cc06daa019a2c7ad92b 100644 (file)
@@ -198,6 +198,9 @@ typedef struct SilcPacketStruct {
  *    from the actual stream.  It can retrieve the underlaying stream from
  *    the packet stream by calling silc_packet_stream_get_stream function.
  *
+ *    You may retrieve string version of the SilcPacketError by calling
+ *    silc_packet_error_string.
+ *
  * SOURCE
  */
 typedef enum {
@@ -377,6 +380,19 @@ silc_packet_engine_start(SilcRng rng, SilcBool router,
  ***/
 void silc_packet_engine_stop(SilcPacketEngine engine);
 
+/****f* silccore/SilcPacketAPI/silc_packet_error_string
+ *
+ * SYNOPSIS
+ *
+ *    const char *silc_packet_error_string(SilcPacketError error);
+ *
+ * DESCRIPTION
+ *
+ *    Return the packet error as string.
+ *
+ ***/
+const char *silc_packet_error_string(SilcPacketError error);
+
 /****f* silccore/SilcPacketAPI/silc_packet_engine_get_streams
  *
  * SYNOPSIS