Show error code of Microsoft specific error notify
authorMartin Willi <martin@revosec.ch>
Mon, 1 Aug 2011 09:27:25 +0000 (11:27 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 3 Aug 2011 10:01:15 +0000 (12:01 +0200)
src/libcharon/encoding/message.c

index e0fecef..35a91c9 100644 (file)
@@ -861,9 +861,23 @@ static char* get_string(private_message_t *this, char *buf, int len)
                len -= written;
                if (payload->get_type(payload) == NOTIFY)
                {
-                       notify_payload_t *notify = (notify_payload_t*)payload;
-                       written = snprintf(pos, len, "(%N)", notify_type_short_names,
-                                                          notify->get_notify_type(notify));
+                       notify_payload_t *notify;
+                       notify_type_t type;
+                       chunk_t data;
+
+                       notify = (notify_payload_t*)payload;
+                       type = notify->get_notify_type(notify);
+                       data = notify->get_notification_data(notify);
+                       if (type == MS_NOTIFY_STATUS && data.len == 4)
+                       {
+                               written = snprintf(pos, len, "(%N(%d))", notify_type_short_names,
+                                                                  type, untoh32(data.ptr));
+                       }
+                       else
+                       {
+                               written = snprintf(pos, len, "(%N)", notify_type_short_names,
+                                                                  type);
+                       }
                        if (written >= len || written < 0)
                        {
                                return buf;