sdkcreationmw/sdkruntimes/wsock/src/WinsockAgent.cpp
author rajpuroh
Wed, 21 Apr 2010 09:56:53 +0530
changeset 1 ac50fd48361b
parent 0 b26acd06ea60
permissions -rw-r--r--
Second Contribution
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
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
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
*
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    14
* Description:
0
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
    }
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    79
    
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    80
  
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
void CWinsockAgent::ConstructL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
    WsockCheckCommDbL(iIapId, iIapNetwork, iIapService, iIapBearer);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
void CWinsockAgent::Info(TNifAgentInfo& aInfo) const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
    aInfo.iVersion = TVersion(1,0,0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
    aInfo.iName = KWinsockAgent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
void CWinsockAgent::Connect(TAgentConnectType aType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
    Connect(aType, NULL);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
void CWinsockAgent::Connect(TAgentConnectType DEBUG_ONLY(aType), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
                            CStoreableOverrideSettings* /*aOverride*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   102
    TRACE1("Connect(%d)",aType);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   103
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   104
    ScheduleConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   105
    iNotify->ServiceStarted();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   106
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   107
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   108
void CWinsockAgent::CancelConnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   109
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   110
    TRACE("CancelConnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   111
    CancelConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   112
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   113
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   114
void CWinsockAgent::Reconnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   115
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   116
    TRACE("Reconnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   117
    ScheduleConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   118
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   119
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   120
void CWinsockAgent::CancelReconnect()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   121
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   122
    TRACE("CancelReconnect()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   123
    CancelConnectNotification();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   124
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   125
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   126
void CWinsockAgent::Authenticate(TDes& /*aUsername*/, TDes& /*aPassword*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   127
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   128
    TRACE("Authenticate()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   129
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   130
    iNotify->AuthenticateComplete(KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   131
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   132
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   133
void CWinsockAgent::CancelAuthenticate()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   134
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   135
    TRACE("CancelAuthenticate()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   136
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   137
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   138
void CWinsockAgent::Disconnect(TInt aReason)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   139
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   140
    TRACE1("Disconnect(%d)",aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   141
    iDisconnectReason = aReason;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   142
    if (!iDisconnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   143
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   144
        iDisconnector = new CWinsockAgentCallback(this,DisconnectComplete);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   145
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   146
    if (iDisconnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   147
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   148
        // Schedule asynchronous disconnect notification
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   149
        ASSERT(iDisconnector->Agent() == this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   150
        iDisconnector->InvokeLater();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   151
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   152
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   153
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   154
TInt CWinsockAgent::GetExcessData(TDes8& aBuffer)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   155
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   156
    TRACE("GetExcessData()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   157
    aBuffer.SetLength(0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   158
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   159
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   160
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   161
ACCESS_METHOD2(TInt, ReadInt, const TDesC& aField, TUint32& aValue)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   162
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   163
    if (aField == KIAPId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   164
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   165
        aValue = iIapId;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   166
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   167
    else if (aField == KIAPNetwork)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   168
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   169
        aValue = iIapNetwork;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   170
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   171
    else if (aField == KIAPService)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   172
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   173
        aValue = iIapService;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   174
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   175
    else if (aField == KLANBearerLastSocketActivityTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   176
             aField == KLANBearerLastSocketActivityTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   177
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   178
        aValue = KWinsockSocketActivityTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   179
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   180
    else if (aField == KLANBearerLastSessionClosedTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   181
             aField == KLANBearerLastSessionClosedTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   182
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   183
        aValue = KWinsockSessionClosedTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   184
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   185
    else if (aField == KLANBearerLastSocketClosedTimeout ||
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   186
             aField == KLANBearerLastSocketClosedTimeout2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   187
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   188
        aValue = KWinsockSocketClosedTimeout;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   189
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   190
    else
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   191
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   192
        TRACE1("ReadInt(%S)  -> KErrNotFound",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   193
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   194
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   195
    TRACE2("ReadInt(%S) = %d",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   196
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   197
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   198
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   199
ACCESS_METHOD2(TInt, WriteInt, const TDesC& DEBUG_ONLY(aField), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   200
               TUint32 DEBUG_ONLY(aValue))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   201
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   202
    TRACE2("WriteInt(%S,%d)",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   203
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   204
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   205
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   206
ACCESS_METHOD2(TInt, ReadDes, const TDesC& DEBUG_ONLY(aField), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   207
               TDes8& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   208
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   209
    TRACE1("ReadDes8(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   210
    return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   211
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   212
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   213
ACCESS_METHOD2(TInt, WriteDes, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   214
               const TDesC8& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   215
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   216
    TRACE1("WriteDes8(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   217
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   218
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   219
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   220
ACCESS_METHOD2(TInt, ReadDes, const TDesC& aField, TDes16& aValue)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   221
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   222
    if (aField == KIfName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   223
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   224
        aValue = KWinsockInterface;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   225
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   226
    else if (aField == KIfNetworks)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   227
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   228
        CWinsockProtocolFamily::ProtocolNames(aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   229
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   230
    else if (aField == KIAPBearerType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   231
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   232
        aValue = KWinsockBearerType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   233
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   234
    else if (aField == KIAPServiceType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   235
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   236
        aValue = KWinsockServiceType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   237
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   238
    else if (aField == KIAPName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   239
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   240
        aValue = KWinsockAPName;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   241
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   242
    else if (aField == KLANBearerName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   243
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   244
        aValue = KWinsockBearerName;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   245
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   246
    else 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   247
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   248
        TRACE1("ReadDes16(%S) -> KErrNotFound",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   249
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   250
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   251
    TRACE2("ReadDes16(%S) = %S",&aField,&aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   252
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   253
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   254
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   255
ACCESS_METHOD2(TInt, WriteDes, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   256
               const TDesC16& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   257
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   258
    TRACE1("WriteDes16(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   259
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   260
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   261
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   262
ACCESS_METHOD2(TInt, ReadBool, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   263
               TBool& /*aValue*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   264
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   265
    TRACE1("ReadBool(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   266
    return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   267
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   268
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   269
ACCESS_METHOD2(TInt, WriteBool, const TDesC& DEBUG_ONLY(aField),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   270
               TBool DEBUG_ONLY(aValue))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   271
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   272
    TRACE2("WriteBool(%S,%d)",&aField,aValue);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   273
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   274
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   275
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   276
ACCESS_METHOD1(HBufC*, ReadLongDesLC, const TDesC& DEBUG_ONLY(aField))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   277
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   278
    TRACE1("ReadLongDesLC(%S)",&aField);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   279
    return NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   280
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   281
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   282
TInt CWinsockAgent::Notification(TNifToAgentEventType DEBUG_ONLY(aEvent),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   283
                                 TAny* /*aInfo*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   284
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   285
    TRACE1("Notification(%d)",aEvent);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   286
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   287
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   288
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   289
TInt CWinsockAgent::IncomingConnectionReceived()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   290
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   291
    TRACE("IncomingConnectionReceived()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   292
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   293
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   294
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   295
void CWinsockAgent::GetLastError(TInt& aError)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   296
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   297
    TRACE("GetLastError()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   298
    aError = KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   299
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   300
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   301
TBool CWinsockAgent::IsActive() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   302
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   303
    return ETrue;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   304
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   305
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   306
TBool CWinsockAgent::IsReconnect() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   307
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   308
    return EFalse;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   309
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   310
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   311
void CWinsockAgent::SetConnectionSettingsL(const TConnectionSettings& aSettings)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   312
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   313
    TRACE("SetConnectionSettingsL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   314
    iSettings = aSettings;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   315
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   316
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   317
TConnectionSettings& CWinsockAgent::ConnectionSettingsL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   318
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   319
    TRACE("ConnectionSettingsL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   320
    return iSettings;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   321
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   322
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   323
void CWinsockAgent::SetOverridesL(CStoreableOverrideSettings* /*aOverride*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   324
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   325
    TRACE("SetOverridesL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   326
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   327
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   328
CStoreableOverrideSettings* CWinsockAgent::OverridesL()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   329
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   330
    TRACE("OverridesL()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   331
    User::Leave(KErrNotSupported);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   332
    return NULL;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   333
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   334
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   335
void CWinsockAgent::RequestNotificationOfServiceChangeL(
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   336
    MAgentSessionNotify* /*aSession*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   337
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   338
    User::Leave(KErrNotSupported);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   339
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   340
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   341
void CWinsockAgent::CancelRequestNotificationOfServiceChange(
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   342
    MAgentSessionNotify* /*aSession*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   343
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   344
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   345
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   346
// Private methods
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   347
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   348
void CWinsockAgent::ScheduleConnectNotification()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   349
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   350
    ASSERT(iNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   351
    if (!iConnector && iNotify)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   352
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   353
        iConnector = new CWinsockAgentCallback(this,ConnectComplete);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   354
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   355
    if (iConnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   356
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   357
        // Schedule asynchronous connect notification
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   358
        ASSERT(iConnector->Agent() == this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   359
        iConnector->InvokeLater();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   360
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   361
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   362
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   363
void CWinsockAgent::CancelConnectNotification()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   364
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   365
    if (iConnector)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   366
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   367
        iConnector->Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   368
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   369
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   370
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   371
void CWinsockAgent::ConnectComplete()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   372
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   373
    TRACE("firing connection notification");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   374
    iNotify->AgentProgress(KConnectionOpen, KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   375
    iNotify->ConnectComplete(KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   376
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   377
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   378
void CWinsockAgent::DisconnectComplete()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   379
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   380
    TRACE("firing disconnect notification");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   381
    iNotify->AgentProgress(KConnectionClosed, iDisconnectReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   382
    iNotify->DisconnectComplete();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   383
}