Annotation of embedaddon/strongswan/src/libimcv/pwg/pwg_attr.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (C) 2015 Andreas Steffen
        !             3:  * HSR Hochschule fuer Technik Rapperswil
        !             4:  *
        !             5:  * This program is free software; you can redistribute it and/or modify it
        !             6:  * under the terms of the GNU General Public License as published by the
        !             7:  * Free Software Foundation; either version 2 of the License, or (at your
        !             8:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
        !             9:  *
        !            10:  * This program is distributed in the hope that it will be useful, but
        !            11:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
        !            12:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
        !            13:  * for more details.
        !            14:  */
        !            15: 
        !            16: #include "pwg_attr.h"
        !            17: 
        !            18: #include "generic/generic_attr_bool.h"
        !            19: #include "generic/generic_attr_chunk.h"
        !            20: #include "generic/generic_attr_string.h"
        !            21: #include "ietf/ietf_attr_fwd_enabled.h"
        !            22: #include "ietf/ietf_attr_port_filter.h"
        !            23: #include "pwg/pwg_attr_vendor_smi_code.h"
        !            24: 
        !            25: ENUM_BEGIN(pwg_attr_names,     PWG_HCD_ATTRS_NATURAL_LANG,
        !            26:                                                        PWG_HCD_VENDOR_SMI_CODE,
        !            27:        "HCD AttributesNaturalLanguage",
        !            28:        "HCD MachineTypeModel",
        !            29:        "HCD VendorName",
        !            30:        "HCD VendorSMICode");
        !            31: ENUM_NEXT(pwg_attr_names,      PWG_HCD_DEFAULT_PWD_ENABLED,
        !            32:                                                        PWG_HCD_FORWARDING_ENABLED,
        !            33:                                                        PWG_HCD_VENDOR_SMI_CODE,
        !            34:        "HCD DefaultPasswordEnabled",
        !            35:        "HCD FirewallSetting",
        !            36:        "HCD ForwardingEnabled");
        !            37: ENUM_NEXT(pwg_attr_names,      PWG_HCD_PSTN_FAX_ENABLED,
        !            38:                                                        PWG_HCD_PSTN_FAX_ENABLED,
        !            39:                                                        PWG_HCD_FORWARDING_ENABLED,
        !            40:        "HCD PSTNFaxEnabled");
        !            41: ENUM_NEXT(pwg_attr_names,      PWG_HCD_TIME_SOURCE,
        !            42:                                                        PWG_HCD_TIME_SOURCE,
        !            43:                                                        PWG_HCD_PSTN_FAX_ENABLED,
        !            44:        "HCD TimeSource");
        !            45: ENUM_NEXT(pwg_attr_names,      PWG_HCD_FIRMWARE_NAME,
        !            46:                                                        PWG_HCD_FIRMWARE_VERSION,
        !            47:                                                        PWG_HCD_TIME_SOURCE,
        !            48:        "HCD FirmwareName",
        !            49:        "HCD FirmwarePatches",
        !            50:        "HCD FirmwareStringVersion",
        !            51:        "HCD FirmwareVersion");
        !            52: ENUM_NEXT(pwg_attr_names,      PWG_HCD_RESIDENT_APP_NAME,
        !            53:                                                        PWG_HCD_RESIDENT_APP_VERSION,
        !            54:                                                        PWG_HCD_FIRMWARE_VERSION,
        !            55:        "HCD ResidentApplicationName",
        !            56:        "HCD ResidentApplicationPatches",
        !            57:        "HCD ResidentApplicationStringVersion",
        !            58:        "HCD ResidentApplicationVersion");
        !            59: ENUM_NEXT(pwg_attr_names,      PWG_HCD_USER_APP_NAME,
        !            60:                                                        PWG_HCD_USER_APP_PERSIST_ENABLED,
        !            61:                                                        PWG_HCD_RESIDENT_APP_VERSION,
        !            62:        "HCD UserApplicationName",
        !            63:        "HCD UserApplicationPatches",
        !            64:        "HCD UserApplicationStringVersion",
        !            65:        "HCD UserApplicationVersion",
        !            66:        "HCD UserApplicationEnabled",
        !            67:        "HCD UserApplicationPersistenceEnabled");
        !            68: ENUM_NEXT(pwg_attr_names,      PWG_HCD_CERTIFICATION_STATE,
        !            69:                                                        PWG_HCD_CONFIGURATION_STATE,
        !            70:                                                        PWG_HCD_USER_APP_PERSIST_ENABLED,
        !            71:        "HCD CertificationState",
        !            72:        "HCD ConfigurationState");
        !            73: ENUM_END(pwg_attr_names,       PWG_HCD_CONFIGURATION_STATE);
        !            74: 
        !            75: /**
        !            76:  * See header
        !            77:  */
        !            78: pa_tnc_attr_t* pwg_attr_create_from_data(uint32_t type, size_t length, chunk_t value)
        !            79: {
        !            80:        switch (type)
        !            81:        {
        !            82:                case PWG_HCD_DEFAULT_PWD_ENABLED:
        !            83:                case PWG_HCD_USER_APP_ENABLED:
        !            84:                case PWG_HCD_USER_APP_PERSIST_ENABLED:
        !            85:                case PWG_HCD_PSTN_FAX_ENABLED:
        !            86:                        return generic_attr_bool_create_from_data(length, value,
        !            87:                                                                        pen_type_create(PEN_PWG, type));
        !            88:                case PWG_HCD_ATTRS_NATURAL_LANG:
        !            89:                case PWG_HCD_MACHINE_TYPE_MODEL:
        !            90:                case PWG_HCD_VENDOR_NAME:
        !            91:                case PWG_HCD_FIRMWARE_NAME:
        !            92:                case PWG_HCD_FIRMWARE_PATCHES:
        !            93:                case PWG_HCD_FIRMWARE_STRING_VERSION:
        !            94:                case PWG_HCD_TIME_SOURCE:
        !            95:                case PWG_HCD_USER_APP_NAME:
        !            96:                case PWG_HCD_USER_APP_PATCHES:
        !            97:                case PWG_HCD_USER_APP_STRING_VERSION:
        !            98:                case PWG_HCD_RESIDENT_APP_NAME:
        !            99:                case PWG_HCD_RESIDENT_APP_PATCHES:
        !           100:                case PWG_HCD_RESIDENT_APP_STRING_VERSION:
        !           101:                        return generic_attr_string_create_from_data(length, value,
        !           102:                                                                        pen_type_create(PEN_PWG, type));
        !           103:                case PWG_HCD_FIRMWARE_VERSION:
        !           104:                case PWG_HCD_RESIDENT_APP_VERSION:
        !           105:                case PWG_HCD_USER_APP_VERSION:
        !           106:                        return generic_attr_chunk_create_from_data(length, value, 16,
        !           107:                                                                        pen_type_create(PEN_PWG, type));
        !           108:                case PWG_HCD_CERTIFICATION_STATE:
        !           109:                case PWG_HCD_CONFIGURATION_STATE:
        !           110:                        return generic_attr_chunk_create_from_data(length, value, 0,
        !           111:                                                                        pen_type_create(PEN_PWG, type));
        !           112:                case PWG_HCD_VENDOR_SMI_CODE:
        !           113:                        return pwg_attr_vendor_smi_code_create_from_data(length, value);
        !           114:                case PWG_HCD_FORWARDING_ENABLED:
        !           115:                        return ietf_attr_fwd_enabled_create_from_data(length, value,
        !           116:                                                                        pen_type_create(PEN_PWG, type));
        !           117:                case PWG_HCD_FIREWALL_SETTING:
        !           118:                        return ietf_attr_port_filter_create_from_data(length, value,
        !           119:                                                                        pen_type_create(PEN_PWG, type));
        !           120:                default:
        !           121:                        return NULL;
        !           122:        }
        !           123: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>