diff options
author | Martin Willi <martin@strongswan.org> | 2009-11-18 10:37:46 +0100 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-11-18 10:37:46 +0100 |
commit | 80b44cd71a32917fc127013f6f394aa561143413 (patch) | |
tree | cbc76174605fd7bc556e4b580746f951e741f49c /src/charon/encoding/message.c | |
parent | 1860bfa2eada127dabd64e7ede103219aa2d215f (diff) | |
download | strongswan-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.c | 29 |
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); |