summaryrefslogtreecommitdiff
path: root/src/libimcv/ita
diff options
context:
space:
mode:
authorYves-Alexis Perez <corsac@debian.org>2015-10-22 11:43:58 +0200
committerYves-Alexis Perez <corsac@debian.org>2015-11-03 17:16:28 +0100
commit27902f634ea544c1f077b19a26ca8c81b67059f3 (patch)
tree2f0977205608987a9239d39111f02ea1c086c1af /src/libimcv/ita
parent3b7ae6673ae7bc330d0305098cd9818a4f6a7856 (diff)
downloadvyos-strongswan-27902f634ea544c1f077b19a26ca8c81b67059f3.tar.gz
vyos-strongswan-27902f634ea544c1f077b19a26ca8c81b67059f3.zip
Imported Upstream version 5.3.3
Diffstat (limited to 'src/libimcv/ita')
-rw-r--r--src/libimcv/ita/ita_attr.c5
-rw-r--r--src/libimcv/ita/ita_attr_device_id.c163
-rw-r--r--src/libimcv/ita/ita_attr_device_id.h56
3 files changed, 3 insertions, 221 deletions
diff --git a/src/libimcv/ita/ita_attr.c b/src/libimcv/ita/ita_attr.c
index 9d7706dba..35c882c37 100644
--- a/src/libimcv/ita/ita_attr.c
+++ b/src/libimcv/ita/ita_attr.c
@@ -19,7 +19,7 @@
#include "ita/ita_attr_get_settings.h"
#include "ita/ita_attr_settings.h"
#include "ita/ita_attr_angel.h"
-#include "ita/ita_attr_device_id.h"
+#include "generic/generic_attr_string.h"
ENUM(ita_attr_names, ITA_ATTR_COMMAND, ITA_ATTR_DEVICE_ID,
"Command",
@@ -53,7 +53,8 @@ pa_tnc_attr_t* ita_attr_create_from_data(u_int32_t type, size_t length,
case ITA_ATTR_STOP_ANGEL:
return ita_attr_angel_create_from_data(FALSE);
case ITA_ATTR_DEVICE_ID:
- return ita_attr_device_id_create_from_data(length, value);
+ return generic_attr_string_create_from_data(length, value,
+ pen_type_create(PEN_ITA, type));
default:
return NULL;
}
diff --git a/src/libimcv/ita/ita_attr_device_id.c b/src/libimcv/ita/ita_attr_device_id.c
deleted file mode 100644
index 232842695..000000000
--- a/src/libimcv/ita/ita_attr_device_id.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2013-2014 Andreas Steffen
- * HSR Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- */
-
-#include "ita_attr.h"
-#include "ita_attr_device_id.h"
-
-#include <pen/pen.h>
-
-#include <utils/debug.h>
-
-typedef struct private_ita_attr_device_id_t private_ita_attr_device_id_t;
-
-/**
- * Private data of an ita_attr_device_id_t object.
- */
-struct private_ita_attr_device_id_t {
-
- /**
- * Public members of ita_attr_device_id_t
- */
- ita_attr_device_id_t public;
-
- /**
- * Vendor-specific attribute type
- */
- pen_type_t type;
-
- /**
- * Length of attribute value
- */
- size_t length;
-
- /**
- * Attribute value or segment
- */
- chunk_t value;
-
- /**
- * Noskip flag
- */
- bool noskip_flag;
-
- /**
- * Reference count
- */
- refcount_t ref;
-};
-
-METHOD(pa_tnc_attr_t, get_type, pen_type_t,
- private_ita_attr_device_id_t *this)
-{
- return this->type;
-}
-
-METHOD(pa_tnc_attr_t, get_value, chunk_t,
- private_ita_attr_device_id_t *this)
-{
- return this->value;
-}
-
-METHOD(pa_tnc_attr_t, get_noskip_flag, bool,
- private_ita_attr_device_id_t *this)
-{
- return this->noskip_flag;
-}
-
-METHOD(pa_tnc_attr_t, set_noskip_flag,void,
- private_ita_attr_device_id_t *this, bool noskip)
-{
- this->noskip_flag = noskip;
-}
-
-METHOD(pa_tnc_attr_t, build, void,
- private_ita_attr_device_id_t *this)
-{
- return;
-}
-
-METHOD(pa_tnc_attr_t, process, status_t,
- private_ita_attr_device_id_t *this, u_int32_t *offset)
-{
- *offset = 0;
-
- if (this->value.len < this->length)
- {
- return NEED_MORE;
- }
- return SUCCESS;
-}
-
-METHOD(pa_tnc_attr_t, add_segment, void,
- private_ita_attr_device_id_t *this, chunk_t segment)
-{
- this->value = chunk_cat("mc", this->value, segment);
-}
-
-METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
- private_ita_attr_device_id_t *this)
-{
- ref_get(&this->ref);
- return &this->public.pa_tnc_attribute;
-}
-
-METHOD(pa_tnc_attr_t, destroy, void,
- private_ita_attr_device_id_t *this)
-{
- if (ref_put(&this->ref))
- {
- free(this->value.ptr);
- free(this);
- }
-}
-
-/**
- * Described in header.
- */
-pa_tnc_attr_t *ita_attr_device_id_create_from_data(size_t length, chunk_t value)
-{
- private_ita_attr_device_id_t *this;
-
- INIT(this,
- .public = {
- .pa_tnc_attribute = {
- .get_type = _get_type,
- .get_value = _get_value,
- .get_noskip_flag = _get_noskip_flag,
- .set_noskip_flag = _set_noskip_flag,
- .build = _build,
- .process = _process,
- .add_segment = _add_segment,
- .get_ref = _get_ref,
- .destroy = _destroy,
- },
- },
- .type = { PEN_ITA, ITA_ATTR_DEVICE_ID },
- .length = length,
- .value = chunk_clone(value),
- .ref = 1,
- );
-
- return &this->public.pa_tnc_attribute;
-}
-
-/**
- * Described in header.
- */
-pa_tnc_attr_t *ita_attr_device_id_create(chunk_t value)
-{
- return ita_attr_device_id_create_from_data(value.len, value);
-}
-
diff --git a/src/libimcv/ita/ita_attr_device_id.h b/src/libimcv/ita/ita_attr_device_id.h
deleted file mode 100644
index 94bb778c0..000000000
--- a/src/libimcv/ita/ita_attr_device_id.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2013-2014 Andreas Steffen
- * HSR Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- */
-
-/**
- * @defgroup ita_attr_device_id ita_attr_device_id
- * @{ @ingroup ita_attr
- */
-
-#ifndef ITA_ATTR_DEVICE_ID_H_
-#define ITA_ATTR_DEVICE_ID_H_
-
-typedef struct ita_attr_device_id_t ita_attr_device_id_t;
-
-#include "pa_tnc/pa_tnc_attr.h"
-
-/**
- * Class implementing the ITA Device ID PA-TNC attribute.
- *
- */
-struct ita_attr_device_id_t {
-
- /**
- * Public PA-TNC attribute interface
- */
- pa_tnc_attr_t pa_tnc_attribute;
-
-};
-
-/**
- * Creates an ita_attr_device_id_t object
- *
- * @param value ITA Device ID attribute value
- */
-pa_tnc_attr_t* ita_attr_device_id_create(chunk_t value);
-
-/**
- * Creates an ita_attr_device_id_t object from received data
- *
- * @param length Total length of attribute value
- * @param value Unparsed attribute value (might be a segment)
- */
-pa_tnc_attr_t* ita_attr_device_id_create_from_data(size_t length, chunk_t value);
-
-#endif /** ITA_ATTR_DEVICE_ID_H_ @}*/