summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opiestumbler/opiestumbler.cpp1
1 files changed, 0 insertions, 1 deletions
diff --git a/noncore/net/opiestumbler/opiestumbler.cpp b/noncore/net/opiestumbler/opiestumbler.cpp
index 3531162..9b0d099 100644
--- a/noncore/net/opiestumbler/opiestumbler.cpp
+++ b/noncore/net/opiestumbler/opiestumbler.cpp
@@ -1,385 +1,384 @@
1#include <cstdlib> 1#include <cstdlib>
2 2
3#include <qmenubar.h> 3#include <qmenubar.h>
4#include <qaction.h> 4#include <qaction.h>
5#include <qlistview.h> 5#include <qlistview.h>
6#include <qstring.h> 6#include <qstring.h>
7//#include <qapplication.h> 7//#include <qapplication.h>
8#include <qdatetime.h> 8#include <qdatetime.h>
9#include <qpopupmenu.h> 9#include <qpopupmenu.h>
10#include <qstatusbar.h> 10#include <qstatusbar.h>
11#include <qlayout.h> 11#include <qlayout.h>
12#include <qwhatsthis.h> 12#include <qwhatsthis.h>
13#include <qtimer.h> 13#include <qtimer.h>
14#include <qprogressbar.h> 14#include <qprogressbar.h>
15 15
16#include <qpe/resource.h>
17#include <qpe/config.h> 16#include <qpe/config.h>
18//#include <qpe/global.h> 17//#include <qpe/global.h>
19#include <qpe/qcopenvelope_qws.h> 18#include <qpe/qcopenvelope_qws.h>
20#include <qpe/qpeapplication.h> 19#include <qpe/qpeapplication.h>
21 20
22#include <opie2/odebug.h> 21#include <opie2/odebug.h>
23#include <opie2/ostation.h> 22#include <opie2/ostation.h>
24#include <opie2/omanufacturerdb.h> 23#include <opie2/omanufacturerdb.h>
25#include <opie2/onetwork.h> 24#include <opie2/onetwork.h>
26#include <opie2/oprocess.h> 25#include <opie2/oprocess.h>
27 26
28#include "stumbler.h" 27#include "stumbler.h"
29#include "opiestumbler.h" 28#include "opiestumbler.h"
30#include "stumblersettings.h" 29#include "stumblersettings.h"
31#include "stationviewitem.h" 30#include "stationviewitem.h"
32#include "stumblerstation.h" 31#include "stumblerstation.h"
33#include "stationinfo.h" 32#include "stationinfo.h"
34 33
35 34
36using Opie::Net::OWirelessNetworkInterface; 35using Opie::Net::OWirelessNetworkInterface;
37using Opie::Net::ONetwork; 36using Opie::Net::ONetwork;
38 37
39 38
40QString OpieStumbler::appCaption() { 39QString OpieStumbler::appCaption() {
41 return QObject::tr("OpieStumbler"); 40 return QObject::tr("OpieStumbler");
42} 41}
43 42
44OpieStumbler::OpieStumbler(QWidget *parent, const char *name, WFlags) 43OpieStumbler::OpieStumbler(QWidget *parent, const char *name, WFlags)
45 :QMainWindow(parent, name, WStyle_ContextHelp), 44 :QMainWindow(parent, name, WStyle_ContextHelp),
46 m_listCurrent(new QListView(this)), m_listHistory(new QListView(this)), 45 m_listCurrent(new QListView(this)), m_listHistory(new QListView(this)),
47 m_stationsCurrent(new QList<Opie::Net::OStation>), 46 m_stationsCurrent(new QList<Opie::Net::OStation>),
48 m_popupCurrent(new QPopupMenu(this)), 47 m_popupCurrent(new QPopupMenu(this)),
49 m_popupHistory(new QPopupMenu(this)), 48 m_popupHistory(new QPopupMenu(this)),
50 m_db(NULL), m_proc(NULL) 49 m_db(NULL), m_proc(NULL)
51{ 50{
52 51
53 if ( QCopChannel::isRegistered("QPE/OpieStumbler") ) { 52 if ( QCopChannel::isRegistered("QPE/OpieStumbler") ) {
54 QCopEnvelope e("QPE/OpieStumbler", "show()"); 53 QCopEnvelope e("QPE/OpieStumbler", "show()");
55 exit(EXIT_SUCCESS); 54 exit(EXIT_SUCCESS);
56 } 55 }
57 56
58 QGridLayout *grid = new QGridLayout( this, 1, 1, 3, 0, "grid"); 57 QGridLayout *grid = new QGridLayout( this, 1, 1, 3, 0, "grid");
59 QVBoxLayout *lay = new QVBoxLayout( NULL, 0, 5, "lay" ); 58 QVBoxLayout *lay = new QVBoxLayout( NULL, 0, 5, "lay" );
60 QSpacerItem *spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Fixed ); 59 QSpacerItem *spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Fixed );
61 lay->addItem(spacer); 60 lay->addItem(spacer);
62 lay->addWidget(m_listCurrent); 61 lay->addWidget(m_listCurrent);
63 lay->addWidget(m_listHistory); 62 lay->addWidget(m_listHistory);
64 grid->addLayout(lay, 0, 0); 63 grid->addLayout(lay, 0, 0);
65 64
66 m_stationsCurrent->setAutoDelete(true); 65 m_stationsCurrent->setAutoDelete(true);
67 66
68 m_channel = new QCopChannel( "QPE/OpieStumbler", this ); 67 m_channel = new QCopChannel( "QPE/OpieStumbler", this );
69 connect(m_channel, SIGNAL(received(const QCString &, const QByteArray &)), 68 connect(m_channel, SIGNAL(received(const QCString &, const QByteArray &)),
70 this, SLOT(slotMessageReceived( const QCString &, const QByteArray &)) ); 69 this, SLOT(slotMessageReceived( const QCString &, const QByteArray &)) );
71 70
72 //setCaption(appCaption()); 71 //setCaption(appCaption());
73 //setCentralWidget(grid); 72 //setCentralWidget(grid);
74 setToolBarsMovable(false); 73 setToolBarsMovable(false);
75 74
76 75
77 QPopupMenu *fileMenu = new QPopupMenu(this); 76 QPopupMenu *fileMenu = new QPopupMenu(this);
78 QPopupMenu *configMenu = new QPopupMenu(this); 77 QPopupMenu *configMenu = new QPopupMenu(this);
79 QPopupMenu *scanMenu = new QPopupMenu(this); 78 QPopupMenu *scanMenu = new QPopupMenu(this);
80 79
81 fileMenu->insertItem( tr("Exit"), this, SLOT(close()) ); 80 fileMenu->insertItem( tr("Exit"), this, SLOT(close()) );
82 configMenu->insertItem( tr("Configure"), this, SLOT(slotConfigure()) ); 81 configMenu->insertItem( tr("Configure"), this, SLOT(slotConfigure()) );
83 scanMenu->insertItem( tr("Start"), this, SLOT(slotStartScanning()) ); 82 scanMenu->insertItem( tr("Start"), this, SLOT(slotStartScanning()) );
84 scanMenu->insertItem( tr("Stop"), this, SLOT(slotStopScanning()) ); 83 scanMenu->insertItem( tr("Stop"), this, SLOT(slotStopScanning()) );
85 84
86 m_popupCurrent->insertItem( tr("Show details"), this, SLOT(slotShowDetails()) ); 85 m_popupCurrent->insertItem( tr("Show details"), this, SLOT(slotShowDetails()) );
87 m_popupCurrent->insertItem( tr("Join Network"), this, SLOT(slotJoinNetwork()) ); 86 m_popupCurrent->insertItem( tr("Join Network"), this, SLOT(slotJoinNetwork()) );
88 87
89 menuBar()->insertItem(tr("File"), fileMenu); 88 menuBar()->insertItem(tr("File"), fileMenu);
90 menuBar()->insertItem(tr("Settings"), configMenu); 89 menuBar()->insertItem(tr("Settings"), configMenu);
91 menuBar()->insertItem(tr("Scanning"), scanMenu); 90 menuBar()->insertItem(tr("Scanning"), scanMenu);
92 91
93 QPEApplication::setStylusOperation(m_listCurrent->viewport(), QPEApplication::RightOnHold); 92 QPEApplication::setStylusOperation(m_listCurrent->viewport(), QPEApplication::RightOnHold);
94 QPEApplication::setStylusOperation(m_listHistory->viewport(), QPEApplication::RightOnHold); 93 QPEApplication::setStylusOperation(m_listHistory->viewport(), QPEApplication::RightOnHold);
95 94
96 m_listCurrent->addColumn(tr("SSID")); 95 m_listCurrent->addColumn(tr("SSID"));
97 m_listCurrent->addColumn(tr("Chan")); 96 m_listCurrent->addColumn(tr("Chan"));
98 m_listCurrent->addColumn(tr("Signal")); 97 m_listCurrent->addColumn(tr("Signal"));
99 m_listCurrent->addColumn(tr("Enc")); 98 m_listCurrent->addColumn(tr("Enc"));
100 m_listCurrent->setSelectionMode( QListView::Extended ); 99 m_listCurrent->setSelectionMode( QListView::Extended );
101 100
102 m_listHistory->addColumn(tr("SSID")); 101 m_listHistory->addColumn(tr("SSID"));
103 m_listHistory->addColumn(tr("Chan")); 102 m_listHistory->addColumn(tr("Chan"));
104 m_listHistory->addColumn(tr("Max Sig")); 103 m_listHistory->addColumn(tr("Max Sig"));
105 m_listHistory->addColumn(tr("Enc")); 104 m_listHistory->addColumn(tr("Enc"));
106 m_listHistory->addColumn(tr("Vendor")); 105 m_listHistory->addColumn(tr("Vendor"));
107 106
108 connect(m_listCurrent, SIGNAL(mouseButtonPressed (int, QListViewItem*, const QPoint&, int)), 107 connect(m_listCurrent, SIGNAL(mouseButtonPressed (int, QListViewItem*, const QPoint&, int)),
109 this, SLOT(slotCurrentMousePressed (int, QListViewItem*, const QPoint&, int))); 108 this, SLOT(slotCurrentMousePressed (int, QListViewItem*, const QPoint&, int)));
110 109
111 connect(m_listHistory, SIGNAL(mouseButtonPressed (int, QListViewItem*, const QPoint&, int)), 110 connect(m_listHistory, SIGNAL(mouseButtonPressed (int, QListViewItem*, const QPoint&, int)),
112 this, SLOT(slotHistoryMousePressed (int, QListViewItem*, const QPoint&, int))); 111 this, SLOT(slotHistoryMousePressed (int, QListViewItem*, const QPoint&, int)));
113 112
114 for(int i = CURCHAN; i <= CURENC; ++i) { 113 for(int i = CURCHAN; i <= CURENC; ++i) {
115 m_listCurrent->setColumnAlignment( i, Qt::AlignHCenter ); 114 m_listCurrent->setColumnAlignment( i, Qt::AlignHCenter );
116 m_listHistory->setColumnAlignment( i, Qt::AlignHCenter ); 115 m_listHistory->setColumnAlignment( i, Qt::AlignHCenter );
117 } 116 }
118 117
119 loadConfig(); 118 loadConfig();
120 m_stumbler = new Stumbler(m_interface, this); 119 m_stumbler = new Stumbler(m_interface, this);
121 connect(m_stumbler, SIGNAL(newdata()), this, SLOT(slotUpdateStations())); 120 connect(m_stumbler, SIGNAL(newdata()), this, SLOT(slotUpdateStations()));
122 121
123 QTimer::singleShot(1000, this, SLOT(slotLoadManufacturers()) ); 122 QTimer::singleShot(1000, this, SLOT(slotLoadManufacturers()) );
124 123
125 slotStartScanning(); 124 slotStartScanning();
126} 125}
127 126
128void OpieStumbler::slotConfigure() 127void OpieStumbler::slotConfigure()
129{ 128{
130 StumblerSettings settings(this, "Settings", true); 129 StumblerSettings settings(this, "Settings", true);
131 if (settings.exec() == QDialog::Accepted) 130 if (settings.exec() == QDialog::Accepted)
132 loadConfig(); 131 loadConfig();
133} 132}
134 133
135void OpieStumbler::loadConfig() 134void OpieStumbler::loadConfig()
136{ 135{
137 Config cfg("OpieStumbler", Config::User); 136 Config cfg("OpieStumbler", Config::User);
138 cfg.setGroup("General"); 137 cfg.setGroup("General");
139 m_interface = cfg.readEntry("interface", "wlan0"); 138 m_interface = cfg.readEntry("interface", "wlan0");
140} 139}
141 140
142void OpieStumbler::slotStartScanning() 141void OpieStumbler::slotStartScanning()
143{ 142{
144 setCaption(appCaption() + " (" + tr("Scanning") + ")"); 143 setCaption(appCaption() + " (" + tr("Scanning") + ")");
145 m_stumbler->start(); 144 m_stumbler->start();
146} 145}
147 146
148void OpieStumbler::slotStopScanning() 147void OpieStumbler::slotStopScanning()
149{ 148{
150 setCaption(appCaption()); 149 setCaption(appCaption());
151 m_stumbler->stop(); 150 m_stumbler->stop();
152} 151}
153 152
154void OpieStumbler::slotUpdateStations() 153void OpieStumbler::slotUpdateStations()
155{ 154{
156 m_stationsCurrent->clear(); 155 m_stationsCurrent->clear();
157 156
158 m_stationsCurrent = m_stumbler->stations(); 157 m_stationsCurrent = m_stumbler->stations();
159 if (m_stationsCurrent) { 158 if (m_stationsCurrent) {
160 QListIterator<Opie::Net::OStation> it(*m_stationsCurrent); 159 QListIterator<Opie::Net::OStation> it(*m_stationsCurrent);
161 for(; it.current(); ++it) { 160 for(; it.current(); ++it) {
162 Opie::Net::OStation *station = it.current(); 161 Opie::Net::OStation *station = it.current();
163 QListIterator<StumblerStation> itr(m_stationsHistory); 162 QListIterator<StumblerStation> itr(m_stationsHistory);
164 for( ; itr.current(); ++itr) { 163 for( ; itr.current(); ++itr) {
165 if (itr.current()->st->macAddress.toString() == station->macAddress.toString()) { 164 if (itr.current()->st->macAddress.toString() == station->macAddress.toString()) {
166 break; 165 break;
167 } 166 }
168 } 167 }
169 if (!itr.current()) { 168 if (!itr.current()) {
170 //We need to copy the date because m_statiosCurrent has autodelete enabled 169 //We need to copy the date because m_statiosCurrent has autodelete enabled
171 m_stationsHistory.append(new StumblerStation(new Opie::Net::OStation, QDateTime::currentDateTime())); 170 m_stationsHistory.append(new StumblerStation(new Opie::Net::OStation, QDateTime::currentDateTime()));
172 *(m_stationsHistory.last()->st) = (*station); 171 *(m_stationsHistory.last()->st) = (*station);
173 } 172 }
174 else { 173 else {
175 if ( itr.current()->st->level < station->level ) 174 if ( itr.current()->st->level < station->level )
176 itr.current()->st->level = station->level; 175 itr.current()->st->level = station->level;
177 176
178 itr.current()->lastTimeSeen = QDateTime::currentDateTime(); 177 itr.current()->lastTimeSeen = QDateTime::currentDateTime();
179 } 178 }
180 } 179 }
181 } 180 }
182 displayStations(); 181 displayStations();
183} 182}
184 183
185void OpieStumbler::displayStations() 184void OpieStumbler::displayStations()
186{ 185{
187 m_listCurrent->clear(); 186 m_listCurrent->clear();
188 for(QListIterator<Opie::Net::OStation> it(*m_stationsCurrent); it.current(); ++it) 187 for(QListIterator<Opie::Net::OStation> it(*m_stationsCurrent); it.current(); ++it)
189 new StationViewItem( m_listCurrent, it.current()->ssid, QString::number(it.current()->channel), 188 new StationViewItem( m_listCurrent, it.current()->ssid, QString::number(it.current()->channel),
190 QString::number(it.current()->level), it.current()->encrypted ? "Y": "N", it.current()->macAddress.toString() ); 189 QString::number(it.current()->level), it.current()->encrypted ? "Y": "N", it.current()->macAddress.toString() );
191 190
192 m_listHistory->clear(); 191 m_listHistory->clear();
193 for(QListIterator<StumblerStation> it(m_stationsHistory); it.current(); ++it) 192 for(QListIterator<StumblerStation> it(m_stationsHistory); it.current(); ++it)
194 new StationViewItem( m_listHistory, it.current()->st->ssid, QString::number(it.current()->st->channel), 193 new StationViewItem( m_listHistory, it.current()->st->ssid, QString::number(it.current()->st->channel),
195 QString::number(it.current()->st->level), it.current()->st->encrypted ? "Y": "N", 194 QString::number(it.current()->st->level), it.current()->st->encrypted ? "Y": "N",
196 manufacturer(it.current()->st->macAddress.toString()), it.current()->st->macAddress.toString() ); 195 manufacturer(it.current()->st->macAddress.toString()), it.current()->st->macAddress.toString() );
197} 196}
198 197
199void OpieStumbler::slotMessageReceived( const QCString &message, const QByteArray &parameters) 198void OpieStumbler::slotMessageReceived( const QCString &message, const QByteArray &parameters)
200{ 199{
201 Q_UNUSED(const_cast<QByteArray &>(parameters)) 200 Q_UNUSED(const_cast<QByteArray &>(parameters))
202 201
203 if ( message == "show()" ) 202 if ( message == "show()" )
204 show(); 203 show();
205} 204}
206 205
207void OpieStumbler::slotCurrentMousePressed(int button, QListViewItem * item, const QPoint &point, int c) 206void OpieStumbler::slotCurrentMousePressed(int button, QListViewItem * item, const QPoint &point, int c)
208{ 207{
209 Q_UNUSED(c) 208 Q_UNUSED(c)
210 209
211 if ( 2 == button ) { 210 if ( 2 == button ) {
212 m_mac = item->text(CURENC + 1); 211 m_mac = item->text(CURENC + 1);
213 m_popupCurrent->popup(point); 212 m_popupCurrent->popup(point);
214 } 213 }
215} 214}
216 215
217 216
218void OpieStumbler::slotHistoryMousePressed(int button, QListViewItem * item, const QPoint &point, int c) 217void OpieStumbler::slotHistoryMousePressed(int button, QListViewItem * item, const QPoint &point, int c)
219{ 218{
220 Q_UNUSED(c) 219 Q_UNUSED(c)
221 220
222 if ( 2 == button ) { 221 if ( 2 == button ) {
223 m_mac = item->text(HISVENDOR + 1); 222 m_mac = item->text(HISVENDOR + 1);
224 m_popupHistory->popup(point); 223 m_popupHistory->popup(point);
225 } 224 }
226} 225}
227 226
228void OpieStumbler::slotShowDetails() 227void OpieStumbler::slotShowDetails()
229{ 228{
230 QListIterator<StumblerStation> it(m_stationsHistory); 229 QListIterator<StumblerStation> it(m_stationsHistory);
231 for(; it.current() && it.current()->st->macAddress.toString() != m_mac; ++it ); 230 for(; it.current() && it.current()->st->macAddress.toString() != m_mac; ++it );
232 231
233 if( it.current() ) { 232 if( it.current() ) {
234 StationInfo info(it.current()->st->ssid, it.current()->st->type, QString::number(it.current()->st->channel), 233 StationInfo info(it.current()->st->ssid, it.current()->st->type, QString::number(it.current()->st->channel),
235 QString::number(it.current()->st->rates.last()/1000000), QString::number(it.current()->st->level), 234 QString::number(it.current()->st->rates.last()/1000000), QString::number(it.current()->st->level),
236 it.current()->st->encrypted ? "WEP": "No", 235 it.current()->st->encrypted ? "WEP": "No",
237 it.current()->st->macAddress.toString(), manufacturer(it.current()->st->macAddress.toString(), true), 236 it.current()->st->macAddress.toString(), manufacturer(it.current()->st->macAddress.toString(), true),
238 it.current()->lastTimeSeen.toString() ,this, "", true); 237 it.current()->lastTimeSeen.toString() ,this, "", true);
239 info.exec(); 238 info.exec();
240 } 239 }
241 240
242} 241}
243 242
244void OpieStumbler::slotLoadManufacturers() 243void OpieStumbler::slotLoadManufacturers()
245{ 244{
246 m_db = Opie::Net::OManufacturerDB::instance(); 245 m_db = Opie::Net::OManufacturerDB::instance();
247} 246}
248 247
249QString OpieStumbler::manufacturer( const QString &mac, bool extended ) 248QString OpieStumbler::manufacturer( const QString &mac, bool extended )
250{ 249{
251 QString retval; 250 QString retval;
252 if ( m_db ) 251 if ( m_db )
253 if ( extended ) 252 if ( extended )
254 retval = m_db->lookupExt(mac); 253 retval = m_db->lookupExt(mac);
255 else 254 else
256 retval = m_db->lookup(mac); 255 retval = m_db->lookup(mac);
257 256
258 if ( retval.isEmpty() ) 257 if ( retval.isEmpty() )
259 retval = tr("Unknown"); 258 retval = tr("Unknown");
260 259
261 return retval; 260 return retval;
262} 261}
263 262
264void OpieStumbler::slotJoinNetwork() 263void OpieStumbler::slotJoinNetwork()
265{ 264{
266 slotStopScanning(); 265 slotStopScanning();
267 266
268 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 267 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
269 268
270 if( !wiface ) 269 if( !wiface )
271 return; 270 return;
272 271
273 QListIterator<StumblerStation> it(m_stationsHistory); 272 QListIterator<StumblerStation> it(m_stationsHistory);
274 273
275 for(; it.current() && it.current()->st->macAddress.toString() != m_mac; ++it ); 274 for(; it.current() && it.current()->st->macAddress.toString() != m_mac; ++it );
276 275
277 if( !it.current() ) 276 if( !it.current() )
278 return; 277 return;
279 278
280 m_ssid = it.current()->st->ssid.left(it.current()->st->ssid.length()-1); 279 m_ssid = it.current()->st->ssid.left(it.current()->st->ssid.length()-1);
281 m_splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); 280 m_splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize );
282 m_splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); 281 m_splash->setFrameStyle( QFrame::Panel | QFrame::Raised );
283 m_splashBox = new QVBoxLayout( m_splash, 4, 4 ); 282 m_splashBox = new QVBoxLayout( m_splash, 4, 4 );
284 m_infoLabel = new QLabel( QString("<center><b>%1 %2</b></center>").arg(tr("Joining Network")).arg(m_ssid), m_splash ); 283 m_infoLabel = new QLabel( QString("<center><b>%1 %2</b></center>").arg(tr("Joining Network")).arg(m_ssid), m_splash );
285 m_pbar = new QProgressBar( 3, m_splash ); 284 m_pbar = new QProgressBar( 3, m_splash );
286 m_pbar->setCenterIndicator(true); 285 m_pbar->setCenterIndicator(true);
287 m_splashBox->addWidget( m_infoLabel ); 286 m_splashBox->addWidget( m_infoLabel );
288 m_splashBox->addWidget( m_pbar ); 287 m_splashBox->addWidget( m_pbar );
289 int sw = m_splashBox->sizeHint().width() * 2; 288 int sw = m_splashBox->sizeHint().width() * 2;
290 int sh = m_splashBox->sizeHint().height(); 289 int sh = m_splashBox->sizeHint().height();
291 m_splash->setGeometry((qApp->desktop()->width() - sw)/2, (qApp->desktop()->height() - sh)/2, sw, sh); 290 m_splash->setGeometry((qApp->desktop()->width() - sw)/2, (qApp->desktop()->height() - sh)/2, sw, sh);
292 m_splash->show(); 291 m_splash->show();
293 m_splash->raise(); 292 m_splash->raise();
294 293
295 Opie::Net::OStation *station = it.current()->st; 294 Opie::Net::OStation *station = it.current()->st;
296 295
297 odebug << "Bringing interface down" << oendl; 296 odebug << "Bringing interface down" << oendl;
298 wiface->setUp(false); 297 wiface->setUp(false);
299 298
300 odebug << "Setting mode to " << (station->type == "adhoc" ? "adhoc" : "managed") << oendl; 299 odebug << "Setting mode to " << (station->type == "adhoc" ? "adhoc" : "managed") << oendl;
301 wiface->setMode(station->type == "adhoc" ? "adhoc" : "managed" ); 300 wiface->setMode(station->type == "adhoc" ? "adhoc" : "managed" );
302 301
303 odebug << "Setting channel to " << station->channel << oendl; 302 odebug << "Setting channel to " << station->channel << oendl;
304 wiface->setChannel(station->channel); 303 wiface->setChannel(station->channel);
305 304
306 odebug << "Setting SSID to " << station->ssid << oendl; 305 odebug << "Setting SSID to " << station->ssid << oendl;
307 wiface->setSSID(station->ssid); 306 wiface->setSSID(station->ssid);
308 307
309 wiface->commit(); 308 wiface->commit();
310 309
311 odebug << "Bringing interface up" << oendl; 310 odebug << "Bringing interface up" << oendl;
312 wiface->setUp(true); 311 wiface->setUp(true);
313 m_pbar->setProgress(1); 312 m_pbar->setProgress(1);
314 //Wait 5 sec for association 313 //Wait 5 sec for association
315 QTimer::singleShot(5000, this, SLOT(slotAssociated())); 314 QTimer::singleShot(5000, this, SLOT(slotAssociated()));
316} 315}
317 316
318void OpieStumbler::slotAssociated() 317void OpieStumbler::slotAssociated()
319{ 318{
320 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 319 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
321 320
322 if( !wiface ) { 321 if( !wiface ) {
323 slotCleanSplash(); 322 slotCleanSplash();
324 return; 323 return;
325 } 324 }
326 325
327 if (!wiface->isAssociated()) { 326 if (!wiface->isAssociated()) {
328 Global::statusMessage(tr("Could not Join")); 327 Global::statusMessage(tr("Could not Join"));
329 m_infoLabel->setText(tr("Could not Join")); 328 m_infoLabel->setText(tr("Could not Join"));
330 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 329 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
331 return; 330 return;
332 } 331 }
333 332
334 Global::statusMessage(tr("Joined")); 333 Global::statusMessage(tr("Joined"));
335 m_pbar->setProgress(2); 334 m_pbar->setProgress(2);
336 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid)); 335 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid));
337 336
338 if(m_proc) { 337 if(m_proc) {
339 m_proc->kill(); 338 m_proc->kill();
340 delete m_proc; 339 delete m_proc;
341 } 340 }
342 341
343 m_proc = new Opie::Core::OProcess(this); 342 m_proc = new Opie::Core::OProcess(this);
344 343
345 *m_proc << "udhcpc" << "-f" << "-n" << "-i" << m_interface; 344 *m_proc << "udhcpc" << "-f" << "-n" << "-i" << m_interface;
346 m_proc->start(Opie::Core::OProcess::DontCare); 345 m_proc->start(Opie::Core::OProcess::DontCare);
347 QTimer::singleShot(5000, this, SLOT(slotCheckDHCP())); 346 QTimer::singleShot(5000, this, SLOT(slotCheckDHCP()));
348} 347}
349 348
350void OpieStumbler::slotCheckDHCP() 349void OpieStumbler::slotCheckDHCP()
351{ 350{
352 if(!m_proc->isRunning()) { 351 if(!m_proc->isRunning()) {
353 Global::statusMessage(tr("Could not Obtain an Address")); 352 Global::statusMessage(tr("Could not Obtain an Address"));
354 m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address"))); 353 m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address")));
355 delete m_proc; 354 delete m_proc;
356 m_proc = NULL; 355 m_proc = NULL;
357 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 356 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
358 return; 357 return;
359 } 358 }
360 m_listCurrent->show(); 359 m_listCurrent->show();
361 m_pbar->setProgress(3); 360 m_pbar->setProgress(3);
362 361
363 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 362 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
364 QString ipv4 = wiface->ipV4Address().toString(); 363 QString ipv4 = wiface->ipV4Address().toString();
365 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4)); 364 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4));
366 Global::statusMessage(tr("Obtained IP") + " " + ipv4); 365 Global::statusMessage(tr("Obtained IP") + " " + ipv4);
367 QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); 366 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
368 367
369} 368}
370 369
371void OpieStumbler::slotCleanSplash() 370void OpieStumbler::slotCleanSplash()
372{ 371{
373 delete m_pbar; 372 delete m_pbar;
374 m_pbar = 0; 373 m_pbar = 0;
375 374
376 delete m_infoLabel; 375 delete m_infoLabel;
377 m_infoLabel = 0; 376 m_infoLabel = 0;
378 377
379 delete m_splashBox; 378 delete m_splashBox;
380 m_splashBox = 0; 379 m_splashBox = 0;
381 380
382 delete m_splash; 381 delete m_splash;
383 m_splash = 0; 382 m_splash = 0;
384} 383}
385 384