2 * Copyright (C) 2012 Andreas Steffen
4 * Copyright (C) secunet Security Networks AG
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 * @defgroup ita_attr_settings ita_attr_settings
19 * @{ @ingroup ita_attr
22 #ifndef ITA_ATTR_SETTINGS_H_
23 #define ITA_ATTR_SETTINGS_H_
25 typedef struct ita_attr_settings_t ita_attr_settings_t
;
27 #include "pa_tnc/pa_tnc_attr.h"
30 * Class implementing the ITA Settings PA-TNC attribute.
33 struct ita_attr_settings_t
{
36 * Public PA-TNC attribute interface
38 pa_tnc_attr_t pa_tnc_attribute
;
41 * Add a setting to the list
43 * @param name name of the setting
44 * @param value value of the setting
46 void (*add
)(ita_attr_settings_t
*this, char *name
, chunk_t value
);
49 * Return an enumerator over all name/value pairs
51 * @return enumerator returns char **name, chunk_t *value
53 enumerator_t
* (*create_enumerator
)(ita_attr_settings_t
*this);
57 * Creates an ita_attr_settings_t object with an empty settings list
59 pa_tnc_attr_t
* ita_attr_settings_create(void);
62 * Creates an ita_attr_settings_t object from received data
64 * @param length Total length of attribute value
65 * @param value Unparsed attribute value (might be a segment)
67 pa_tnc_attr_t
* ita_attr_settings_create_from_data(size_t length
, chunk_t value
);
69 #endif /** ITA_ATTR_SETTINGS_H_ @}*/