sdkcreationmw/sdkruntimes/new_wsock_3pc/src/winsockflow.cpp
author rajpuroh
Wed, 21 Apr 2010 10:32:25 +0530
changeset 2 82fb8aa91b2c
permissions -rw-r--r--
Winsock 3 PC Arch Contribution
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     1
#if 1
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     2
#include <es_mbuf.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     3
#include <agenterrors.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     4
#include "winsockbinders.h"
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     5
#include "winsockflow.h"
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     6
#include <comms-infras/linkmessages.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     7
#include <comms-infras/ss_metaconnprov.h>					// for SAccessPointConfig
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     8
#include <comms-infras/commsdebugutility.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     9
#include <elements/nm_messages_base.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    10
#include <elements/nm_messages_child.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    11
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    12
using namespace Messages;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    13
using namespace MeshMachine;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    14
using namespace ESock;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    15
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    16
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    17
#endif
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    18
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    19
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    20
class CWinsockNcp4;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    21
class CWinsockNcp6;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    22
struct TWinsockInfo;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    23
#if 1
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    24
/*
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    25
 * This sections defines a whole load of constants etc... not very exciting
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    26
 */
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    27
#if defined (WINSOCK_DEBUG)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    28
	#define LOG(a) 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    29
#else
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    30
	#define LOG(a)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    31
#endif
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    32
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    33
_LIT8(KDescIp6, "ip6");
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    34
_LIT8(KDescIp, "ip");
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    35
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    36
// Note: The "tunnel" logging string has been repeated here but should be unified throughout
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    37
// the Tunnel CFProtocol.  The main logging relies on 16-bit RFileLogger calls whereas the
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    38
// CFNode logging requires an 8-bit string.  An attempt to make everything 8-bit resulted
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    39
// in undefined RFileLogger symbols.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    40
#ifdef SYMBIAN_TRACE_ENABLE
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    41
_LIT8(KWinsockLog, "W3sock");
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    42
#endif
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    43
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    44
/*
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    45
 * The Link class
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    46
 */
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    47
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    48
CWinsockFlow::CWinsockFlow(CSubConnectionFlowFactoryBase& aFactory, const TNodeId& aSubConnId, CProtocolIntfBase* aProtocolIntf)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    49
	: CSubConnectionFlowBase(aFactory, aSubConnId, aProtocolIntf)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    50
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    51
Constructor.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    52
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    53
@param aFactory Reference to the factory which created this object.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    54
@param aSubConnId Id of SubConnection Provider - for sending messages to it.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    55
@param aProtocolIntf Protocol Interface corresponding to the Flow.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    56
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    57
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    58
    LOG_NODE_CREATE(KWinsockLog, CWinsockFlow); 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    59
   
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    60
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    61
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    62
CWinsockFlow::~CWinsockFlow()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    63
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    64
    LOG_NODE_DESTROY(KWinsockLog, CWinsockFlow); 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    65
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    66
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    67
TInt CWinsockFlow::Notification(TWinsockAgentMessage::TTunnelSetAddress& aMessage)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    68
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    69
	if (iNifIf4)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    70
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    71
		return iNifIf4->Notification(aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    72
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    73
	if (iNifIf6)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    74
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    75
		return iNifIf6->Notification(aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    76
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    77
	return KErrNotSupported;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    78
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    79
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    80
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    81
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    82
// CSubConnectionFlowBase
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    83
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    84
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    85
MFlowBinderControl* CWinsockFlow::DoGetBinderControlL()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    86
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    87
	return this;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    88
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    89
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    90
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    91
// MFlowBinderControl methods
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    92
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    93
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    94
MLowerControl* CWinsockFlow::GetControlL(const TDesC8& aProtocol)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    95
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    96
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    97
	if (aProtocol.CompareF(KDescIp6) == 0)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    98
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    99
		if ( iNifIf6 )
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   100
			{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   101
			//CTunnelNcpLog::Printf(_L("CWinsockFlow:\tGetControlL already bound to %S"), &aProtocol);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   102
			User::Leave(KErrInUse);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   103
			return NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   104
			}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   105
		iNifIf6 = CWinsockNcp6::ConstructL(*this);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   106
		return iNifIf6;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   107
        }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   108
	else if (aProtocol.CompareF(KDescIp) == 0)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   109
	    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   110
		if ( iNifIf4 )
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   111
            {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   112
        //    CTunnelNcpLog::Printf(_L("CWinsockFlow:\tGetControlL already bound to %S"), &aProtocol);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   113
			User::Leave(KErrInUse);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   114
            return NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   115
            }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   116
        iNifIf4 = CWinsockNcp4::ConstructL(*this);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   117
		return iNifIf4;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   118
        }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   119
	Panic(ETunnelPanic_BadBind);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   120
	return NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   121
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   122
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   123
MLowerDataSender* CWinsockFlow::BindL(const TDesC8& aProtocol, MUpperDataReceiver* aReceiver, MUpperControl* aControl)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   124
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   125
 * Binds upper CFProtocol to this CFProtocol
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   126
 *
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   127
 * @param aUpperReceiver A pointer to Upper layer Receive class
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   128
 * @param aUpperControl A pointer to Upper layer control class
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   129
 */
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   130
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   131
	MLowerDataSender* lowerDataSender = NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   132
	if (aProtocol.CompareF(KDescIp6) == 0)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   133
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   134
		ASSERT(iNifIf6);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   135
		lowerDataSender = iNifIf6->Bind(aReceiver, aControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   136
        }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   137
	else if (aProtocol.CompareF(KDescIp) == 0)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   138
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   139
		ASSERT(iNifIf4);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   140
		lowerDataSender = iNifIf4->Bind(aReceiver, aControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   141
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   142
	else
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   143
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   144
		// GetControlL() should already have been called.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   145
		Panic(ETunnelPanic_BadBind);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   146
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   147
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   148
	if (lowerDataSender)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   149
    	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   150
    	iSubConnectionProvider.PostMessage(Id(), TCFControlProvider::TActive().CRef());
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   151
    	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   152
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   153
	return lowerDataSender;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   154
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   155
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   156
void CWinsockFlow::Unbind(MUpperDataReceiver* aUpperReceiver, MUpperControl* aUpperControl)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   157
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   158
	if (iNifIf4 && iNifIf4->MatchesUpperControl(aUpperControl))
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   159
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   160
		iNifIf4->Unbind(aUpperReceiver, aUpperControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   161
		delete iNifIf4;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   162
		iNifIf4 = NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   163
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   164
	else
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   165
	if (iNifIf6 && iNifIf6->MatchesUpperControl(aUpperControl))
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   166
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   167
		iNifIf6->Unbind(aUpperReceiver, aUpperControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   168
		delete iNifIf6;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   169
		iNifIf6 = NULL;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   170
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   171
	else
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   172
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   173
		Panic(ETunnelPanic_BadUnbind);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   174
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   175
	MaybePostDataClientIdle();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   176
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   177
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   178
CSubConnectionFlowBase* CWinsockFlow::Flow()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   179
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   180
Return the Flow corresponding to the MFlowBinderControl
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   181
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   182
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   183
	return this;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   184
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   185
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   186
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   187
// Messages::ANode
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   188
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   189
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   190
void CWinsockFlow::ReceivedL(const TRuntimeCtxId& aSender, const TNodeId& aRecipient, TSignatureBase& aMessage)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   191
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   192
  
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   193
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   194
    CSubConnectionFlowBase::ReceivedL(aSender, aRecipient, aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   195
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   196
	if (aMessage.IsMessage<TEBase::TError>())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   197
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   198
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   199
	else if (TEChild::ERealmId == aMessage.MessageId().Realm())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   200
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   201
		switch (aMessage.MessageId().MessageId())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   202
			{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   203
		case TEChild::TDestroy::EId :
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   204
			Destroy();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   205
			break;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   206
		default:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   207
//TODO - logging
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   208
			ASSERT(EFalse);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   209
			}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   210
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   211
	else if (TCFDataClient::ERealmId == aMessage.MessageId().Realm())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   212
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   213
		switch (aMessage.MessageId().MessageId())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   214
			{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   215
		case TCFDataClient::TStart::EId :
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   216
			StartFlowL();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   217
			break;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   218
		case TCFDataClient::TStop::EId :
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   219
			StopFlow(static_cast<TCFDataClient::TStop&>(aMessage).iValue);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   220
			break;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   221
		case TCFDataClient::TBindTo::EId:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   222
            {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   223
			TCFDataClient::TBindTo& bindToReq = message_cast<TCFDataClient::TBindTo>(aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   224
			if (!bindToReq.iNodeId.IsNull())
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   225
				{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   226
				User::Leave(KErrNotSupported);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   227
				}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   228
			RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   229
            }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   230
			break;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   231
		case TCFDataClient::TProvisionConfig::EId:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   232
			ProvisionConfig(static_cast<TCFDataClient::TProvisionConfig&>(aMessage).iConfig);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   233
			break;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   234
		default:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   235
//TODO - logging
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   236
			ASSERT(EFalse);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   237
			}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   238
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   239
	else	// realm is not TCFMessage or TTunnelAgentMessage
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   240
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   241
		Panic(ETunnelPanic_UnexpectedMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   242
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   243
		
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   244
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   245
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   246
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   247
// =====================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   248
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   249
// Methods for handling incoming SCPR messages
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   250
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   251
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   252
void CWinsockFlow::StartFlowL()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   253
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   254
    // NOTE: according to the NAF docs the sequence should really be StartSending(), then LinkLayerUp() then Progress()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   255
    // for DNS to work.  However, this tunnel NIF doesn't support DNS.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   256
    //
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   257
	//CTunnelNcpLog::Write(_L("CWinsockFlow:\tStartFlow()"));
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   258
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   259
	// Process any errors that may have occurred during processing of the ProvisionConfig message earlier.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   260
	// ProvisionConfig has no response, so error the StartFlow here.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   261
	User::LeaveIfError(iSavedError);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   262
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   263
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   264
	PostDataClientStartedMessage();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   265
	if (iNifIf4)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   266
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   267
		iNifIf4->StartSending();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   268
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   269
	if (iNifIf6)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   270
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   271
		iNifIf6->StartSending();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   272
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   273
	iMMState = EStarted;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   274
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   275
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   276
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   277
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   278
void CWinsockFlow::StopFlow(TInt aError)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   279
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   280
  //  CTunnelNcpLog::Printf(_L("CWinsockFlow:\tStop(aError %d)"), aError);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   281
   
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   282
    PostFlowDownMessage(aError);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   283
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   284
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   285
void CWinsockFlow::MaybePostDataClientIdle()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   286
    {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   287
	if (iNifIf4 == NULL && iNifIf4 == NULL)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   288
		{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   289
   		iSubConnectionProvider.RNodeInterface::PostMessage(Id(), TCFControlProvider::TIdle().CRef());
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   290
		}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   291
    }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   292
/*
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   293
Provisioning description for Tunnel CFProtocol Flow:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   294
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   295
- on receipt of the TProvisionConfig message, the provisioning information contained within
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   296
  the AccessPointConfig array is validated:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   297
	- TTunnelProvision must be present.  It is added by the Tunnel MCPr and populated from CommsDat.  A pointer to it
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   298
	  is stored in iProvisionInfo. If missing, TError(TCFDataClient::TStart, KErrCorrupt) message is signalled back
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   299
  	  to the SCPr on the next StartFlow message (ProvisionConfig has no response message).
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   300
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   301
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   302
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   303
void CWinsockFlow::ProvisionConfig(const ESock::RMetaExtensionContainerC& aConfigData)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   304
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   305
Handle ProvisionConfig message from SCPR.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   306
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   307
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   308
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   309
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   310
	iSavedError = KErrNone;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   311
	//CTunnelNcpLog::Printf(_L("CWinsockFlow:\tProvisionConfig message received"));
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   312
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   313
	AccessPointConfig().Close();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   314
	AccessPointConfig().Open(aConfigData);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   315
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   316
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   317
#if 0  // Need to Writen for Winsock
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   318
	/* Look into Agent MCPR to find the correct class for winscok */
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   319
    const TWinsockProvision* provision = static_cast<const TWinsockProvision*>(AccessPointConfig().FindExtension(STypeId::CreateSTypeId(TWinsockProvision::EUid, TWinsockProvision::ETypeId)));
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   320
    if (provision == NULL)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   321
        {
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   322
        //CTunnelNcpLog::Printf(_L("CWinsockFlow:\tProcessProvisionConfigL() - no Winsock configuration"));
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   323
		iSavedError = KErrCorrupt;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   324
        }
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   325
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   326
	ASSERT(iProvisionInfo == NULL);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   327
	iProvisionInfo = &provision->iInfo;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   328
	ASSERT(iProvisionInfo);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   329
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   330
	#endif // #if 1
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   331
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   332
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   333
void CWinsockFlow::Destroy()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   334
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   335
Handle Destroy message from SCPR.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   336
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   337
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   338
	ASSERT(iNifIf4 == NULL);		// must not still be bound from above before being destroyed
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   339
	ASSERT(iNifIf6 == NULL);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   340
	DeleteThisFlow();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   341
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   342
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   343
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   344
// Utility functions
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   345
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   346
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   347
void CWinsockFlow::PostProgressMessage(TInt aStage, TInt aError)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   348
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   349
	iSubConnectionProvider.RNodeInterface::PostMessage(Id(), TCFMessage::TStateChange(Elements::TStateChange(aStage, aError)).CRef());
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   350
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   351
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   352
void Panic(TTunnelPanic aPanic)
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   353
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   354
	_LIT(KWinsockLogPanicTag, "Winsock");
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   355
	User::Panic(KWinsockLogPanicTag, aPanic);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   356
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   357
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   358
#endif