javacommons/gcfprotocols/socket/socket/src.s60/socketlocalhostinfo.cpp
author hgs
Tue, 06 Jul 2010 20:36:19 +0300
changeset 49 35baca0e7a2e
parent 26 dc7c549001d5
child 56 abc41079b313
permissions -rw-r--r--
v2.2.3_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:  ApnSettings.app
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <es_enum.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <es_sock.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <in_sock.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "socketlocalhostinfo.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "logger.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "connectionmanager.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
int GetlocalIPAdressL(char *localaddr, int aMidletIapId, int aApType);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    27
OS_EXPORT int SocketLocalHostInfo::getLocalAddress(int /* aSd */, char *aLocalAddr,
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
        int aMidletIapId, int aApType)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
    TRAPD(err,GetlocalIPAdressL(aLocalAddr,aMidletIapId, aApType););
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
    return err;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    35
int getIPAddressL(const int aIapId, char *ipAddress)
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    36
{
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    37
    RSocketServ socketServ;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    38
    RSocket sock;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    39
    User::LeaveIfError(socketServ.Connect());
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    40
    User::LeaveIfError(sock.Open(socketServ, KAfInet, KSockStream,
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    41
                                 KProtocolInetTcp));
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    42
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    43
    //  find the ip address of the active interface
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    44
    TSoInetInterfaceInfo ifInfo;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    45
    TPckg<TSoInetInterfaceInfo> ifInfoPkg(ifInfo);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    46
    TSoInetIfQuery ifQuery;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    47
    TPckg<TSoInetIfQuery> ifQueryPkg(ifQuery);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    48
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    49
    // To find out which interfaces are using our current IAP, we must
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    50
    // enumerate and go through all of them and make a query by name for each.
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    51
    ILOG(ESOCKET, "Looping thru all the destinations and ap \n\n");
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    52
    User::LeaveIfError(sock.SetOpt(KSoInetEnumInterfaces,
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    53
                                   KSolInetIfCtrl));
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    54
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    55
    while (sock.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, ifInfoPkg)
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    56
            == KErrNone)
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    57
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    58
        ifQuery.iName = ifInfo.iName;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    59
        TInt err = sock.GetOpt(KSoInetIfQueryByName, KSolInetIfQuery,
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    60
                               ifQueryPkg);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    61
        if ((err == KErrNone) && (ifQuery.iZone[1] == aIapId))
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    62
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    63
            ILOG2(ESOCKET, "Network id = %d, IAP id = %d ",(TUint32)(ifQuery.iZone[15]),(TUint32)ifQuery.iZone[1]);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    64
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    65
            // IAP ID is index 1 of iZone
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    66
            // We have found an interface using the IAP we are interested in.
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    67
            if (ifInfo.iAddress.Address() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    68
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    69
                if (!ifInfo.iAddress.IsUnspecified()
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    70
                        && !ifInfo.iAddress.IsLoopback()
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    71
                        && !ifInfo.iAddress.IsLinkLocal())
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    72
                {
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    73
                    // found a IPv4 address
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    74
                    TBuf8<20> aIP8;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    75
                    TBuf<20> aIP;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    76
                    TInetAddr aAddr;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    77
                    aAddr = ifInfo.iAddress;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    78
                    aAddr.ConvertToV4();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    79
                    aAddr.Output(aIP);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    80
                    aIP8.Copy(aIP);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    81
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    82
                    strncpy(ipAddress, (char*) aIP8.Ptr(),
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    83
                            aIP8.Length());
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    84
                    ipAddress[aIP8.Length()] = '\0';
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    85
                    ILOG1(ESOCKET, "GetlocalIPAdressLLL , ip = %s",
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    86
                          ipAddress);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    87
                    sock.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    88
                    socketServ.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    89
                    ILOG(ESOCKET, "returning from getIpAddr");
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    90
                    return KErrNone;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    91
                }
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    92
            }  // end if addr > 0
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    93
            else if (err != KErrNone)
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    94
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    95
                sock.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    96
                return err; // return with error
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    97
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    98
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
    99
    }   // end while
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   100
    sock.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   101
    socketServ.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   102
    return KErrNone;
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   103
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   104
}
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   105
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
/**
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
 *In Symbian, when a server connection is opened, it is not bound to any interface
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
 *so the openC calls returns "0.0.0.0" as the local address.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
 *To fetch the proper address (as in native apps), we check for any active connection(s)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
 *on the device. If there is an active con and is same as midlet configured AP or device default AP
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
 *then the IP address of that interface is fetched and returned.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
 */
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
int GetlocalIPAdressL(char *localaddr, int aMidletIapId, int aType)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    JELOG2(ESOCKET);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   117
    int err = KErrNone;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
    TUint32 activeIapId = 0;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    TConnectionInfoBuf connectionInfo;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
    TUint count = 0;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
    bool flg = false;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    RSocketServ socketServ;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    RSocket sock;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    RConnection conn;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    User::LeaveIfError(socketServ.Connect());
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    User::LeaveIfError(sock.Open(socketServ, KAfInet, KSockStream,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
                                 KProtocolInetTcp));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    User::LeaveIfError(conn.Open(socketServ));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    User::LeaveIfError(conn.EnumerateConnections(count));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
    ILOG1(ESOCKET, "Active connections count = %d ", count);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
    strcpy(localaddr, "0.0.0.0");
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
    if (count <= 0)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
        // no active connections on the device , return "0.0.0.0"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
        return KErrNone;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
        // We have an active connection
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
        for (int j = 1; j <= count; j++)    // loop thru all active connection(s)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
            User::LeaveIfError(conn.GetConnectionInfo(j, connectionInfo));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
            activeIapId = connectionInfo().iIapId;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
            ILOG1(ESOCKET, "Active connection iap id = %d ", activeIapId);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
            if (aType > 0)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
            {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
                switch (aType)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
                {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
                case 2:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
                    flg = ConnectionManager::isIapDefault(activeIapId, aMidletIapId,false);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
                    if (!flg)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
                        continue;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
                    break;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
                case 3:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
                    if (activeIapId != aMidletIapId)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
                        continue; // go to the next active IAP
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
                    break;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
                default:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
                    break;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
                }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
            }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
            else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
            {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
                // no access point configured for the midlet, check system default
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
                bool flag = ConnectionManager::isIapDefault(activeIapId, 0);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
                ILOG1(ESOCKET, "Connection Manager isIapDefault returned %d ",
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
                      flag);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
                if (!flag)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
                    continue; // go to the next active IAP
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
            }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   177
            // find the ip address of the active IAP
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   178
            err = getIPAddressL(activeIapId,localaddr);
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   179
            break;  // once we find the IP addr, return
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
        } // end for loop
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
    } // end else active connection
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   184
    ILOG(ESOCKET, "GetlocalIPAdressL , got ip ");
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   185
    conn.Close();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    sock.Close();
49
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   187
    socketServ.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   188
35baca0e7a2e v2.2.3_1
hgs
parents: 26
diff changeset
   189
    return err; // return with KErrNotFound
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
}