eapol/eapol_framework/eapol_symbian/am/common/symbian/EapExpandedType.cpp
author hgs
Mon, 24 May 2010 20:32:47 +0300
changeset 26 9abfd4f00d37
child 34 ad1f037f1ac2
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2001-2006 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  EAP and WLAN authentication protocols.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
/*
hgs
parents:
diff changeset
    19
* %version: %
hgs
parents:
diff changeset
    20
*/
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include "EapExpandedType.h"
hgs
parents:
diff changeset
    23
#include "EapTraceSymbian.h"
hgs
parents:
diff changeset
    24
#include "eap_expanded_type.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
//--------------------------------------------------
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
EAP_FUNC_EXPORT TEapExpandedType::TEapExpandedType()
hgs
parents:
diff changeset
    29
{
hgs
parents:
diff changeset
    30
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    31
		(EAPL("TEapExpandedType::TEapExpandedType(): EapExpandedTypeNone"),
hgs
parents:
diff changeset
    32
		&EapExpandedTypeNone,
hgs
parents:
diff changeset
    33
		sizeof(EapExpandedTypeNone)));
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::TEapExpandedType()\n"));
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    38
		(EAPL("TEapExpandedType::TEapExpandedType(): EapExpandedTypeNone.GetType()"),
hgs
parents:
diff changeset
    39
		EapExpandedTypeNone.GetType(),
hgs
parents:
diff changeset
    40
		sizeof(*(EapExpandedTypeNone.GetType()))));
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
	iValue.Copy(*(EapExpandedTypeNone.GetType()));
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    45
		(EAPL("TEapExpandedType::TEapExpandedType()"),
hgs
parents:
diff changeset
    46
		iValue.Ptr(),
hgs
parents:
diff changeset
    47
		iValue.Length()));
hgs
parents:
diff changeset
    48
}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
//--------------------------------------------------
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
EAP_FUNC_EXPORT TEapExpandedType::~TEapExpandedType()
hgs
parents:
diff changeset
    53
{
hgs
parents:
diff changeset
    54
	EAP_STATIC_ASSERT(sizeof(TConstEapExpandedTypeTemplate<KEapExpandedTypeLength>) == sizeof(TBufC8<KEapExpandedTypeLength>));
hgs
parents:
diff changeset
    55
}
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
//--------------------------------------------------
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
EAP_FUNC_EXPORT TEapExpandedType::TEapExpandedType(const TEapExpandedType * const init)
hgs
parents:
diff changeset
    60
{
hgs
parents:
diff changeset
    61
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::TEapExpandedType(const TEapExpandedType * const init)\n"));
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
	iValue.Copy(init->GetValue());
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    66
		(EAPL("TEapExpandedType::TEapExpandedType()"),
hgs
parents:
diff changeset
    67
		iValue.Ptr(),
hgs
parents:
diff changeset
    68
		iValue.Length()));
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
//--------------------------------------------------
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
EAP_FUNC_EXPORT TEapExpandedType::TEapExpandedType(const TEapExpandedType & init)
hgs
parents:
diff changeset
    74
{
hgs
parents:
diff changeset
    75
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::TEapExpandedType(const TEapExpandedType & init)\n"));
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
	iValue.Copy(init.GetValue());
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    80
		(EAPL("TEapExpandedType::TEapExpandedType()"),
hgs
parents:
diff changeset
    81
		iValue.Ptr(),
hgs
parents:
diff changeset
    82
		iValue.Length()));
hgs
parents:
diff changeset
    83
}
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
//--------------------------------------------------
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
EAP_FUNC_EXPORT TEapExpandedType::TEapExpandedType(const TBufC8<KEapExpandedTypeLength> & init)
hgs
parents:
diff changeset
    88
{
hgs
parents:
diff changeset
    89
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::TEapExpandedType(const TBufC8<KEapExpandedTypeLength> & init)\n"));
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
	iValue.Copy(init);
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
    94
		(EAPL("TEapExpandedType::TEapExpandedType()"),
hgs
parents:
diff changeset
    95
		iValue.Ptr(),
hgs
parents:
diff changeset
    96
		iValue.Length()));
hgs
parents:
diff changeset
    97
}
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
//--------------------------------------------------
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
EAP_FUNC_EXPORT TEapExpandedType::TEapExpandedType(const TDesC8 & init)
hgs
parents:
diff changeset
   102
{
hgs
parents:
diff changeset
   103
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::TEapExpandedType(const TDesC8 & init)\n"));
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
	iValue.Copy(init);
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   108
		(EAPL("TEapExpandedType::TEapExpandedType()"),
hgs
parents:
diff changeset
   109
		iValue.Ptr(),
hgs
parents:
diff changeset
   110
		iValue.Length()));
hgs
parents:
diff changeset
   111
}
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
//--------------------------------------------------
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
EAP_FUNC_EXPORT const TBuf8<KEapExpandedTypeLength> & TEapExpandedType::GetValue() const
hgs
parents:
diff changeset
   116
{
hgs
parents:
diff changeset
   117
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::GetValue()\n")));
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::GetValue()\n"));
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
	return iValue;
hgs
parents:
diff changeset
   122
}
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
//--------------------------------------------------
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
EAP_FUNC_EXPORT TInt TEapExpandedType::SetValue(
hgs
parents:
diff changeset
   127
	const void * const data,
hgs
parents:
diff changeset
   128
	const TUint data_length)
hgs
parents:
diff changeset
   129
{
hgs
parents:
diff changeset
   130
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   131
		(EAPL("TEapExpandedType::SetValue(const void * const data, const TUint data_length)"),
hgs
parents:
diff changeset
   132
		data,
hgs
parents:
diff changeset
   133
		data_length));
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::SetValue()\n"));
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
	iValue.Copy(reinterpret_cast<const TUint8 *> (data), static_cast<TInt>(data_length));
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   140
		(EAPL("TEapExpandedType::SetValue(const void * const data, const TUint data_length)"),
hgs
parents:
diff changeset
   141
		iValue.Ptr(),
hgs
parents:
diff changeset
   142
		iValue.Length()));
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
	return KErrNone;
hgs
parents:
diff changeset
   145
}
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
//--------------------------------------------------
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
EAP_FUNC_EXPORT TInt TEapExpandedType::SetValue(
hgs
parents:
diff changeset
   150
	const TUint vendor_id,
hgs
parents:
diff changeset
   151
	const TUint vendor_type)
hgs
parents:
diff changeset
   152
{
hgs
parents:
diff changeset
   153
	const u32_t expanded_vendor = (0xfe000000 | static_cast<u32_t>(vendor_id));
hgs
parents:
diff changeset
   154
	const TUint net_ord_vendor = eap_htonl(expanded_vendor);
hgs
parents:
diff changeset
   155
	const TUint net_ord_type = eap_htonl(vendor_type);
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
	EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::SetValue(): vendor_id=0x%08x, vendor_type=0x%08x, expanded_vendor=0x%08x, net_ord_vendor=0x%08x, net_ord_type=0x%08x\n"),
hgs
parents:
diff changeset
   158
		vendor_id,
hgs
parents:
diff changeset
   159
		vendor_type,
hgs
parents:
diff changeset
   160
		expanded_vendor,
hgs
parents:
diff changeset
   161
		net_ord_vendor,
hgs
parents:
diff changeset
   162
		net_ord_type));
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::SetValue()\n"));
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
	iValue.Copy(reinterpret_cast<const TUint8 *>(&net_ord_vendor), sizeof(net_ord_vendor));
hgs
parents:
diff changeset
   167
	iValue.Append(reinterpret_cast<const TUint8 *>(&net_ord_type), sizeof(net_ord_type));
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   170
		(EAPL("TEapExpandedType::SetValue()"),
hgs
parents:
diff changeset
   171
		iValue.Ptr(),
hgs
parents:
diff changeset
   172
		iValue.Length()));
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
	return KErrNone;
hgs
parents:
diff changeset
   175
}
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
//--------------------------------------------------
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
EAP_FUNC_EXPORT TUint TEapExpandedType::GetVendorId() const
hgs
parents:
diff changeset
   180
{
hgs
parents:
diff changeset
   181
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::GetVendorId()\n")));
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::GetVendorId()\n"));
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
	const TUint * const aHostOrderVendorId = reinterpret_cast<const TUint *>(iValue.Ptr());
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
	// Masks off the leading octet 0xfe.
hgs
parents:
diff changeset
   188
	return eap_ntohl(*aHostOrderVendorId) & 0x00ffffff;
hgs
parents:
diff changeset
   189
}
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
//--------------------------------------------------
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
EAP_FUNC_EXPORT TUint TEapExpandedType::GetVendorType() const
hgs
parents:
diff changeset
   194
{
hgs
parents:
diff changeset
   195
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::GetVendorType()\n")));
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::GetVendorType()\n"));
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
	const TUint * const aHostOrderVendorType = reinterpret_cast<const TUint *>(iValue.Ptr() + sizeof(TUint));
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
	return eap_ntohl(*aHostOrderVendorType);
hgs
parents:
diff changeset
   202
}
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
//--------------------------------------------------
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
EAP_FUNC_EXPORT TEapExpandedType &TEapExpandedType::operator = (const TEapExpandedType &right_type_value)
hgs
parents:
diff changeset
   207
{
hgs
parents:
diff changeset
   208
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::operator =(const TEapExpandedType &right_type_value)\n")));
hgs
parents:
diff changeset
   209
hgs
parents:
diff changeset
   210
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::operator =(const TEapExpandedType &right_type_value)\n"));
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
	iValue.Copy(right_type_value.GetValue());
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   215
		(EAPL("TEapExpandedType::operator ="),
hgs
parents:
diff changeset
   216
		iValue.Ptr(),
hgs
parents:
diff changeset
   217
		iValue.Length()));
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
	return *this;
hgs
parents:
diff changeset
   220
}
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
//--------------------------------------------------
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
EAP_FUNC_EXPORT TEapExpandedType &TEapExpandedType::operator = (const TBufC8<KEapExpandedTypeLength> &right_type_value)
hgs
parents:
diff changeset
   225
{
hgs
parents:
diff changeset
   226
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::operator =(const TBufC8<KEapExpandedTypeLength> &right_type_value)\n")));
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::operator =(const TBufC8<KEapExpandedTypeLength> &right_type_value)\n"));
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
	iValue.Copy(right_type_value);
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   233
		(EAPL("TEapExpandedType::operator ="),
hgs
parents:
diff changeset
   234
		iValue.Ptr(),
hgs
parents:
diff changeset
   235
		iValue.Length()));
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
	return *this;
hgs
parents:
diff changeset
   238
}
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
//--------------------------------------------------
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
EAP_FUNC_EXPORT TEapExpandedType &TEapExpandedType::operator = (const TDesC8 &right_type_value)
hgs
parents:
diff changeset
   243
{
hgs
parents:
diff changeset
   244
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::operator =(const TDesC8 &right_type_value)\n")));
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::operator =(const TDesC8 &right_type_value)\n"));
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
	ASSERT(right_type_value.Length() == KEapExpandedTypeLength);
hgs
parents:
diff changeset
   249
hgs
parents:
diff changeset
   250
	iValue.Copy(right_type_value);
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
	EAP_TRACE_DATA_DEBUG_SYMBIAN(
hgs
parents:
diff changeset
   253
		(EAPL("TEapExpandedType::operator ="),
hgs
parents:
diff changeset
   254
		iValue.Ptr(),
hgs
parents:
diff changeset
   255
		iValue.Length()));
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
	return *this;
hgs
parents:
diff changeset
   258
}
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
//--------------------------------------------------
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
EAP_FUNC_EXPORT TInt TEapExpandedType::Compare(const TEapExpandedType &right_type_value) const
hgs
parents:
diff changeset
   263
{
hgs
parents:
diff changeset
   264
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::Compare()\n")));
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::Compare()\n"));
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
	for (TUint ind = 0ul; ind < KEapExpandedTypeLength; ++ind)
hgs
parents:
diff changeset
   269
	{
hgs
parents:
diff changeset
   270
		const TUint8 left = iValue[ind];
hgs
parents:
diff changeset
   271
		const TUint8 right = right_type_value.GetValue()[ind];
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
		if (left != right)
hgs
parents:
diff changeset
   274
		{
hgs
parents:
diff changeset
   275
			return iValue[ind] - right_type_value.GetValue()[ind];
hgs
parents:
diff changeset
   276
		}
hgs
parents:
diff changeset
   277
	}
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
	return 0;
hgs
parents:
diff changeset
   280
}
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
//--------------------------------------------------
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
EAP_FUNC_EXPORT bool TEapExpandedType::operator == (const TEapExpandedType &right_type_value) const
hgs
parents:
diff changeset
   285
{
hgs
parents:
diff changeset
   286
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::operator ==()\n")));
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::operator ==()\n"));
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
	return Compare(right_type_value) == 0;
hgs
parents:
diff changeset
   291
}
hgs
parents:
diff changeset
   292
hgs
parents:
diff changeset
   293
//--------------------------------------------------
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
EAP_FUNC_EXPORT bool TEapExpandedType::operator != (const TEapExpandedType &right_type_value) const
hgs
parents:
diff changeset
   296
{
hgs
parents:
diff changeset
   297
	//EAP_TRACE_DEBUG_SYMBIAN((_L("TEapExpandedType::operator !=()\n")));
hgs
parents:
diff changeset
   298
hgs
parents:
diff changeset
   299
	//EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: TEapExpandedType::operator !=()\n"));
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
	return Compare(right_type_value) != 0;
hgs
parents:
diff changeset
   302
}
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
//--------------------------------------------------
hgs
parents:
diff changeset
   305
// End of file