--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networkingtestandutils/ipv6to4tunnel/src/6to4_family.cpp Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,153 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Name : 6to4_family.cpp
+// Part of : 6to4 plugin / 6to4.prt
+// Implements 6to4 automatic and configured tunnels, see
+// RFC 3056 & RFC 2893
+// Version : 0.2
+//
+
+
+
+
+// INCLUDE FILES
+#include "6to4.h"
+#include "6to4_family.h"
+
+// EXTERNAL DATA STRUCTURES
+// EXTERNAL FUNCTION PROTOTYPES
+extern "C"
+{
+IMPORT_C CProtocolFamilyBase *Install (void);
+}
+
+// CONSTANTS
+// MACROS
+// LOCAL CONSTANTS AND MACROS
+// MODULE DATA STRUCTURES
+class CProtocolFamily6to4 : public CProtocolFamilyBase
+ {
+ public:
+ CProtocolFamily6to4 ();
+ ~CProtocolFamily6to4 ();
+ TInt Install ();
+ TInt Remove ();
+ TUint ProtocolList (TServerProtocolDesc * &aProtocolList);
+ CProtocolBase *NewProtocolL (TUint /* aSockType */ , TUint aProtocol);
+ };
+
+// LOCAL FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+// E32Dll ()
+// Called by the E32.
+// Returns: Error value
+// ----------------------------------------------------------------------------
+//
+
+// ----------------------------------------------------------------------------
+// Install ()
+// Called by the E32.
+// Returns: A new object CProtocolFamily6to4.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CProtocolFamilyBase *Install ()
+ {
+ return new (ELeave) CProtocolFamily6to4;
+ }
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::CProtocolFamily6to4
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------------------------------
+//
+CProtocolFamily6to4::CProtocolFamily6to4 ()
+ {
+ __DECLARE_NAME (_S ("CProtocolFamily6to4"));
+ }
+
+// Destructor
+CProtocolFamily6to4::~CProtocolFamily6to4 ()
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::Install
+//
+// ----------------------------------------------------------------------------
+//
+TInt CProtocolFamily6to4::Install ()
+ {
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::Remove
+//
+// ----------------------------------------------------------------------------
+//
+TInt CProtocolFamily6to4::Remove ()
+ {
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::ProtocolList
+// Gets the identification information from the CProtocol6to4
+// ----------------------------------------------------------------------------
+//
+TUint CProtocolFamily6to4::ProtocolList (TServerProtocolDesc * &aProtocolList)
+ {
+ // This function should be a leaving fn
+ // apparently it is OK for it to leave
+ TServerProtocolDesc *p = new (ELeave) TServerProtocolDesc[1];
+
+ CProtocol6to4::Identify (p[0]);
+ aProtocolList = p;
+ return 1;
+ }
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::NewProtocolL
+// Creates the CProtocol6to4 instance
+// ----------------------------------------------------------------------------
+//
+CProtocolBase *CProtocolFamily6to4::NewProtocolL (TUint /* aSockType */ ,
+ TUint aProtocol)
+ {
+ if (aProtocol != KProtocolInet6Ipip)
+ User::Leave (KErrNotSupported);
+
+ return new (ELeave) CProtocol6to4;
+ }
+
+// ----------------------------------------------------------------------------
+// CProtocolFamily6to4::Panic
+//
+// ----------------------------------------------------------------------------
+//
+void Panic (T6to4Panic aPanic)
+ {
+ User::Panic (_L ("6TO4"), aPanic);
+ }
+
+// ========================== OTHER EXPORTED FUNCTIONS ========================
+
+// End of File