aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/encoding/message.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-11-18 10:37:46 +0100
committerMartin Willi <martin@strongswan.org>2009-11-18 10:37:46 +0100
commit80b44cd71a32917fc127013f6f394aa561143413 (patch)
treecbc76174605fd7bc556e4b580746f951e741f49c /src/charon/encoding/message.c
parent1860bfa2eada127dabd64e7ede103219aa2d215f (diff)
downloadstrongswan-80b44cd71a32917fc127013f6f394aa561143413.tar.bz2
strongswan-80b44cd71a32917fc127013f6f394aa561143413.tar.xz
Message stringification supports more detailed EAP payload information
Diffstat (limited to 'src/charon/encoding/message.c')
-rw-r--r--src/charon/encoding/message.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/charon/encoding/message.c b/src/charon/encoding/message.c
index b39c076e6..397a3c609 100644
--- a/src/charon/encoding/message.c
+++ b/src/charon/encoding/message.c
@@ -946,6 +946,35 @@ static char* get_string(private_message_t *this, char *buf, int len)
pos += written;
len -= written;
}
+ if (payload->get_type(payload) == EXTENSIBLE_AUTHENTICATION)
+ {
+ eap_payload_t *eap = (eap_payload_t*)payload;
+ u_int32_t vendor;
+ eap_type_t type;
+ char method[64] = "";
+
+ type = eap->get_type(eap, &vendor);
+ if (type)
+ {
+ if (vendor)
+ {
+ snprintf(method, sizeof(method), "/%d-%d", type, vendor);
+ }
+ else
+ {
+ snprintf(method, sizeof(method), "/%N",
+ eap_type_short_names, type);
+ }
+ }
+ written = snprintf(pos, len, "/%N%s", eap_code_short_names,
+ eap->get_code(eap), method);
+ if (written >= len || written < 0)
+ {
+ return buf;
+ }
+ pos += written;
+ len -= written;
+ }
}
enumerator->destroy(enumerator);