Show contents of the CP payload in message_t stringification
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
#include <encoding/payloads/payload.h>
|
#include <encoding/payloads/payload.h>
|
||||||
#include <encoding/payloads/encryption_payload.h>
|
#include <encoding/payloads/encryption_payload.h>
|
||||||
#include <encoding/payloads/unknown_payload.h>
|
#include <encoding/payloads/unknown_payload.h>
|
||||||
|
#include <encoding/payloads/cp_payload.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max number of notify payloads per IKEv2 Message
|
* Max number of notify payloads per IKEv2 Message
|
||||||
@@ -975,6 +976,39 @@ static char* get_string(private_message_t *this, char *buf, int len)
|
|||||||
pos += written;
|
pos += written;
|
||||||
len -= written;
|
len -= written;
|
||||||
}
|
}
|
||||||
|
if (payload->get_type(payload) == CONFIGURATION)
|
||||||
|
{
|
||||||
|
cp_payload_t *cp = (cp_payload_t*)payload;
|
||||||
|
enumerator_t *attributes;
|
||||||
|
configuration_attribute_t *attribute;
|
||||||
|
bool first = TRUE;
|
||||||
|
|
||||||
|
attributes = cp->create_attribute_enumerator(cp);
|
||||||
|
while (attributes->enumerate(attributes, &attribute))
|
||||||
|
{
|
||||||
|
written = snprintf(pos, len, "%s%N", first ? "(" : " ",
|
||||||
|
configuration_attribute_type_short_names,
|
||||||
|
attribute->get_type(attribute));
|
||||||
|
if (written >= len || written < 0)
|
||||||
|
{
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
pos += written;
|
||||||
|
len -= written;
|
||||||
|
first = FALSE;
|
||||||
|
}
|
||||||
|
attributes->destroy(attributes);
|
||||||
|
if (!first)
|
||||||
|
{
|
||||||
|
written = snprintf(pos, len, ")");
|
||||||
|
if (written >= len || written < 0)
|
||||||
|
{
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
pos += written;
|
||||||
|
len -= written;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
enumerator->destroy(enumerator);
|
enumerator->destroy(enumerator);
|
||||||
|
|
||||||
|
|||||||
@@ -64,3 +64,49 @@ ENUM_NEXT(configuration_attribute_type_names, UNITY_BANNER, UNITY_DDNS_HOSTNAME,
|
|||||||
"UNITY_DDNS_HOSTNAME");
|
"UNITY_DDNS_HOSTNAME");
|
||||||
ENUM_END(configuration_attribute_type_names, UNITY_DDNS_HOSTNAME);
|
ENUM_END(configuration_attribute_type_names, UNITY_DDNS_HOSTNAME);
|
||||||
|
|
||||||
|
ENUM_BEGIN(configuration_attribute_type_short_names, INTERNAL_IP4_ADDRESS, INTERNAL_IP6_PREFIX,
|
||||||
|
"ADDR",
|
||||||
|
"MASK",
|
||||||
|
"DNS",
|
||||||
|
"NBNS",
|
||||||
|
"EXP",
|
||||||
|
"DHCP",
|
||||||
|
"VER",
|
||||||
|
"ADDR6",
|
||||||
|
"MASK6",
|
||||||
|
"DNS6",
|
||||||
|
"NBNS6",
|
||||||
|
"DHCP6",
|
||||||
|
"SUBNET",
|
||||||
|
"SUPPORTED",
|
||||||
|
"SUBNET6",
|
||||||
|
"MIP6HPFX",
|
||||||
|
"LINK6",
|
||||||
|
"PFX6");
|
||||||
|
ENUM_NEXT(configuration_attribute_type_short_names, XAUTH_TYPE, XAUTH_ANSWER, INTERNAL_IP6_PREFIX,
|
||||||
|
"XAUTH_TYPE",
|
||||||
|
"XAUTH_USER_NAME",
|
||||||
|
"XAUTH_USER_PASSWORD",
|
||||||
|
"XAUTH_PASSCODE",
|
||||||
|
"XAUTH_MESSAGE",
|
||||||
|
"XAUTH_CHALLENGE",
|
||||||
|
"XAUTH_DOMAIN",
|
||||||
|
"XAUTH_STATUS",
|
||||||
|
"XAUTH_NEXT_PIN",
|
||||||
|
"XAUTH_ANSWER");
|
||||||
|
ENUM_NEXT(configuration_attribute_type_short_names, INTERNAL_IP4_SERVER, INTERNAL_IP6_SERVER, XAUTH_ANSWER,
|
||||||
|
"SRV",
|
||||||
|
"SRV6");
|
||||||
|
ENUM_NEXT(configuration_attribute_type_short_names, UNITY_BANNER, UNITY_DDNS_HOSTNAME, INTERNAL_IP6_SERVER,
|
||||||
|
"UNITY_BANNER",
|
||||||
|
"UNITY_SAVE_PASSWD",
|
||||||
|
"UNITY_DEF_DOMAIN",
|
||||||
|
"UNITY_SPLITDNS_NAME",
|
||||||
|
"UNITY_SPLIT_INCLUDE",
|
||||||
|
"UNITY_NATT_PORT",
|
||||||
|
"UNITY_LOCAL_LAN",
|
||||||
|
"UNITY_PFS",
|
||||||
|
"UNITY_FW_TYPE",
|
||||||
|
"UNITY_BACKUP_SERVERS",
|
||||||
|
"UNITY_DDNS_HOSTNAME");
|
||||||
|
ENUM_END(configuration_attribute_type_short_names, UNITY_DDNS_HOSTNAME);
|
||||||
|
|||||||
@@ -81,5 +81,10 @@ enum configuration_attribute_type_t {
|
|||||||
*/
|
*/
|
||||||
extern enum_name_t *configuration_attribute_type_names;
|
extern enum_name_t *configuration_attribute_type_names;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Short enum names for configuration_attribute_type_t.
|
||||||
|
*/
|
||||||
|
extern enum_name_t *configuration_attribute_type_short_names;
|
||||||
|
|
||||||
|
|
||||||
#endif /** ATTRIBUTES_H_ @}*/
|
#endif /** ATTRIBUTES_H_ @}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user