sdkcreationmw/sdkruntimes/wsock/src/WinsockAgent.cpp
author rajpuroh
Mon, 08 Mar 2010 12:09:11 +0530
changeset 0 b26acd06ea60
child 1 ac50fd48361b
permissions -rw-r--r--
First Contribution of SDK components
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     1
/*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     2
* Copyright (c) 2004-2005 Nokia Corporation and/or its subsidiary(-ies).
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     3
* All rights reserved.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     8
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     9
* Initial Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    11
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    12
* Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    13
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    14
* Description: 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    15
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    16
*/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    17
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    18
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    19
#define TRACE_PREFIX "WSOCK: Agent: "
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    20
#include "wsock.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    21
#include "WinsockAgent.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    22
#include "WinsockAgentCallback.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    23
#include "WinsockProtocolFamily.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    24
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    25
#ifdef SYMBIAN_NETWORKING_PLATSEC
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    26
#define ACCESS_METHOD1(_ret,_what,_p1) \
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    27
    _ret CWinsockAgent::Do##_what(_p1, const RMessagePtr2* /*aMessage*/ )
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    28
#define ACCESS_METHOD2(_ret,_what,_p1,_p2) \
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    29
    _ret CWinsockAgent::Do##_what(_p1, _p2, const RMessagePtr2* /*aMessage*/ )
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    30
#else /* SYMBIAN_NETWORKING_PLATSEC */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    31
#define ACCESS_METHOD1(_ret,_what,_p1) \
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    32
    _ret CWinsockAgent::_what(_p1)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    33
#define ACCESS_METHOD2(_ret,_what,_p1,_p2) \
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    34
    _ret CWinsockAgent::_what(_p1,_p2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    35
#endif /* SYMBIAN_NETWORKING_PLATSEC */
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    36
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    37
// Settings
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    38
_LIT(KIfName,"IfName");                 // IF_NAME
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    39
_LIT(KIfNetworks,"IfNetworks");         // SERVICE_IF_NETWORKS
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    40
_LIT(KIAPBearerType,"IAP\\IAPBearerType");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    41
_LIT(KIAPServiceType,"IAP\\IAPServiceType");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    42
_LIT(KIAPName,"IAP\\Name");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    43
_LIT(KIAPId,"IAP\\Id");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    44
_LIT(KIAPService,"IAP\\IAPService");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    45
_LIT(KIAPNetwork,"IAP\\IAPNetwork");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    46
_LIT(KLANBearerName,"LANBearer\\Name");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    47
_LIT(KLANBearerLastSocketActivityTimeout,"LANBearer\\LastSocketActivityTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    48
_LIT(KLANBearerLastSocketActivityTimeout2,"LastSocketActivityTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    49
_LIT(KLANBearerLastSessionClosedTimeout,"LANBearer\\LastSessionClosedTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    50
_LIT(KLANBearerLastSessionClosedTimeout2,"LastSessionClosedTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    51
_LIT(KLANBearerLastSocketClosedTimeout,"LANBearer\\LastSocketClosedTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    52
_LIT(KLANBearerLastSocketClosedTimeout2,"LastSocketClosedTimeout");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    53
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    54
CWinsockAgent* CWinsockAgent::NewL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    55
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    56
    CWinsockAgent* self = new(ELeave)CWinsockAgent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    57
    CleanupStack::PushL(self);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    58
    self->ConstructL();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    59
    CleanupStack::Pop(self);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    60
    return self;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    61
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    62
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    63
CWinsockAgent::CWinsockAgent()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    64
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    65
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    66
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    67
CWinsockAgent::~CWinsockAgent()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    68
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    69
    if (iConnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    70
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    71
        iConnector->Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    72
        delete iConnector;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    73
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    74
    if (iDisconnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    75
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    76
        iDisconnector->Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    77
        delete iDisconnector;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    78
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    79
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    80
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
void CWinsockAgent::ConstructL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
    WsockCheckCommDbL(iIapId, iIapNetwork, iIapService, iIapBearer);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
void CWinsockAgent::Info(TNifAgentInfo& aInfo) const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
    aInfo.iVersion = TVersion(1,0,0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
    aInfo.iName = KWinsockAgent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
void CWinsockAgent::Connect(TAgentConnectType aType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
    Connect(aType, NULL);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
void CWinsockAgent::Connect(TAgentConnectType DEBUG_ONLY(aType), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
                            CStoreableOverrideSettings* /*aOverride*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
    TRACE1("Connect(%d)",aType);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   102
    ScheduleConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   103
    iNotify->ServiceStarted();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   104
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   105
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   106
void CWinsockAgent::CancelConnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   107
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   108
    TRACE("CancelConnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   109
    CancelConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   110
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   111
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   112
void CWinsockAgent::Reconnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   113
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   114
    TRACE("Reconnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   115
    ScheduleConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   116
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   117
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   118
void CWinsockAgent::CancelReconnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   119
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   120
    TRACE("CancelReconnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   121
    CancelConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   122
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   123
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   124
void CWinsockAgent::Authenticate(TDes& /*aUsername*/, TDes& /*aPassword*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   125
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   126
    TRACE("Authenticate()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   127
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   128
    iNotify->AuthenticateComplete(KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   129
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   130
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   131
void CWinsockAgent::CancelAuthenticate()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   132
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   133
    TRACE("CancelAuthenticate()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   134
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   135
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   136
void CWinsockAgent::Disconnect(TInt aReason)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   137
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   138
    TRACE1("Disconnect(%d)",aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   139
    iDisconnectReason = aReason;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   140
    if (!iDisconnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   141
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   142
        iDisconnector = new CWinsockAgentCallback(this,DisconnectComplete);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   143
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   144
    if (iDisconnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   145
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   146
        // Schedule asynchronous disconnect notification
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   147
        ASSERT(iDisconnector->Agent() == this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   148
        iDisconnector->InvokeLater();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   149
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   150
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   151
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   152
TInt CWinsockAgent::GetExcessData(TDes8& aBuffer)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   153
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   154
    TRACE("GetExcessData()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   155
    aBuffer.SetLength(0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   156
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   157
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   158
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   159
ACCESS_METHOD2(TInt, ReadInt, const TDesC& aField, TUint32& aValue)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   160
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   161
    if (aField == KIAPId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   162
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   163
        aValue = iIapId;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   164
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   165
    else if (aField == KIAPNetwork)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   166
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   167
        aValue = iIapNetwork;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   168
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   169
    else if (aField == KIAPService)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   170
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   171
        aValue = iIapService;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   172
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   173
    else if (aField == KLANBearerLastSocketActivityTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   174
             aField == KLANBearerLastSocketActivityTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   175
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   176
        aValue = KWinsockSocketActivityTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   177
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   178
    else if (aField == KLANBearerLastSessionClosedTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   179
             aField == KLANBearerLastSessionClosedTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   180
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   181
        aValue = KWinsockSessionClosedTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   182
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   183
    else if (aField == KLANBearerLastSocketClosedTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   184
             aField == KLANBearerLastSocketClosedTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   185
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   186
        aValue = KWinsockSocketClosedTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   187
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   188
    else
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   189
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   190
        TRACE1("ReadInt(%S)  -> KErrNotFound",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   191
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   192
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   193
    TRACE2("ReadInt(%S) = %d",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   194
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   195
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   196
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   197
ACCESS_METHOD2(TInt, WriteInt, const TDesC& DEBUG_ONLY(aField), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   198
               TUint32 DEBUG_ONLY(aValue))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   199
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   200
    TRACE2("WriteInt(%S,%d)",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   201
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   202
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   203
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   204
ACCESS_METHOD2(TInt, ReadDes, const TDesC& DEBUG_ONLY(aField), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   205
               TDes8& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   206
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   207
    TRACE1("ReadDes8(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   208
    return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   209
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   210
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   211
ACCESS_METHOD2(TInt, WriteDes, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   212
               const TDesC8& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   213
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   214
    TRACE1("WriteDes8(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   215
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   216
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   217
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   218
ACCESS_METHOD2(TInt, ReadDes, const TDesC& aField, TDes16& aValue)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   219
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   220
    if (aField == KIfName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   221
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   222
        aValue = KWinsockInterface;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   223
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   224
    else if (aField == KIfNetworks)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   225
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   226
        CWinsockProtocolFamily::ProtocolNames(aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   227
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   228
    else if (aField == KIAPBearerType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   229
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   230
        aValue = KWinsockBearerType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   231
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   232
    else if (aField == KIAPServiceType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   233
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   234
        aValue = KWinsockServiceType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   235
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   236
    else if (aField == KIAPName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   237
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   238
        aValue = KWinsockAPName;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   239
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   240
    else if (aField == KLANBearerName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   241
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   242
        aValue = KWinsockBearerName;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   243
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   244
    else 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   245
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   246
        TRACE1("ReadDes16(%S) -> KErrNotFound",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   247
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   248
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   249
    TRACE2("ReadDes16(%S) = %S",&aField,&aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   250
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   251
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   252
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   253
ACCESS_METHOD2(TInt, WriteDes, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   254
               const TDesC16& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   255
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   256
    TRACE1("WriteDes16(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   257
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   258
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   259
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   260
ACCESS_METHOD2(TInt, ReadBool, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   261
               TBool& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   262
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   263
    TRACE1("ReadBool(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   264
    return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   265
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   266
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   267
ACCESS_METHOD2(TInt, WriteBool, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   268
               TBool DEBUG_ONLY(aValue))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   269
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   270
    TRACE2("WriteBool(%S,%d)",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   271
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   272
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   273
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   274
ACCESS_METHOD1(HBufC*, ReadLongDesLC, const TDesC& DEBUG_ONLY(aField))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   275
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   276
    TRACE1("ReadLongDesLC(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   277
    return NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   278
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   279
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   280
TInt CWinsockAgent::Notification(TNifToAgentEventType DEBUG_ONLY(aEvent),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   281
                                 TAny* /*aInfo*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   282
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   283
    TRACE1("Notification(%d)",aEvent);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   284
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   285
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   286
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   287
TInt CWinsockAgent::IncomingConnectionReceived()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   288
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   289
    TRACE("IncomingConnectionReceived()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   290
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   291
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   292
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   293
void CWinsockAgent::GetLastError(TInt& aError)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   294
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   295
    TRACE("GetLastError()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   296
    aError = KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   297
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   298
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   299
TBool CWinsockAgent::IsActive() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   300
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   301
    return ETrue;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   302
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   303
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   304
TBool CWinsockAgent::IsReconnect() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   305
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   306
    return EFalse;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   307
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   308
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   309
void CWinsockAgent::SetConnectionSettingsL(const TConnectionSettings& aSettings)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   310
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   311
    TRACE("SetConnectionSettingsL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   312
    iSettings = aSettings;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   313
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   314
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   315
TConnectionSettings& CWinsockAgent::ConnectionSettingsL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   316
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   317
    TRACE("ConnectionSettingsL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   318
    return iSettings;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   319
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   320
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   321
void CWinsockAgent::SetOverridesL(CStoreableOverrideSettings* /*aOverride*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   322
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   323
    TRACE("SetOverridesL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   324
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   325
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   326
CStoreableOverrideSettings* CWinsockAgent::OverridesL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   327
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   328
    TRACE("OverridesL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   329
    User::Leave(KErrNotSupported);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   330
    return NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   331
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   332
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   333
void CWinsockAgent::RequestNotificationOfServiceChangeL(
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   334
    MAgentSessionNotify* /*aSession*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   335
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   336
    User::Leave(KErrNotSupported);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   337
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   338
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   339
void CWinsockAgent::CancelRequestNotificationOfServiceChange(
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   340
    MAgentSessionNotify* /*aSession*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   341
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   342
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   343
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   344
// Private methods
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   345
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   346
void CWinsockAgent::ScheduleConnectNotification()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   347
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   348
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   349
    if (!iConnector && iNotify)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   350
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   351
        iConnector = new CWinsockAgentCallback(this,ConnectComplete);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   352
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   353
    if (iConnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   354
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   355
        // Schedule asynchronous connect notification
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   356
        ASSERT(iConnector->Agent() == this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   357
        iConnector->InvokeLater();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   358
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   359
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   360
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   361
void CWinsockAgent::CancelConnectNotification()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   362
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   363
    if (iConnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   364
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   365
        iConnector->Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   366
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   367
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   368
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   369
void CWinsockAgent::ConnectComplete()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   370
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   371
    TRACE("firing connection notification");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   372
    iNotify->AgentProgress(KConnectionOpen, KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   373
    iNotify->ConnectComplete(KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   374
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   375
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   376
void CWinsockAgent::DisconnectComplete()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   377
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   378
    TRACE("firing disconnect notification");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   379
    iNotify->AgentProgress(KConnectionClosed, iDisconnectReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   380
    iNotify->DisconnectComplete();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   381
}