20 #include <QSharedPointer> |
20 #include <QSharedPointer> |
21 |
21 |
22 // User includes |
22 // User includes |
23 |
23 |
24 #include "wlanqtutilsap.h" |
24 #include "wlanqtutilsap.h" |
25 #include "wlanqtutilsiap.h" |
|
26 #include "wlanqtutilsconnection.h" |
25 #include "wlanqtutilsconnection.h" |
27 #include "wlanqtutilsiapsettings.h" |
26 #include "wlanqtutilsiapsettings.h" |
28 #include "wlanqtutilsconmonwrapper.h" |
27 #include "wlanqtutilsconmonwrapper.h" |
29 #include "wlanqtutilsesockwrapper.h" |
28 #include "wlanqtutilsesockwrapper.h" |
30 #include "wlanqtutilsscan.h" |
29 #include "wlanqtutilsscan.h" |
76 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_WLANQTUTILSPRIVATE_ENTRY, this); |
75 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_WLANQTUTILSPRIVATE_ENTRY, this); |
77 |
76 |
78 // Make all connections. |
77 // Make all connections. |
79 bool connectStatus = connect( |
78 bool connectStatus = connect( |
80 mScanWrapper, |
79 mScanWrapper, |
81 SIGNAL(availableWlanIaps(QList< QSharedPointer<WlanQtUtilsIap> > &)), |
80 SIGNAL(availableWlanIaps(QList< QSharedPointer<WlanQtUtilsAp> > &)), |
82 this, |
81 this, |
83 SLOT(updateAvailableWlanIaps(QList< QSharedPointer<WlanQtUtilsIap> > &))); |
82 SLOT(updateAvailableWlanIaps(QList< QSharedPointer<WlanQtUtilsAp> > &))); |
84 Q_ASSERT(connectStatus); |
83 Q_ASSERT(connectStatus); |
85 |
84 |
86 connectStatus = connect( |
85 connectStatus = connect( |
87 mScanWrapper, |
86 mScanWrapper, |
88 SIGNAL(availableWlanAps(QList< QSharedPointer<WlanQtUtilsAp> >&)), |
87 SIGNAL(availableWlanAps(QList< QSharedPointer<WlanQtUtilsAp> >&)), |
92 |
91 |
93 connectStatus = connect( |
92 connectStatus = connect( |
94 mScanWrapper, |
93 mScanWrapper, |
95 SIGNAL(scanFailed(int)), |
94 SIGNAL(scanFailed(int)), |
96 this, |
95 this, |
97 SLOT(reportScanResult(int))); |
96 SLOT(updateScanFailed(int))); |
98 Q_ASSERT(connectStatus); |
97 Q_ASSERT(connectStatus); |
99 |
98 |
100 connectStatus = connect( |
99 connectStatus = connect( |
101 mEsockWrapper, |
100 mEsockWrapper, |
102 SIGNAL(connectionStatusFromWrapper(bool)), |
101 SIGNAL(connectionStatusFromWrapper(bool)), |
203 void WlanQtUtilsPrivate::stopWlanScan() |
202 void WlanQtUtilsPrivate::stopWlanScan() |
204 { |
203 { |
205 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_STOPWLANSCAN_ENTRY, this); |
204 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_STOPWLANSCAN_ENTRY, this); |
206 |
205 |
207 if (mScanMode != ScanModeNone) { |
206 if (mScanMode != ScanModeNone) { |
208 // Inform that scan was cancelled |
207 int mode = mScanMode; |
209 reportScanResult(WlanQtUtils::ScanStatusCancelled); |
|
210 |
|
211 // Stop the scan |
208 // Stop the scan |
212 mScanMode = ScanModeNone; |
209 mScanMode = ScanModeNone; |
213 mScanWrapper->stopScan(); |
210 mScanWrapper->stopScan(); |
|
211 |
|
212 // Inform that scan was cancelled |
|
213 reportScanResult(WlanQtUtils::ScanStatusCancelled, mode); |
214 } |
214 } |
215 |
215 |
216 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_STOPWLANSCAN_EXIT, this); |
216 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_STOPWLANSCAN_EXIT, this); |
217 } |
217 } |
218 |
218 |
219 /*! |
219 /*! |
220 See WlanQtUtils::availableWlans(). |
220 See WlanQtUtils::availableWlans(). |
221 */ |
221 */ |
222 |
222 |
223 void WlanQtUtilsPrivate::availableWlans( |
223 void WlanQtUtilsPrivate::availableWlans( |
224 QList< QSharedPointer<WlanQtUtilsIap> > &wlanIapList, |
224 QList< QSharedPointer<WlanQtUtilsAp> > &wlanIapList, |
225 QList< QSharedPointer<WlanQtUtilsAp> > &wlanApList) const |
225 QList< QSharedPointer<WlanQtUtilsAp> > &wlanApList) const |
226 { |
226 { |
227 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_AVAILABLEWLAN_ENTRY, this); |
227 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_AVAILABLEWLAN_ENTRY, this); |
228 |
228 |
229 wlanIapList.clear(); |
229 wlanIapList.clear(); |
230 wlanApList.clear(); |
230 wlanApList.clear(); |
231 |
231 |
232 // Read the list of configured IAPs |
232 // Read the list of configured IAPs |
233 QList< QSharedPointer<WlanQtUtilsIap> > configuredIapList; |
233 QList< QSharedPointer<WlanQtUtilsAp> > configuredIapList; |
234 mSettings->fetchIaps(configuredIapList); |
234 mSettings->fetchIaps(configuredIapList); |
235 |
235 |
236 // Update the list of available IAPs |
236 // Update the list of available IAPs |
237 foreach (QSharedPointer<WlanQtUtilsIap> iapIter, mIapScanList) { |
237 foreach (QSharedPointer<WlanQtUtilsAp> iapIter, mIapScanList) { |
238 int iapId = iapIter->value(WlanQtUtilsIap::ConfIdIapId).toInt(); |
238 int iapId = iapIter->value(WlanQtUtilsAp::ConfIdIapId).toInt(); |
239 QSharedPointer<WlanQtUtilsIap> iap(mSettings->fetchIap(iapId)); |
239 QSharedPointer<WlanQtUtilsAp> iap(mSettings->fetchIap(iapId)); |
240 if (iap) { |
240 if (iap) { |
241 // Only add the IAP if we (still) have the settings for it |
241 // Only add the IAP if we (still) have the settings for it |
242 iap->setValue( |
242 iap->setValue( |
243 WlanQtUtilsAp::ConfIdSignalStrength, |
243 WlanQtUtilsAp::ConfIdSignalStrength, |
244 iapIter->value(WlanQtUtilsAp::ConfIdSignalStrength)); |
244 iapIter->value(WlanQtUtilsAp::ConfIdSignalStrength)); |
377 } // else: just ignore call |
377 } // else: just ignore call |
378 |
378 |
379 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_DISCONNECTIAP_EXIT, this); |
379 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_DISCONNECTIAP_EXIT, this); |
380 } |
380 } |
381 |
381 |
|
382 /* |
|
383 See WlanQtUtils::moveIapToInternetSnap(). |
|
384 */ |
|
385 |
|
386 void WlanQtUtilsPrivate::moveIapToInternetSnap(int iapId) |
|
387 { |
|
388 OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_MOVEIAPTOINTERNETSNAP_ENTRY); |
|
389 |
|
390 mSettings->moveIapToInternetSnap(iapId); |
|
391 |
|
392 OstTraceFunctionExit0(WLANQTUTILSPRIVATE_MOVEIAPTOINTERNETSNAP_EXIT); |
|
393 } |
|
394 |
382 /*! |
395 /*! |
383 See WlanQtUtils::connectionStatus(). |
396 See WlanQtUtils::connectionStatus(). |
384 */ |
397 */ |
385 |
398 |
386 WlanQtUtils::ConnStatus WlanQtUtilsPrivate::connectionStatus() const |
399 WlanQtUtils::ConnStatus WlanQtUtilsPrivate::connectionStatus() const |
433 { |
446 { |
434 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_IAPNAME_ENTRY, this); |
447 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_IAPNAME_ENTRY, this); |
435 |
448 |
436 QString name; |
449 QString name; |
437 // Read the IAP from settings and return its name |
450 // Read the IAP from settings and return its name |
438 QSharedPointer<WlanQtUtilsIap> iap = mSettings->fetchIap(iapId); |
451 QSharedPointer<WlanQtUtilsAp> iap = mSettings->fetchIap(iapId); |
439 if (iap) { |
452 if (iap) { |
440 name = iap->value(WlanQtUtilsIap::ConfIdName).toString(); |
453 name = iap->value(WlanQtUtilsAp::ConfIdName).toString(); |
441 } |
454 } |
442 |
455 |
443 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_IAPNAME_EXIT, this); |
456 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_IAPNAME_EXIT, this); |
444 return name; |
457 return name; |
445 } |
458 } |
452 |
465 |
453 @return True, if suitable WLAN IAP found, false otherwise. |
466 @return True, if suitable WLAN IAP found, false otherwise. |
454 */ |
467 */ |
455 |
468 |
456 bool WlanQtUtilsPrivate::wlanIapExists( |
469 bool WlanQtUtilsPrivate::wlanIapExists( |
457 const QList< QSharedPointer<WlanQtUtilsIap> > list, |
470 const QList< QSharedPointer<WlanQtUtilsAp> > list, |
458 const WlanQtUtilsAp *ap) const |
471 const WlanQtUtilsAp *ap) const |
459 { |
472 { |
460 bool match = false; // Return value |
473 bool match = false; // Return value |
461 |
474 |
462 foreach (QSharedPointer<WlanQtUtilsIap> iap, list) { |
475 foreach (QSharedPointer<WlanQtUtilsAp> iap, list) { |
463 if (WlanQtUtilsAp::compare(iap.data(), ap) == 0) { |
476 if (WlanQtUtilsAp::compare(iap.data(), ap) == 0) { |
464 // Match found |
477 // Match found |
465 match = true; |
478 match = true; |
466 break; |
479 break; |
467 } |
480 } |
469 |
482 |
470 return match; |
483 return match; |
471 } |
484 } |
472 |
485 |
473 /*! |
486 /*! |
|
487 Reports the scanning result to the client. |
|
488 |
|
489 @param [in] status Scan status code (WlanQtUtils::ScanStatus). |
|
490 @param [in] mode Mode of the scan whose status is reported. |
|
491 */ |
|
492 |
|
493 void WlanQtUtilsPrivate::reportScanResult(int status, int mode) |
|
494 { |
|
495 switch (mode) { |
|
496 case ScanModeAvailableWlans: |
|
497 OstTrace1( |
|
498 TRACE_BORDER, |
|
499 WLANQTUTILSPRIVATE_WLANSCANREADY, |
|
500 "WlanQtUtilsPrivate::reportScanResult emit wlanScanReady;status=%{ScanStatus};", |
|
501 status); |
|
502 emit q_ptr->wlanScanReady(status); |
|
503 break; |
|
504 |
|
505 case ScanModeAvailableWlanAps: |
|
506 OstTrace1( |
|
507 TRACE_BORDER, |
|
508 WLANQTUTILSPRIVATE_WLANSCANAPREADY, |
|
509 "WlanQtUtilsPrivate::reportScanResult emit wlanScanApReady;status=%{ScanStatus};", |
|
510 status); |
|
511 emit q_ptr->wlanScanApReady(status); |
|
512 break; |
|
513 |
|
514 case ScanModeDirect: |
|
515 OstTrace1( |
|
516 TRACE_BORDER, |
|
517 WLANQTUTILSPRIVATE_WLANSCANDIRECTREADY, |
|
518 "WlanQtUtilsPrivate::reportScanResult emit wlanScanDirectReady;status=%{ScanStatus};", |
|
519 status); |
|
520 emit q_ptr->wlanScanDirectReady(status); |
|
521 break; |
|
522 |
|
523 #ifndef QT_NO_DEBUG |
|
524 default: |
|
525 // Invalid scan mode detected |
|
526 Q_ASSERT(0); |
|
527 break; |
|
528 #endif |
|
529 } |
|
530 } |
|
531 |
|
532 /*! |
474 This function traces the given IAPs and APs. |
533 This function traces the given IAPs and APs. |
475 |
534 |
476 @param [in] iaps IAPs to trace. |
535 @param [in] iaps IAPs to trace. |
477 @param [in] aps APs to trace. |
536 @param [in] aps APs to trace. |
478 */ |
537 */ |
479 |
538 |
480 void WlanQtUtilsPrivate::traceIapsAndAps( |
539 void WlanQtUtilsPrivate::traceIapsAndAps( |
481 const QList<QSharedPointer<WlanQtUtilsIap> > &iaps, |
540 const QList< QSharedPointer<WlanQtUtilsAp> > &iaps, |
482 const QList<QSharedPointer<WlanQtUtilsAp> > &aps) const |
541 const QList< QSharedPointer<WlanQtUtilsAp> > &aps) const |
483 { |
542 { |
484 #ifndef OST_TRACE_COMPILER_IN_USE |
543 #ifndef OST_TRACE_COMPILER_IN_USE |
485 Q_UNUSED(iaps); |
544 Q_UNUSED(iaps); |
486 Q_UNUSED(aps); |
545 Q_UNUSED(aps); |
487 #else |
546 #else |
488 foreach (QSharedPointer<WlanQtUtilsIap> iap, iaps) { |
547 foreach (QSharedPointer<WlanQtUtilsAp> iap, iaps) { |
489 QString tmp(iap->value(WlanQtUtilsIap::ConfIdName).toString()); |
548 QString tmp(iap->value(WlanQtUtilsAp::ConfIdSsid).toString()); |
490 TPtrC16 name(tmp.utf16(), tmp.length()); |
549 TPtrC16 name(tmp.utf16(), tmp.length()); |
491 OstTraceExt3( |
550 OstTraceExt3( |
492 TRACE_NORMAL, |
551 TRACE_NORMAL, |
493 WLANQTUTILSPRIVATE_TRACEAVAILABLEWLANAPS_IAP, |
552 WLANQTUTILSPRIVATE_TRACEAVAILABLEWLANAPS_IAP, |
494 "WlanQtUtilsPrivate::traceAvailableWlanAps IAP;name=%S;secMode=%{WlanSecMode};signalStrength=%d", |
553 "WlanQtUtilsPrivate::traceAvailableWlanAps IAP;name=%S;secMode=%{WlanSecMode};signalStrength=%d", |
516 |
575 |
517 @param [in] availableIaps Available WLAN IAP's found in scan. |
576 @param [in] availableIaps Available WLAN IAP's found in scan. |
518 */ |
577 */ |
519 |
578 |
520 void WlanQtUtilsPrivate::updateAvailableWlanIaps( |
579 void WlanQtUtilsPrivate::updateAvailableWlanIaps( |
521 QList< QSharedPointer<WlanQtUtilsIap> > &availableIaps) |
580 QList< QSharedPointer<WlanQtUtilsAp> > &availableIaps) |
522 { |
581 { |
523 OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANIAPS_ENTRY); |
582 OstTraceFunctionEntry0(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANIAPS_ENTRY); |
524 |
583 |
525 // Store the new IAP list |
584 // Store the new IAP list |
526 mIapScanList = availableIaps; |
585 mIapScanList = availableIaps; |
560 if (duplicate == false) { |
619 if (duplicate == false) { |
561 mWlanScanList.append(availableWlanList[i]); |
620 mWlanScanList.append(availableWlanList[i]); |
562 } |
621 } |
563 } |
622 } |
564 |
623 |
565 // The information is forwarded to the client |
624 int mode = mScanMode; |
566 reportScanResult(WlanQtUtils::ScanStatusOk); |
|
567 |
|
568 // Scan is complete |
625 // Scan is complete |
569 mScanMode = ScanModeNone; |
626 mScanMode = ScanModeNone; |
570 |
627 |
|
628 // The information is forwarded to the client |
|
629 reportScanResult(WlanQtUtils::ScanStatusOk, mode); |
|
630 |
571 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANAPS_EXIT, this); |
631 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATEAVAILABLEWLANAPS_EXIT, this); |
572 } |
632 } |
573 |
633 |
574 /*! |
634 /*! |
575 Scan result handler. Reports the scanning result to the client. |
635 Slot for handling WLAN scan failure event from wrapper. Result is |
576 |
636 reported to client. |
|
637 |
577 @param [in] status Scan status code (WlanQtUtils::ScanStatus). |
638 @param [in] status Scan status code (WlanQtUtils::ScanStatus). |
578 */ |
639 */ |
579 |
640 |
580 void WlanQtUtilsPrivate::reportScanResult(int status) |
641 void WlanQtUtilsPrivate::updateScanFailed(int status) |
581 { |
642 { |
582 switch (mScanMode) { |
643 OstTraceFunctionEntry1(WLANQTUTILSPRIVATE_UPDATESCANFAILED_ENTRY, this); |
583 case ScanModeAvailableWlans: |
644 |
584 OstTrace1( |
645 int mode = mScanMode; |
585 TRACE_BORDER, |
646 // Scan is now done |
586 WLANQTUTILSPRIVATE_WLANSCANREADY, |
647 mScanMode = ScanModeNone; |
587 "WlanQtUtilsPrivate::reportScanResult emit wlanScanReady;status=%{ScanStatus};", |
648 reportScanResult(status, mode); |
588 status); |
649 |
589 emit q_ptr->wlanScanReady(status); |
650 OstTraceFunctionExit1(WLANQTUTILSPRIVATE_UPDATESCANFAILED_EXIT, this); |
590 break; |
|
591 |
|
592 case ScanModeAvailableWlanAps: |
|
593 OstTrace1( |
|
594 TRACE_BORDER, |
|
595 WLANQTUTILSPRIVATE_WLANSCANAPREADY, |
|
596 "WlanQtUtilsPrivate::reportScanResult emit wlanScanApReady;status=%{ScanStatus};", |
|
597 status); |
|
598 emit q_ptr->wlanScanApReady(status); |
|
599 break; |
|
600 |
|
601 case ScanModeDirect: |
|
602 OstTrace1( |
|
603 TRACE_BORDER, |
|
604 WLANQTUTILSPRIVATE_WLANSCANDIRECTREADY, |
|
605 "WlanQtUtilsPrivate::reportScanResult emit wlanScanDirectReady;status=%{ScanStatus};", |
|
606 status); |
|
607 emit q_ptr->wlanScanDirectReady(status); |
|
608 break; |
|
609 |
|
610 #ifndef QT_NO_DEBUG |
|
611 default: |
|
612 // Invalid scan mode detected |
|
613 Q_ASSERT(0); |
|
614 break; |
|
615 #endif |
|
616 } |
|
617 } |
651 } |
618 |
652 |
619 /*! |
653 /*! |
620 Slot for handling connection setup status event from wrapper. |
654 Slot for handling connection setup status event from wrapper. |
621 |
655 |
655 mConnectingIapId); |
689 mConnectingIapId); |
656 emit q_ptr->wlanNetworkOpened(mConnectingIapId); |
690 emit q_ptr->wlanNetworkOpened(mConnectingIapId); |
657 |
691 |
658 // Start ICT, if needed |
692 // Start ICT, if needed |
659 if (mConnectingIapId == mToBeTestedIapId) { |
693 if (mConnectingIapId == mToBeTestedIapId) { |
660 QSharedPointer<WlanQtUtilsIap> iap(mSettings->fetchIap(mConnectingIapId)); |
694 QSharedPointer<WlanQtUtilsAp> iap(mSettings->fetchIap(mConnectingIapId)); |
661 |
695 |
662 mIctService = QSharedPointer<IctsWlanLoginInterface>( |
696 mIctService = QSharedPointer<IctsWlanLoginInterface>( |
663 new IctsWlanLoginInterface(this)); |
697 new IctsWlanLoginInterface(this)); |
664 |
698 |
665 // IctsWlanLoginInterface instance is created for each connectivity test |
699 // IctsWlanLoginInterface instance is created for each connectivity test |