case IETF_ATTR_OPERATIONAL_STATUS:
return ietf_attr_op_status_create_from_data(length, value);
case IETF_ATTR_PORT_FILTER:
- return ietf_attr_port_filter_create_from_data(length, value);
+ return ietf_attr_port_filter_create_from_data(length, value,
+ pen_type_create(PEN_IETF, type));
case IETF_ATTR_INSTALLED_PACKAGES:
return ietf_attr_installed_packages_create_from_data(length, value);
case IETF_ATTR_PA_TNC_ERROR:
/*
- * Copyright (C) 2011-2014 Andreas Steffen
+ * Copyright (C) 2011-2015 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
/**
* Described in header.
*/
-pa_tnc_attr_t *ietf_attr_port_filter_create(void)
+pa_tnc_attr_t *ietf_attr_port_filter_create(pen_type_t type)
{
private_ietf_attr_port_filter_t *this;
.add_port = _add_port,
.create_port_enumerator = _create_port_enumerator,
},
- .type = { PEN_IETF, IETF_ATTR_PORT_FILTER },
+ .type = type,
.ports = linked_list_create(),
.ref = 1,
);
* Described in header.
*/
pa_tnc_attr_t *ietf_attr_port_filter_create_from_data(size_t length,
- chunk_t data)
+ chunk_t data, pen_type_t type)
{
private_ietf_attr_port_filter_t *this;
.add_port = _add_port,
.create_port_enumerator = _create_port_enumerator,
},
- .type = {PEN_IETF, IETF_ATTR_PORT_FILTER },
+ .type = type,
.length = length,
.value = chunk_clone(data),
.ports = linked_list_create(),
/*
- * Copyright (C) 2011-2014 Andreas Steffen
+ * Copyright (C) 2011-2015 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
/**
* Creates an ietf_attr_port_filter_t object
*
+ * @param type Vendor ID / Attribute Type
*/
-pa_tnc_attr_t* ietf_attr_port_filter_create(void);
+pa_tnc_attr_t* ietf_attr_port_filter_create(pen_type_t type);
/**
* Creates an ietf_attr_port_filter_t object from received data
*
* @param length Total length of attribute value
* @param value Unparsed attribute value (might be a segment)
+ * @param type Vendor ID / Attribute Type
*/
pa_tnc_attr_t* ietf_attr_port_filter_create_from_data(size_t length,
- chunk_t value);
+ chunk_t value, pen_type_t type);
#endif /** IETF_ATTR_PORT_FILTER_H_ @}*/
pa_tnc_attr_t *attr;
ietf_attr_port_filter_t *attr_port_filter;
- attr = ietf_attr_port_filter_create();
+ attr = ietf_attr_port_filter_create(pen_type_create(PEN_IETF,
+ IETF_ATTR_PORT_FILTER));
attr->set_noskip_flag(attr, TRUE);
attr_port_filter = (ietf_attr_port_filter_t*)attr;
if (!do_netstat(attr_port_filter))
#include "pwg_attr.h"
-#include <generic/generic_attr_bool.h>
+#include "generic/generic_attr_bool.h"
+#include "ietf/ietf_attr_port_filter.h"
+
ENUM_BEGIN(pwg_attr_names, PWG_HCD_ATTRS_NATURAL_LANG,
PWG_HCD_VENDOR_SMI_CODE,
case PWG_HCD_PSTN_FAX_ENABLED:
return generic_attr_bool_create_from_data(length, value,
pen_type_create(PEN_PWG, type));
+ case PWG_HCD_FIREWALL_SETTING:
+ return ietf_attr_port_filter_create_from_data(length, value,
+ pen_type_create(PEN_PWG, type));
case PWG_HCD_ATTRS_NATURAL_LANG:
case PWG_HCD_MACHINE_TYPE_MODEL:
case PWG_HCD_VENDOR_NAME:
case PWG_HCD_VENDOR_SMI_CODE:
- case PWG_HCD_FIREWALL_SETTING:
case PWG_HCD_TIME_SOURCE:
case PWG_HCD_FIRMWARE_NAME:
case PWG_HCD_FIRMWARE_PATCHES: