Revision: 201015 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 17:29:55 +0300
branchRCL_3
changeset 3 87be51aa5b5b
parent 2 5822d84012fb
child 6 eb34711bcc75
Revision: 201015 Kit: 201017
qtmobility/common.pri
qtmobility/configure
qtmobility/configure.bat
qtmobility/data/qtmobility.sisx
qtmobility/examples/examples.pri
qtmobility/features/mobility.prf
qtmobility/features/mobility.prf.template
qtmobility/src/bearer/bearer.pro
qtmobility/src/bearer/qcorewlanengine_mac.mm
qtmobility/src/bearer/qgenericengine.cpp
qtmobility/src/bearer/qnetworkconfigmanager_maemo.cpp
qtmobility/src/bearer/qnetworkconfigmanager_maemo_p.h
qtmobility/src/bearer/qnetworkconfiguration.cpp
qtmobility/src/bearer/qnetworksession.cpp
qtmobility/src/s60installs/s60installs.pro
qtmobility/tests/auto/qnetworkconfigmanager/qnetworkconfigmanager.pro
qtmobility/tests/auto/qnetworkconfigmanager/tst_qnetworkconfigmanager.cpp
qtmobility/tests/auto/qnetworkconfiguration/qnetworkconfiguration.pro
qtmobility/tests/auto/qnetworkconfiguration/tst_qnetworkconfiguration.cpp
qtmobility/tests/auto/qnetworksession/lackey/main.cpp
qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.cpp
qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.pro
--- a/qtmobility/common.pri	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/common.pri	Tue Apr 27 17:29:55 2010 +0300
@@ -123,10 +123,6 @@
 }
 maemo5 {
     DEFINES+= Q_WS_MAEMO_5
-    LIBS += -lgconf-2 -lrtcom-eventlogger -lmodest-dbus-client-1.0 -losso -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0 -ltpsession -ltelepathy-qt4}
-maemo* {
-    LIBS += -L/opt/qt4-maemo5/lib
-    QMAKE_LFLAGS += -Wl,-rpath,/opt/qt4-maemo5/lib
 }
 
 wince* {
--- a/qtmobility/configure	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/configure	Tue Apr 27 17:29:55 2010 +0300
@@ -40,6 +40,39 @@
 ##
 #############################################################################
 
+# return status of 1 if absolute path as first argument
+# also prints the return status
+function isAbsPath() {
+    slash=$(echo $1 | cut -c 1)
+    if [ "$slash" != "/" ]; then
+        echo 0
+        return 0
+    fi
+    echo 1
+    return 1
+}
+
+# Returns the absolute path for $1 for target $2
+# as an example $2 might have value "maemo5".
+# This is required because when building in scratchbox for
+# maemo we do not want to follow symbolic links that are 
+# introduced by scratchbox
+function absPath() {
+    
+    if [ "$2" = "maemo5" -o "$2" = "maemo6" ]; then
+        if [ `isAbsPath $1` = '1' ]; then
+            echo $1;
+        else
+            echo "Relative prefix paths are not supported for Maemo"
+            exit 1;
+        fi
+    else
+        RESULT=`(cd "$1"; /bin/pwd)`
+        echo $RESULT
+    fi
+}
+
+
 # the current directory (shadow build dir)
 shadowpath=`/bin/pwd`
 # the name of this script
@@ -248,12 +281,11 @@
 
 #process PREFIX
 if [ -d "$QT_MOBILITY_PREFIX" ]; then
-    QT_MOBILITY_PREFIX=`(cd "$QT_MOBILITY_PREFIX"; /bin/pwd)`
+    QT_MOBILITY_PREFIX=`absPath $QT_MOBILITY_PREFIX $LINUX_TARGET`
 else
     mkdir -p "$QT_MOBILITY_PREFIX"
-    absPath=`(cd "$QT_MOBILITY_PREFIX"; /bin/pwd)`
+    QT_MOBILITY_PREFIX=`absPath $QT_MOBILITY_PREFIX $LINUX_TARGET`
     rm -rf "$QT_MOBILITY_PREFIX"
-    QT_MOBILITY_PREFIX="$absPath"
 fi
 echo "QT_MOBILITY_PREFIX = $QT_MOBILITY_PREFIX" >> "$CONFIG_IN"
 
@@ -261,12 +293,11 @@
 if [ -z "$QT_MOBILITY_INCLUDE" ]; then
     QT_MOBILITY_INCLUDE="$QT_MOBILITY_PREFIX/include"
 elif [ -d "$QT_MOBILITY_INCLUDE" ]; then
-    QT_MOBILITY_INCLUDE=`(cd "$QT_MOBILITY_INCLUDE"; /bin/pwd)`
+    QT_MOBILITY_INCLUDE=`absPath $QT_MOBILITY_INCLUDE $LINUX_TARGET`
 else
     mkdir -p "$QT_MOBILITY_INCLUDE"
-    absPath=`(cd "$QT_MOBILITY_INCLUDE"; /bin/pwd)`
+    QT_MOBILITY_INCLUDE=`absPath $QT_MOBILITY_INCLUDE $LINUX_TARGET`
     rm -rf "$QT_MOBILITY_INCLUDE"
-    QT_MOBILITY_INCLUDE="$absPath"
 fi
 echo "QT_MOBILITY_INCLUDE = $QT_MOBILITY_INCLUDE" >> "$CONFIG_IN"
 
@@ -275,12 +306,11 @@
 if [ -z "$QT_MOBILITY_LIB" ]; then
     QT_MOBILITY_LIB="$QT_MOBILITY_PREFIX/$LIB_PATH"
 elif [ -d "$QT_MOBILITY_LIB" ]; then
-    QT_MOBILITY_LIB=`(cd "$QT_MOBILITY_LIB"; /bin/pwd)`
+    QT_MOBILITY_LIB=`absPath $QT_MOBILITY_LIB $LINUX_TARGET`
 else
     mkdir -p "$QT_MOBILITY_LIB"
-    absPath=`(cd "$QT_MOBILITY_LIB"; /bin/pwd)`
+    QT_MOBILITY_LIB=`absPath $QT_MOBILITY_LIB $LINUX_TARGET`
     rm -rf "$QT_MOBILITY_LIB"
-    QT_MOBILITY_LIB="$absPath"
 fi
 echo "QT_MOBILITY_LIB = $QT_MOBILITY_LIB" >> "$CONFIG_IN"
 
@@ -288,12 +318,11 @@
 if [ -z "$QT_MOBILITY_BIN" ]; then
     QT_MOBILITY_BIN="$QT_MOBILITY_PREFIX/$BIN_PATH"
 elif [ -d "$QT_MOBILITY_BIN" ]; then
-    QT_MOBILITY_BIN=`(cd "$QT_MOBILITY_BIN"; /bin/pwd)`
+    QT_MOBILITY_BIN=`absPath $QT_MOBILITY_BIN $LINUX_TARGET`
 else
     mkdir -p "$QT_MOBILITY_BIN"
-    absPath=`(cd "$QT_MOBILITY_BIN"; /bin/pwd)`
+    QT_MOBILITY_BIN=`absPath $QT_MOBILITY_BIN $LINUX_TARGET`
     rm -rf "$QT_MOBILITY_BIN"
-    QT_MOBILITY_BIN="$absPath"
 fi
 echo "QT_MOBILITY_BIN = $QT_MOBILITY_BIN" >> "$CONFIG_IN"
 
@@ -388,6 +417,7 @@
 compileTest NetworkManager networkmanager
 compileTest "CoreWLAN (MacOS 10.6)" corewlan
 compileTest "Maemo ICD" maemo-icd
+compileTest "Maemo ICD WLAN" maemo-icd-network-wlan
 
 # Now module selection
 # using 'expr match ....' should help a bit
@@ -401,6 +431,10 @@
 echo "contains(mobility_modules,versit): mobility_modules *= contacts" >> "$CONFIG_IN"
 echo "maemo5|maemo6:contains(maemo-icd_enabled, no): mobility_modules -= bearer" >> "$CONFIG_IN"
 
+# If libicd-network-wlan-dev.h is not present, use own copy.
+# At time of writing, libicd-network-wlan-dev is not released for maemo5.
+echo "maemo5:contains(maemo-icd-network-wlan_enabled, no): INCLUDEPATH += $relpath/src/3rdparty/icd-network-wlan" >> "$CONFIG_IN"
+
 # Ideally we'd skip generating headers for modules that are not enabled
 echo "Generating Mobility Headers..."
 #remove old headers
@@ -466,3 +500,4 @@
     echo ""
     echo "configure failed."
 fi
+
--- a/qtmobility/configure.bat	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/configure.bat	Tue Apr 27 17:29:55 2010 +0300
@@ -360,7 +360,10 @@
         cd config.tests\make
     )
 
-    for /f "tokens=3" %%i in ('call %QT_PATH%qmake %SOURCE_PATH%\config.tests\make\make.pro 2^>^&1 1^>NUL') do set BUILDSYSTEM=%%i
+    for /f "tokens=2,3" %%a in ('call %QT_PATH%qmake %SOURCE_PATH%\config.tests\make\make.pro 2^>^&1 1^>NUL') do (
+        if "%%a" == "MESSAGE:" (
+            set BUILDSYSTEM=%%b)
+    )
 
     if %BUILDSYSTEM% == symbian-abld (
         call make -h >> %PROJECT_LOG% 2>&1
Binary file qtmobility/data/qtmobility.sisx has changed
--- a/qtmobility/examples/examples.pri	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/examples/examples.pri	Tue Apr 27 17:29:55 2010 +0300
@@ -43,7 +43,3 @@
 symbian {
     DEFINES+= QTM_EXAMPLES_SMALL_SCREEN
 }
-maemo* {
-    LIBS += -L/opt/qt4-maemo5/lib
-    QMAKE_LFLAGS += -Wl,-rpath,/opt/qt4-maemo5/lib
-}
--- a/qtmobility/features/mobility.prf	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/features/mobility.prf	Tue Apr 27 17:29:55 2010 +0300
@@ -15,6 +15,7 @@
 LIBS+= -L$${MOBILITY_LIB}
 
 contains(MOBILITY, bearer) {
+    DEFINES += QT_MOBILITY_BEARER
     qtAddLibrary(QtBearer)
 }
 
@@ -37,6 +38,8 @@
 }
 
 contains(MOBILITY, multimedia) {
+    QT += network multimedia
+    contains(QT_CONFIG, opengl): QT += opengl
     qtAddLibrary(QtMedia)
 }
 
--- a/qtmobility/features/mobility.prf.template	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/features/mobility.prf.template	Tue Apr 27 17:29:55 2010 +0300
@@ -15,6 +15,7 @@
 LIBS+= -L$${MOBILITY_LIB}
 
 contains(MOBILITY, bearer) {
+    DEFINES += QT_MOBILITY_BEARER
     qtAddLibrary(QtBearer)
 }
 
@@ -37,6 +38,8 @@
 }
 
 contains(MOBILITY, multimedia) {
+    QT += network multimedia
+    contains(QT_CONFIG, opengl): QT += opengl
     qtAddLibrary(QtMedia)
 }
 
--- a/qtmobility/src/bearer/bearer.pro	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/bearer.pro	Tue Apr 27 17:29:55 2010 +0300
@@ -150,7 +150,7 @@
                  }
             
                 !isEmpty(SDK6) {
-                        LIBS += -framework CoreWLAN
+                        LIBS += -framework CoreWLAN -framework Security
                         DEFINES += MAC_SDK_10_6
                 }
            }
--- a/qtmobility/src/bearer/qcorewlanengine_mac.mm	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qcorewlanengine_mac.mm	Tue Apr 27 17:29:55 2010 +0300
@@ -81,7 +81,7 @@
 {
     [super init];
     center = [NSNotificationCenter defaultCenter];
-    currentInterface = [CWInterface interface];
+    currentInterface = [CWInterface interfaceWithName:nil];
     [center addObserver:self selector:@selector(notificationHandler:) name:kCWLinkDidChangeNotification object:nil];
     [center addObserver:self selector:@selector(notificationHandler:) name:kCWPowerDidChangeNotification object:nil];
 
@@ -282,53 +282,109 @@
             NSError *err = nil;
             NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0];
 
-            NSString *wantedSsid = 0;
-            bool okToProceed = true;
+            QString wantedSsid = 0;
+            bool using8021X = false;
 
             if(getNetworkNameFromSsid(id) != id) {
                 NSArray *array = [CW8021XProfile allUser8021XProfiles];
                 for (NSUInteger i=0; i<[array count]; ++i) {
+
                     if(id == nsstringToQString([[array objectAtIndex:i] userDefinedName])
                         || id == nsstringToQString([[array objectAtIndex:i] ssid]) ) {
                         QString thisName = getSsidFromNetworkName(id);
                         if(thisName.isEmpty()) {
-                            wantedSsid = qstringToNSString(id);
+                            wantedSsid = id;
                         } else {
-                            wantedSsid = qstringToNSString(thisName);
+                            wantedSsid = thisName;
                         }
-                        okToProceed = false;
                         [params setValue: [array objectAtIndex:i] forKey:kCWAssocKey8021XProfile];
+                        using8021X = true;
+                        break;
+                    }
+                }
+            }
+
+            if(!using8021X) {
+                QString wantedNetwork;
+                QMapIterator<QString, QMap<QString,QString> > i(userProfiles);
+                while (i.hasNext()) {
+                    i.next();
+                    wantedNetwork = i.key();
+                    if(id == wantedNetwork) {
+                        wantedSsid = getSsidFromNetworkName(wantedNetwork);
                         break;
                     }
                 }
             }
 
-            if(okToProceed) {
-                NSUInteger index = 0;
+            NSDictionary *parametersDict = [NSDictionary dictionaryWithObjectsAndKeys:
+                                       [NSNumber numberWithBool:YES], kCWScanKeyMerge,
+                                       [NSNumber numberWithInteger:100], kCWScanKeyRestTime,
+                                       qstringToNSString(wantedSsid), kCWScanKeySSID,
+                                       nil];
+
+
+            NSArray *scanArray = [NSMutableArray arrayWithArray:[wifiInterface scanForNetworksWithParameters:parametersDict error:&err]];
+            if(!err) {
+                for(uint row=0; row < [scanArray count]; row++ ) {
+                    CWNetwork *apNetwork = [scanArray objectAtIndex:row];
+                    if(wantedSsid == nsstringToQString([apNetwork ssid])) {
+
+                        if(!using8021X) {
+                            SecKeychainAttribute attributes[3];
 
-                CWConfiguration *userConfig = [ wifiInterface configuration];
-                NSSet *remNets = [userConfig rememberedNetworks];
-                NSEnumerator *enumerator = [remNets objectEnumerator];
-                CWWirelessProfile *wProfile;
+                            NSString *account = [apNetwork ssid];
+                            NSString *keyKind = @"AirPort network password";
+                            NSString *keyName = account;
+
+                            attributes[0].tag = kSecAccountItemAttr;
+                            attributes[0].data = (void *)[account UTF8String];
+                            attributes[0].length = [account length];
 
-                while ((wProfile = [enumerator nextObject])) {
-                    if(id == nsstringToQString([wProfile ssid])) {
+                            attributes[1].tag = kSecDescriptionItemAttr;
+                            attributes[1].data = (void *)[keyKind UTF8String];
+                            attributes[1].length = [keyKind length];
+
+                            attributes[2].tag = kSecLabelItemAttr;
+                            attributes[2].data = (void *)[keyName UTF8String];
+                            attributes[2].length = [keyName length];
+
+                            SecKeychainAttributeList attributeList = {3,attributes};
 
-                        wantedSsid = [wProfile ssid];
-                        [params setValue: [wProfile passphrase] forKey: kCWAssocKeyPassphrase];
-                        break;
-                    }
-                    index++;
-                }
-            }
+                            SecKeychainSearchRef searchRef;
+                            OSErr result = SecKeychainSearchCreateFromAttributes(NULL, kSecGenericPasswordItemClass, &attributeList, &searchRef);
+
+                            NSString *password = @"";
+                            SecKeychainItemRef searchItem;
+
+                            if (SecKeychainSearchCopyNext(searchRef, &searchItem) == noErr) {
+                                UInt32 realPasswordLength;
+                                SecKeychainAttribute attributesW[8];
+                                attributesW[0].tag = kSecAccountItemAttr;
+                                SecKeychainAttributeList listW = {1,attributesW};
+                                char *realPassword;
+                                OSStatus status = SecKeychainItemCopyContent(searchItem, NULL, &listW, &realPasswordLength,(void **)&realPassword);
+
+                                if (status == noErr) {
+                                    if (realPassword != NULL) {
 
-            NSDictionary *parametersDict = nil;
-            NSArray *apArray = [NSMutableArray arrayWithArray:[wifiInterface scanForNetworksWithParameters:parametersDict error:&err]];
+                                        QByteArray pBuf;
+                                        pBuf.resize(realPasswordLength);
+                                        pBuf.prepend(realPassword);
+                                        pBuf.insert(realPasswordLength,'\0');
+
+                                        password = [NSString stringWithUTF8String:pBuf];
+                                    }
+                                }
 
-            if(!err) {
-                for(uint row=0; row < [apArray count]; row++ ) {
-                    CWNetwork *apNetwork = [apArray objectAtIndex:row];
-                    if([[apNetwork ssid] compare:wantedSsid] == NSOrderedSame) {
+                                CFRelease(searchItem);
+                                SecKeychainItemFreeContent(&listW, realPassword);
+                            } else {
+                                qDebug() << "SecKeychainSearchCopyNext error";
+                            }
+                            [params setValue: password forKey: kCWAssocKeyPassphrase];
+                        } // end using8021X
+
                         bool result = [wifiInterface associateToNetwork: apNetwork parameters:[NSDictionary dictionaryWithDictionary:params] error:&err];
 
                         if(!result) {
@@ -415,9 +471,7 @@
              if(ij.key() == ssid) {
                  return i.key();
              }
-
          }
-            return map.key(ssid);
     }
     return QString();
 }
@@ -435,9 +489,11 @@
 
     if([currentInterface power]) {
         NSError *err = nil;
-        NSDictionary *parametersDict = nil;
+        NSDictionary *parametersDict =  [NSDictionary dictionaryWithObjectsAndKeys:
+                                   [NSNumber numberWithBool:YES], kCWScanKeyMerge,
+                                   [NSNumber numberWithInt:kCWScanTypeFast], kCWScanKeyScanType, // get the networks in the scan cache
+                                   [NSNumber numberWithInteger:100], kCWScanKeyRestTime, nil];
         NSArray* apArray = [currentInterface scanForNetworksWithParameters:parametersDict error:&err];
-
         CWNetwork *apNetwork;
         if(!err) {
             for(uint row=0; row < [apArray count]; row++ ) {
@@ -666,7 +722,7 @@
         NSString *nsInterfaceName = [wifiInterface name];
 // add user configured system networks
         SCDynamicStoreRef dynRef = SCDynamicStoreCreate(kCFAllocatorSystemDefault, (CFStringRef)@"Qt corewlan", nil, nil);
-        CFDictionaryRef airportPlist = (const __CFDictionary*)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName]);
+        NSDictionary *airportPlist = (NSDictionary *)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName] autorelease]);
         CFRelease(dynRef);
 
         NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"];
@@ -684,7 +740,7 @@
 
         // 802.1X user profiles
         QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist";
-        NSDictionary* eapDict = [[NSMutableDictionary alloc] initWithContentsOfFile:qstringToNSString(userProfilePath)];
+        NSDictionary* eapDict = [[NSDictionary alloc] initWithContentsOfFile:qstringToNSString(userProfilePath)];
         NSString *profileStr= @"Profiles";
         NSString *nameStr = @"UserDefinedName";
         NSString *networkSsidStr = @"Wireless Network";
@@ -715,8 +771,10 @@
                         }
                     }
                 }
+                [itemDict release];
             }
         }
+        [eapDict release];
     }
     [autoreleasepool release];
 #endif
--- a/qtmobility/src/bearer/qgenericengine.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qgenericengine.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -175,7 +175,7 @@
         if (interface.flags() & QNetworkInterface::IsLoopBack)
             continue;
 
-        // ignore WLAN interface handled in seperate engine
+        // ignore WLAN interface handled in separate engine
         if (qGetInterfaceType(interface.name()) == "WLAN")
             continue;
 
@@ -198,7 +198,7 @@
         else
             cpPriv->bearer = qGetInterfaceType(interface.name());
 
-        if (interface.flags() & QNetworkInterface::IsUp)
+        if((interface.flags() & QNetworkInterface::IsUp) && !interface.addressEntries().isEmpty())
             cpPriv->state |= QNetworkConfiguration::Active;
 
         configurationInterface[identifier] = interface.name();
--- a/qtmobility/src/bearer/qnetworkconfigmanager_maemo.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qnetworkconfigmanager_maemo.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -302,9 +302,9 @@
 
 
 uint32_t QNetworkConfigurationManagerPrivate::getNetworkAttrs(bool is_iap_id,
-                                const QString& iap_id,
-							    QString& iap_type,
-							    QString security_method)
+                                                              const QString& iap_id,
+                                                              const QString& iap_type,
+                                                              QString security_method)
 {
     guint network_attr = 0;
     dbus_uint32_t cap = 0;
@@ -369,7 +369,6 @@
             if (!ssid.isEmpty() && accessPointConfigurations.contains(ssid)) {
                 QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> ptr = accessPointConfigurations.take(ssid);
                 if (ptr.data()) {
-                    QString iap_type = saved_iap.value("type").toString();
                     ptr->id = iap_id;
                     ptr->iap_type = iap_type;
                     ptr->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString());
@@ -395,7 +394,7 @@
                 cpPriv->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString());
                 cpPriv->service_id = saved_iap.value("service_id").toString();
                 cpPriv->service_type = saved_iap.value("service_type").toString();
-                if (iap_type.startsWith("WLAN")) {
+                if (iap_type.startsWith(QLatin1String("WLAN"))) {
                     QByteArray ssid = saved_iap.value("wlan_ssid").toByteArray();
                     if (ssid.isEmpty()) {
                         qWarning() << "Cannot get ssid for" << iap_id;
@@ -683,7 +682,7 @@
 	}
 
         /* Remove non existing iaps since last update */
-        foreach (QString oldIface, knownConfigs) {
+        foreach (const QString &oldIface, knownConfigs) {
             QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> priv = accessPointConfigurations.take(oldIface);
             if (priv.data()) {
                 priv->isValid = false;
@@ -790,7 +789,7 @@
                     if (iapid == m_onlineIapId) {
                         // It's known that there is only one global ICD connection
                         // => Because ICD state was reported to be DISCONNECTED, Device is offline
-                        m_onlineIapId = QString();
+                        m_onlineIapId.clear();
                         emit onlineStateChanged(false);
                     }
                 }
@@ -801,7 +800,7 @@
             if (iapid == m_onlineIapId) {
                 // It's known that there is only one global ICD connection
                 // => Because ICD state was reported to be DISCONNECTED, Device is offline
-                m_onlineIapId = QString();
+                m_onlineIapId.clear();
                 emit onlineStateChanged(false);
             }
         }
--- a/qtmobility/src/bearer/qnetworkconfigmanager_maemo_p.h	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qnetworkconfigmanager_maemo_p.h	Tue Apr 27 17:29:55 2010 +0300
@@ -129,7 +129,7 @@
     void addConfiguration(QString &iap_id);
     void configurationChanged(QNetworkConfigurationPrivate *ptr);
     uint32_t getNetworkAttrs(bool is_iap_id, const QString& iap_id,
-			     QString& iap_type, QString security_method);
+                             const QString& iap_type, QString security_method);
 
     QDBusInterface *m_dbusInterface;
     QTimer m_scanTimer;
--- a/qtmobility/src/bearer/qnetworkconfiguration.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qnetworkconfiguration.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -43,7 +43,7 @@
 
 #ifdef Q_OS_SYMBIAN
 #include "qnetworkconfiguration_s60_p.h"
-#elif (defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5))
+#elif defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5)
 #include "qnetworkconfiguration_maemo_p.h"
 #else
 #include "qnetworkconfiguration_p.h"
--- a/qtmobility/src/bearer/qnetworksession.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/bearer/qnetworksession.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -46,7 +46,7 @@
 
 #ifdef Q_OS_SYMBIAN
 #include "qnetworksession_s60_p.h"
-#elif (defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5))
+#elif defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5)
 #include "qnetworksession_maemo_p.h"
 #else
 #include "qnetworksession_p.h"
--- a/qtmobility/src/s60installs/s60installs.pro	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/src/s60installs/s60installs.pro	Tue Apr 27 17:29:55 2010 +0300
@@ -47,13 +47,13 @@
     contains(mobility_modules, bearer) {
         bearer = \
             "IF package(0x1028315F)" \
-            "   \"$$EPOCROOT50\epoc32/release/armv5/urel/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
+            "   \"$${EPOCROOT50}epoc32/release/$(PLATFORM)/$(TARGET)/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
             "ELSEIF package(0x102752AE)" \
-            "   \"$$EPOCROOT50\epoc32/release/armv5/urel/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
+            "   \"$${EPOCROOT50}epoc32/release/$(PLATFORM)/$(TARGET)/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
             "ELSEIF package(0x102032BE)" \
-            "   \"$$EPOCROOT31\epoc32/release/armv5/urel/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
+            "   \"$${EPOCROOT31}epoc32/release/$(PLATFORM)/$(TARGET)/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
             "ELSE" \
-            "   \"$$EPOCROOT50\epoc32/release/armv5/urel/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
+            "   \"$${EPOCROOT50}epoc32/release/$(PLATFORM)/$(TARGET)/QtBearer.dll\" - \"!:\\sys\\bin\\QtBearer.dll\"" \
             "ENDIF"
 
         qtmobilitydeployment.pkg_postrules += bearer
--- a/qtmobility/tests/auto/qnetworkconfigmanager/qnetworkconfigmanager.pro	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworkconfigmanager/qnetworkconfigmanager.pro	Tue Apr 27 17:29:55 2010 +0300
@@ -15,7 +15,7 @@
     TARGET.CAPABILITY = NetworkServices NetworkControl ReadUserData
 }
 
-maemo6 {
+maemo6|maemo5 {
     CONFIG += link_pkgconfig
 
     PKGCONFIG += conninet
--- a/qtmobility/tests/auto/qnetworkconfigmanager/tst_qnetworkconfigmanager.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworkconfigmanager/tst_qnetworkconfigmanager.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -41,8 +41,8 @@
 
 #include <QtTest/QtTest>
 #include "../qbearertestcommon.h"
-#include "qnetworkconfiguration.h"
-#include "qnetworkconfigmanager.h"
+#include "../../../src/bearer/qnetworkconfiguration.h"
+#include "../../../src/bearer/qnetworkconfigmanager.h"
 
 #if defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5)
 #include <stdio.h>
--- a/qtmobility/tests/auto/qnetworkconfiguration/qnetworkconfiguration.pro	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworkconfiguration/qnetworkconfiguration.pro	Tue Apr 27 17:29:55 2010 +0300
@@ -15,7 +15,7 @@
     TARGET.CAPABILITY = NetworkServices NetworkControl ReadUserData 
 }
 
-maemo6 {
+maemo6|maemo5 {
     CONFIG += link_pkgconfig
 
     PKGCONFIG += conninet
--- a/qtmobility/tests/auto/qnetworkconfiguration/tst_qnetworkconfiguration.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworkconfiguration/tst_qnetworkconfiguration.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -41,8 +41,8 @@
 
 #include <QtTest/QtTest>
 #include "../qbearertestcommon.h"
-#include "qnetworkconfiguration.h"
-#include "qnetworkconfigmanager.h"
+#include "../../../src/bearer/qnetworkconfiguration.h"
+#include "../../../src/bearer/qnetworkconfigmanager.h"
 
 #if defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5)
 #include <stdio.h>
--- a/qtmobility/tests/auto/qnetworksession/lackey/main.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworksession/lackey/main.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -42,9 +42,9 @@
 #include <QCoreApplication>
 #include <QStringList>
 #include <QLocalSocket>
-#include <qnetworkconfigmanager.h>
-#include <qnetworkconfiguration.h>
-#include <qnetworksession.h>
+#include "../../../../src/bearer/qnetworkconfigmanager.h"
+#include "../../../../src/bearer/qnetworkconfiguration.h"
+#include "../../../../src/bearer/qnetworksession.h"
 
 #include <QDebug>
 
--- a/qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.cpp	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.cpp	Tue Apr 27 17:29:55 2010 +0300
@@ -44,8 +44,8 @@
 #include <QLocalSocket>
 #include <QTimer>
 #include "../../qbearertestcommon.h"
-#include <qnetworkconfigmanager.h>
-#include <qnetworksession.h>
+#include "../../../../src/bearer/qnetworkconfigmanager.h"
+#include "../../../../src/bearer/qnetworksession.h"
 
 #if defined(Q_WS_MAEMO_6) || defined(Q_WS_MAEMO_5)
 #include <stdio.h>
--- a/qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.pro	Thu Apr 15 08:16:03 2010 +0300
+++ b/qtmobility/tests/auto/qnetworksession/tst_qnetworksession/tst_qnetworksession.pro	Tue Apr 27 17:29:55 2010 +0300
@@ -21,7 +21,7 @@
     TARGET.CAPABILITY = NetworkServices NetworkControl ReadUserData PowerMgmt
 }
 
-maemo6 {
+maemo6|maemo5 {
     CONFIG += link_pkgconfig
 
     PKGCONFIG += conninet