eapol/eapol_framework/eapol_symbian/eap_server/src/EapServer.cpp
branchRCL_3
changeset 46 c74b3d9f6b9e
parent 45 bad0cc58d154
child 55 9c2aa05919d9
--- a/eapol/eapol_framework/eapol_symbian/eap_server/src/EapServer.cpp	Tue Aug 31 15:16:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,539 +0,0 @@
-/*
-* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:  scheduler of EAP-server.
-*
-*/
-
-/*
-* %version: 35 %
-*/
-
-#include "EapServer.h"
-#include "EapTraceSymbian.h"
-#include <ecom.h>
-#include "eap_automatic_variable.h"
-
-/*
-    class CEapServer
-*/
-
-//----------------------------------------------------------------------------
-
-CEapServer::CEapServer()
-    : CServer2(0, EGlobalSharableSessions) // //ESharableSessions
-    {
-    EAP_TRACE_DEBUG_SYMBIAN((_L("CEapServer::CEapServer(): this=0x%08x"),
-		this));
-
-	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapServer::CEapServer()"));
-    }
-
-//----------------------------------------------------------------------------
-
-void CEapServer::ConstructL()
-    {
-    EAP_TRACE_DEBUG_SYMBIAN((_L("CEapServer::ConstructL(): start")));
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    iIsValid = EFalse;
-    iTools = abs_eap_am_tools_c::new_abs_eap_am_tools_c();
-
-    // Check if creation went ok and the the iIsValid variable
-    if (iTools == 0
-		|| iTools->get_is_valid() == false)
-	{
-		if (iTools != 0)
-		{
-			iTools->am_cancel_all_timers();
-		}
-		abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-		User::Leave(KErrNoMemory);
-	}
-	else
-	{
-		iIsValid = iTools->get_is_valid();
-	}
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::ConstructL()");
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	{
-		const u8_t DEFAULT_PREFIX[] = "EAP-SERVER";
-		eap_variable_data_c tmp_prefix(iTools);
-
-		if (tmp_prefix.get_is_valid() == false)
-		{
-			iTools->am_cancel_all_timers();
-			abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-			User::Leave(KErrNoMemory);
-		}
-
-		eap_status_e status = tmp_prefix.set_copy_of_buffer(DEFAULT_PREFIX, sizeof(DEFAULT_PREFIX)-1ul);;
-		if (status != eap_status_ok)
-		{
-			iTools->am_cancel_all_timers();
-			abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-			User::Leave(KErrNoMemory);
-		}
-
-		status = tmp_prefix.add_end_null();
-		if (status != eap_status_ok)
-		{
-			iTools->am_cancel_all_timers();
-			abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-			User::Leave(KErrNoMemory);
-		}
-
-		status = iTools->set_trace_prefix(&tmp_prefix);
-		if (status != eap_status_ok)
-		{
-			iTools->am_cancel_all_timers();
-			abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-			User::Leave(KErrNoMemory);
-		}
-	}
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	{
-		TInt error;
-		RFs aFileServerSession;
-
-		// Open file server session
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - calls aFileServerSession.Connect()\n")));
-
-		error = aFileServerSession.Connect();
-
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - aFileServerSession.Connect(), error=%d\n"),
-			error));
-
-		User::LeaveIfError(error);
-
-		// Create the private path - it is not automatically created by Symbian OS.
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - calls aFileServerSession.CreatePrivatePath(%d)\n"),
-			RFs::GetSystemDrive()));
-
-		error = aFileServerSession.CreatePrivatePath(RFs::GetSystemDrive());
-
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - aFileServerSession.CreatePrivatePath(%d), error=%d\n"),
-			RFs::GetSystemDrive(),
-			error));
-
-		User::LeaveIfError(error);
-
-		// Set the session path to the private directory
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - calls aFileServerSession.SetSessionToPrivate(%d)\n"),
-			RFs::GetSystemDrive()));
-
-		error = aFileServerSession.SetSessionToPrivate(RFs::GetSystemDrive());
-
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::ConstructL(): - aFileServerSession.SetSessionToPrivate(%d), error=%d\n"),
-			RFs::GetSystemDrive(),
-			error));
-
-		User::LeaveIfError(error);
-
-		// Close the session with the file server.
-		aFileServerSession.Close();
-	}
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    {
-		// construct shutdown timer
-		iShutdown = new(ELeave) CEapDelayedShutdown(iTools, this);
-		iShutdown->ConstructL();
-		// identify ourselves and open for service
-		TBuf<KMaxServerExe> ServerName;
-		TBuf<KMaxServerExe> ServerExe;
-    
-		GetServerNameAndExe(&ServerName, &ServerExe);
-
-		StartL(ServerName);
-
-		// Initiates shut down timer. Timer will close server unless we get client connections.
-		iShutdown->Start();
-	}
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    {
-		// construct backup and restore observer
-		iBackupRestore = new(ELeave) CEapserverBackup(this);
-		iBackupRestore->ConstructL();
-	}
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-   }
-
-//----------------------------------------------------------------------------
-
-CEapServer* CEapServer::NewL()
-    {
-    EAP_TRACE_DEBUG_SYMBIAN((_L("CEapServer::NewL(): starts")));
-
-	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapServer::NewL()"));
-
-    CEapServer* self = new(ELeave)CEapServer();
-    CleanupStack::PushL(self);
-
-    self->ConstructL();
-
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-//----------------------------------------------------------------------------
-
-CEapServer::~CEapServer()
-	{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::~CEapServer(): this=0x%08x\n"),
-		this));
-
-	// Do not use iTools, because it will be destroyed before return.
-	EAP_TRACE_RETURN_STRING_SYMBIAN(_L("returns: CEapServer::~CEapServer()"));
-
-	delete iShutdown;
-	delete iBackupRestore;
-	
-	if (iTools) 
-	{
-		iTools->am_cancel_all_timers();
-		abs_eap_am_tools_c::delete_abs_eap_am_tools_c(iTools);
-	}
-
-    EAP_TRACE_DEBUG_SYMBIAN((_L("REComSession::FinalClose(): start")));
-
-	REComSession::FinalClose();
-
-    EAP_TRACE_DEBUG_SYMBIAN((_L("REComSession::FinalClose(): ready")));
-
-	}
-
-//----------------------------------------------------------------------------
-
-// from CServer
-
-CSession2* CEapServer::NewSessionL(const TVersion& /* aVersion */, const RMessage2& /* aMessage */) const
-    {
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::NewSessionL(): starts\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::NewSessionL()");
-
-    CEapSession* session = new(ELeave) CEapSession();
-    CleanupStack::PushL(session);
-
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::NewSessionL(): session=0x%08x\n"),
-		session));
-
-    EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::NewSessionL(): session->ConstructL() starts")));
-
-    session->ConstructL(*const_cast<CEapServer*>(this), iTools);
-
-    EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::NewSessionL(): session->ConstructL() ends")));
-
-    CleanupStack::Pop(session);
-
-    const_cast<CEapServer*>(this)->IncrementSessions();
-
-	return session;
-    }
-
-//----------------------------------------------------------------------------
-
-TInt CEapServer::RunError(TInt aErr)
-    /**
-       Handle leaves from ServiceL.
-
-       Any leave from a ServiceL() will land up here.
-    */
-    {
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::RunError(), aErr=%d\n"),
-		aErr));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::RunError()");
-
-    // if it's a bad descriptor, panic the client
-    if (aErr==KErrBadDescriptor)    // client had a bad descriptor
-        {
-        PanicClient(EBadDescriptor);
-        }
-
-    // anyway, complete the outstanding message
-    Message().Complete(aErr);
-    ReStart(); // really means just continue reading client requests
-    return KErrNone;
-    }
-
-//----------------------------------------------------------------------------
-
-/**
-   session count support
-*/
-void CEapServer::IncrementSessions()
-{   
-	iSessionCount++;
-
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::IncrementSessions(): iSessionCount=%d\n"),
-		iSessionCount));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::IncrementSessions()");
-
-	iShutdown->Cancel();
-}
-
-//----------------------------------------------------------------------------
-
-void CEapServer::DecrementSessions()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::DecrementSessions(): iSessionCount=%d\n"),
-		iSessionCount));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::DecrementSessions()");
-
-	iSessionCount--;
-	if (iSessionCount>0)
-		return;
-
-	iShutdown->Start();
-}
-
-//----------------------------------------------------------------------------
-
-void CEapServer::PanicClient(TInt aPanic) const
-{
-	EAP_UNREFERENCED_PARAMETER(aPanic);
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::PanicClient(): aPanic=%d\n"),
-		aPanic));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::PanicClient()");
-
-	// let's have a look before we panic the client
-	__DEBUGGER()
-	// ok, go for it
-
-	const TBufC<KMaxCategoryLength> aCategory; 
-	Message().Panic(aCategory, EBadRequest);
-}
-
-//----------------------------------------------------------------------------
-
-void CEapServer::StopL()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapServer::StopL()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::StopL()");
-
-	for (iSessionIter.SetToFirst(); iSessionIter; iSessionIter++)
-	{
-		CSession2 * aSession = iSessionIter;
-
-		EAP_TRACE_DEBUG(
-			iTools, 
-			TRACE_FLAGS_DEFAULT, 
-			(EAPL("CEapServer::StopL(): aSession=0x%08x calls CancelReceive()\n"),
-			aSession));
-
-		if (static_cast<CEapSession *>(aSession) != NULL)
-			{
-			static_cast<CEapSession *>(aSession)->CancelReceive();
-			}
-	}
-}
-
-//----------------------------------------------------------------------------
-
-void CEapServer::BackupOrRestoreCompleteL()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("ERROR: CEapServer::BackupOrRestoreCompleteL(): Do something\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::BackupOrRestoreCompleteL()");
-}
-
-//----------------------------------------------------------------------------
-
-void CEapServer::BackupOrRestoreStartingL()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("WARNING: CEapServer::BackupOrRestoreStartingL(): Terminates EAP-SERVER. All sessions are also closed. All files are unlocked for backup or restore.\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapServer::BackupOrRestoreStartingL()");
-
-    StopL();
-}
-
-//----------------------------------------------------------------------------
-
-/*
-    class CEapDelayedShutdown
-*/
-
-CEapDelayedShutdown::CEapDelayedShutdown(abs_eap_am_tools_c * const tools, CEapServer * const aServer)
-    : CActive(0)
-	, iTools(tools)
-	, iServer(aServer)
-    {
-    }
-
-//----------------------------------------------------------------------------
-
-void CEapDelayedShutdown::ConstructL()
-    {
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapDelayedShutdown::ConstructL()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::ConstructL()");
-
-    CActiveScheduler::Add(this);
-    User::LeaveIfError(iTimer.CreateLocal());
-    }
-
-//----------------------------------------------------------------------------
-
-CEapDelayedShutdown::~CEapDelayedShutdown()
-    {
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapDelayedShutdown::~CEapDelayedShutdown()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::~CEapDelayedShutdown()");
-
-    Cancel();
-    iTimer.Close();
-    }
-
-//----------------------------------------------------------------------------
-
-void CEapDelayedShutdown::Start()
-    {
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapDelayedShutdown::Start()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::Start()");
-
-    iTimer.After(iStatus, KEapShutdownInterval);
-    SetActive();
-    }
-
-//----------------------------------------------------------------------------
-
-void CEapDelayedShutdown::DoCancel()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapDelayedShutdown::DoCancel()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::DoCancel()");
-
-	iTimer.Cancel();
-}
-
-//----------------------------------------------------------------------------
-
-TInt CEapDelayedShutdown::RunError(TInt aError)
-{
-	EAP_TRACE_DEBUG(
-		iTools,
-		TRACE_FLAGS_DEFAULT,
-		(EAPL("CEapDelayedShutdown::RunError(): aError=%d, this=0x%08x\n"),
-		aError,
-		this));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::RunError()");
-
-	iTimer.Cancel();
-
-	return aError;
-}
-
-//----------------------------------------------------------------------------
-
-void CEapDelayedShutdown::RunL()
-{
-	EAP_TRACE_DEBUG(
-		iTools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("CEapDelayedShutdown::RunL(), calls CActiveScheduler::Stop()\n")));
-
-	EAP_TRACE_RETURN_STRING(iTools, "returns: CEapDelayedShutdown::RunL()");
-
-	CActiveScheduler::Stop();
-}
-
-//----------------------------------------------------------------------------
-
-// end