summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-04-09 15:00:06 (UTC)
committer mickeyl <mickeyl>2004-04-09 15:00:06 (UTC)
commitfb2f09533c7476a266a877c351007c2706b2da0d (patch) (unidiff)
tree9742d4cb8fd07fd5530c3c29b5f049dcecd46ef4
parent39547839995c9f72ca9216ba5c2127246428ece8 (diff)
downloadopie-fb2f09533c7476a266a877c351007c2706b2da0d.zip
opie-fb2f09533c7476a266a877c351007c2706b2da0d.tar.gz
opie-fb2f09533c7476a266a877c351007c2706b2da0d.tar.bz2
- eliminate cylic dependency
- complete using opie debugging framework - sanitize #include order
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/interfaces/config.in4
-rw-r--r--noncore/settings/networksettings/networksettings.pro3
-rw-r--r--noncore/settings/networksettings/ppp/accounts.cpp2
-rw-r--r--noncore/settings/networksettings/ppp/authwidget.cpp16
-rw-r--r--noncore/settings/networksettings/ppp/config.in2
-rw-r--r--noncore/settings/networksettings/ppp/connect.cpp9
-rw-r--r--noncore/settings/networksettings/ppp/devices.cpp2
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp2
-rw-r--r--noncore/settings/networksettings/ppp/interfaceinformationppp.cpp10
-rw-r--r--noncore/settings/networksettings/ppp/interfaceppp.cpp14
-rw-r--r--noncore/settings/networksettings/ppp/modem.cpp5
-rw-r--r--noncore/settings/networksettings/ppp/ppp.pro3
-rw-r--r--noncore/settings/networksettings/ppp/pppconfig.cpp14
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.cpp14
-rw-r--r--noncore/settings/networksettings/ppp/pppmodule.cpp2
-rw-r--r--noncore/settings/networksettings/wlan/config.in4
-rw-r--r--noncore/settings/networksettings/wlan/infoimp.cpp5
-rw-r--r--noncore/settings/networksettings/wlan/wextensions.cpp9
-rw-r--r--noncore/settings/networksettings/wlan/wlan.pro3
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp2.cpp26
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp2
21 files changed, 96 insertions, 55 deletions
diff --git a/noncore/settings/networksettings/interfaces/config.in b/noncore/settings/networksettings/interfaces/config.in
index d84cd24..2175800 100644
--- a/noncore/settings/networksettings/interfaces/config.in
+++ b/noncore/settings/networksettings/interfaces/config.in
@@ -1,4 +1,4 @@
1 config INTERFACES 1 config INTERFACES
2 boolean 2 boolean "Build interfaces for networksettings"
3 default "y" if NETWORKSETUP 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE
diff --git a/noncore/settings/networksettings/networksettings.pro b/noncore/settings/networksettings/networksettings.pro
index 55d2291..9ad9be4 100644
--- a/noncore/settings/networksettings/networksettings.pro
+++ b/noncore/settings/networksettings/networksettings.pro
@@ -1,12 +1,11 @@
1CONFIG = qt warn_on quick-app 1CONFIG = qt warn_on quick-app
2HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h module.h 2HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h module.h
3SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp 3SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp
4INCLUDEPATH += $(OPIEDIR)/include interfaces/ . 4INCLUDEPATH += $(OPIEDIR)/include interfaces/ .
5DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan/ ppp/ 5DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan/ ppp/
6LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings -Linterfaces/ -linterfaces -lopiecore2 -lopieui2 6LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings -Linterfaces/ -linterfaces -lopiecore2 -lopieui2
7INTERFACES = mainwindow.ui addconnection.ui 7INTERFACES = mainwindow.ui addconnection.ui
8TARGET = networksettings 8TARGET = networksettings
9 9
10 10
11
12include ( $(OPIEDIR)/include.pro ) 11include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/networksettings/ppp/accounts.cpp b/noncore/settings/networksettings/ppp/accounts.cpp
index aedc0b9..f05e7ac 100644
--- a/noncore/settings/networksettings/ppp/accounts.cpp
+++ b/noncore/settings/networksettings/ppp/accounts.cpp
@@ -1,225 +1,227 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27#include "accounts.h" 27#include "accounts.h"
28#include "authwidget.h" 28#include "authwidget.h"
29#include "pppdata.h" 29#include "pppdata.h"
30#include "edit.h" 30#include "edit.h"
31 31
32/* OPIE */ 32/* OPIE */
33#include <opie2/odebug.h>
33#include <qpe/qpeapplication.h> 34#include <qpe/qpeapplication.h>
35using namespace Opie::Core;
34 36
35/* QT */ 37/* QT */
36#include <qdir.h> 38#include <qdir.h>
37#include <qlayout.h> 39#include <qlayout.h>
38#include <qtabwidget.h> 40#include <qtabwidget.h>
39#include <qtabdialog.h> 41#include <qtabdialog.h>
40#include <qwhatsthis.h> 42#include <qwhatsthis.h>
41#include <qmessagebox.h> 43#include <qmessagebox.h>
42#include <qapplication.h> 44#include <qapplication.h>
43#include <qbuttongroup.h> 45#include <qbuttongroup.h>
44#include <qmessagebox.h> 46#include <qmessagebox.h>
45#include <qvgroupbox.h> 47#include <qvgroupbox.h>
46 48
47/* STD */ 49/* STD */
48#include <stdlib.h> 50#include <stdlib.h>
49 51
50void parseargs(char* buf, char** args); 52void parseargs(char* buf, char** args);
51 53
52 54
53AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f ) 55AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f )
54 : ChooserWidget( pd, parent, name, f ) 56 : ChooserWidget( pd, parent, name, f )
55{ 57{
56 58
57 QWhatsThis::add(edit_b, tr("Allows you to modify the selected account")); 59 QWhatsThis::add(edit_b, tr("Allows you to modify the selected account"));
58 QWhatsThis::add(new_b, tr("Create a new dialup connection\n" 60 QWhatsThis::add(new_b, tr("Create a new dialup connection\n"
59 "to the Internet")); 61 "to the Internet"));
60 QWhatsThis::add(copy_b, 62 QWhatsThis::add(copy_b,
61 tr("Makes a copy of the selected account. All\n" 63 tr("Makes a copy of the selected account. All\n"
62 "settings of the selected account are copied\n" 64 "settings of the selected account are copied\n"
63 "to a new account, that you can modify to fit your\n" 65 "to a new account, that you can modify to fit your\n"
64 "needs")); 66 "needs"));
65 QWhatsThis::add(delete_b, 67 QWhatsThis::add(delete_b,
66 tr("<p>Deletes the selected account\n\n" 68 tr("<p>Deletes the selected account\n\n"
67 "<font color=\"red\"><b>Use with care!</b></font>")); 69 "<font color=\"red\"><b>Use with care!</b></font>"));
68 70
69 71
70 72
71 copy_b->setEnabled( false ); //FIXME 73 copy_b->setEnabled( false ); //FIXME
72 // delete_b->setEnabled( false ); //FIXME 74 // delete_b->setEnabled( false ); //FIXME
73 75
74 listListbox->insertStringList(_pppdata->getAccountList()); 76 listListbox->insertStringList(_pppdata->getAccountList());
75 77
76 for (uint i = 0; i < listListbox->count(); i++) 78 for (uint i = 0; i < listListbox->count(); i++)
77 { 79 {
78 if ( listListbox->text(i) == _pppdata->accname() ) 80 if ( listListbox->text(i) == _pppdata->accname() )
79 listListbox->setCurrentItem( i ); 81 listListbox->setCurrentItem( i );
80 } 82 }
81} 83}
82 84
83 85
84 86
85void AccountWidget::slotListBoxSelect(int idx) 87void AccountWidget::slotListBoxSelect(int idx)
86{ 88{
87 bool ok = _pppdata->setAccount( listListbox->text(idx) ); 89 bool ok = _pppdata->setAccount( listListbox->text(idx) );
88 ok = (bool)(idx != -1); 90 ok = (bool)(idx != -1);
89 delete_b->setEnabled(ok); 91 delete_b->setEnabled(ok);
90 edit_b->setEnabled(ok); 92 edit_b->setEnabled(ok);
91 //FIXME copy_b->setEnabled(ok); 93 //FIXME copy_b->setEnabled(ok);
92} 94}
93 95
94void AccountWidget::edit() 96void AccountWidget::edit()
95{ 97{
96 _pppdata->setAccount(listListbox->text(listListbox->currentItem())); 98 _pppdata->setAccount(listListbox->text(listListbox->currentItem()));
97 99
98 int result = doTab(); 100 int result = doTab();
99 101
100 if(result == QDialog::Accepted) 102 if(result == QDialog::Accepted)
101 { 103 {
102 listListbox->changeItem(_pppdata->accname(),listListbox->currentItem()); 104 listListbox->changeItem(_pppdata->accname(),listListbox->currentItem());
103 // emit resetaccounts(); 105 // emit resetaccounts();
104 _pppdata->save(); 106 _pppdata->save();
105 } 107 }
106} 108}
107 109
108 110
109void AccountWidget::create() 111void AccountWidget::create()
110{ 112{
111 113
112 // if(listListbox->count() == MAX_ACCOUNTS) { 114 // if(listListbox->count() == MAX_ACCOUNTS) {
113 // QMessageBox::information(this, "sorry", 115 // QMessageBox::information(this, "sorry",
114 // tr("Maximum number of accounts reached.")); 116 // tr("Maximum number of accounts reached."));
115 // return; 117 // return;
116 // } 118 // }
117 119
118 int result; 120 int result;
119 if (_pppdata->newaccount() == -1) 121 if (_pppdata->newaccount() == -1)
120 { 122 {
121 odebug << "_pppdata->newaccount() == -1" << oendl; 123 odebug << "_pppdata->newaccount() == -1" << oendl;
122 return; 124 return;
123 } 125 }
124 result = doTab(); 126 result = doTab();
125 127
126 if(result == QDialog::Accepted) 128 if(result == QDialog::Accepted)
127 { 129 {
128 listListbox->insertItem(_pppdata->accname()); 130 listListbox->insertItem(_pppdata->accname());
129 listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true); 131 listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true);
130 132
131 _pppdata->save(); 133 _pppdata->save();
132 } 134 }
133 else 135 else
134 _pppdata->deleteAccount(); 136 _pppdata->deleteAccount();
135} 137}
136 138
137 139
138void AccountWidget::copy() 140void AccountWidget::copy()
139{ 141{
140 // if(listListbox->count() == MAX_ACCOUNTS) { 142 // if(listListbox->count() == MAX_ACCOUNTS) {
141 // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); 143 // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
142 // return; 144 // return;
143 // } 145 // }
144 146
145 if(listListbox->currentItem()<0) 147 if(listListbox->currentItem()<0)
146 { 148 {
147 QMessageBox::information(this, "sorry", tr("No account selected.")); 149 QMessageBox::information(this, "sorry", tr("No account selected."));
148 return; 150 return;
149 } 151 }
150 152
151 _pppdata->copyaccount(listListbox->currentText()); 153 _pppdata->copyaccount(listListbox->currentText());
152 154
153 listListbox->insertItem(_pppdata->accname()); 155 listListbox->insertItem(_pppdata->accname());
154 // emit resetaccounts(); 156 // emit resetaccounts();
155 _pppdata->save(); 157 _pppdata->save();
156} 158}
157 159
158 160
159void AccountWidget::remove() 161void AccountWidget::remove()
160{ 162{
161 163
162 QString s = tr("Are you sure you want to delete\nthe account \"%1\"?") 164 QString s = tr("Are you sure you want to delete\nthe account \"%1\"?")
163 .arg(listListbox->text(listListbox->currentItem())); 165 .arg(listListbox->text(listListbox->currentItem()));
164 166
165 if(QMessageBox::warning(this,tr("Confirm"),s, 167 if(QMessageBox::warning(this,tr("Confirm"),s,
166 QMessageBox::Yes,QMessageBox::No 168 QMessageBox::Yes,QMessageBox::No
167 ) != QMessageBox::Yes) 169 ) != QMessageBox::Yes)
168 return; 170 return;
169 171
170 if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) 172 if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem())))
171 listListbox->removeItem(listListbox->currentItem()); 173 listListbox->removeItem(listListbox->currentItem());
172 174
173 175
174 // emit resetaccounts(); 176 // emit resetaccounts();
175 // _pppdata->save(); 177 // _pppdata->save();
176 178
177 179
178 slotListBoxSelect(listListbox->currentItem()); 180 slotListBoxSelect(listListbox->currentItem());
179 181
180} 182}
181 183
182 184
183int AccountWidget::doTab() 185int AccountWidget::doTab()
184{ 186{
185 QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp ); 187 QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp );
186 QVBoxLayout *layout = new QVBoxLayout( dlg ); 188 QVBoxLayout *layout = new QVBoxLayout( dlg );
187 layout->setSpacing( 0 ); 189 layout->setSpacing( 0 );
188 layout->setMargin( 1 ); 190 layout->setMargin( 1 );
189 191
190 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); 192 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
191 layout->addWidget( tabWindow ); 193 layout->addWidget( tabWindow );
192 194
193 bool isnewaccount; 195 bool isnewaccount;
194 196
195 if(_pppdata->accname().isEmpty()) 197 if(_pppdata->accname().isEmpty())
196 { 198 {
197 dlg->setCaption(tr("New Account")); 199 dlg->setCaption(tr("New Account"));
198 isnewaccount = true; 200 isnewaccount = true;
199 } 201 }
200 else 202 else
201 { 203 {
202 QString tit = tr("Edit Account: "); 204 QString tit = tr("Edit Account: ");
203 tit += _pppdata->accname(); 205 tit += _pppdata->accname();
204 dlg->setCaption(tit); 206 dlg->setCaption(tit);
205 isnewaccount = false; 207 isnewaccount = false;
206 } 208 }
207 209
208 // // DIAL WIDGET 210 // // DIAL WIDGET
209 dial_w = new DialWidget( _pppdata, tabWindow, isnewaccount, "Dial Setup"); 211 dial_w = new DialWidget( _pppdata, tabWindow, isnewaccount, "Dial Setup");
210 tabWindow->addTab( dial_w, tr("Dial") ); 212 tabWindow->addTab( dial_w, tr("Dial") );
211 213
212 // // AUTH WIDGET 214 // // AUTH WIDGET
213 auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script")); 215 auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script"));
214 tabWindow->addTab( auth_w, tr("Authentication") ); 216 tabWindow->addTab( auth_w, tr("Authentication") );
215 217
216 // // IP WIDGET 218 // // IP WIDGET
217 ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup")); 219 ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup"));
218 tabWindow->addTab( ip_w, tr("IP") ); 220 tabWindow->addTab( ip_w, tr("IP") );
219 221
220 // // GATEWAY WIDGET 222 // // GATEWAY WIDGET
221 gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup")); 223 gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup"));
222 tabWindow->addTab( gateway_w, tr("Gateway") ); 224 tabWindow->addTab( gateway_w, tr("Gateway") );
223 225
224 // // DNS WIDGET 226 // // DNS WIDGET
225 dns_w = new DNSWidget( _pppdata, tabWindow, isnewaccount, tr("DNS Servers") ); 227 dns_w = new DNSWidget( _pppdata, tabWindow, isnewaccount, tr("DNS Servers") );
diff --git a/noncore/settings/networksettings/ppp/authwidget.cpp b/noncore/settings/networksettings/ppp/authwidget.cpp
index f3d842f..c94c3bc 100644
--- a/noncore/settings/networksettings/ppp/authwidget.cpp
+++ b/noncore/settings/networksettings/ppp/authwidget.cpp
@@ -1,197 +1,201 @@
1
2#include <qlayout.h>
3#include <qmessagebox.h>
4#include <qtoolbutton.h>
5#include <qwhatsthis.h>
6
7#include "auth.h" 1#include "auth.h"
8#include "authwidget.h" 2#include "authwidget.h"
9#include "edit.h" 3#include "edit.h"
10#include "pppdata.h" 4#include "pppdata.h"
11 5
6/* OPIE */
7#include <opie2/odebug.h>
8using namespace Opie::Core;
9
10/* QT */
11#include <qlayout.h>
12#include <qmessagebox.h>
13#include <qtoolbutton.h>
14#include <qwhatsthis.h>
12 15
16/* XPM */
13static const char* const image0_data[] = { 17static const char* const image0_data[] = {
14"16 16 2 1", 18"16 16 2 1",
15". c None", 19". c None",
16"# c #000000", 20"# c #000000",
17"................", 21"................",
18"...#...###...##.", 22"...#...###...##.",
19"..#.#..#..#.##..", 23"..#.#..#..#.##..",
20"..###..###.##...", 24"..###..###.##...",
21".#...#.#..##....", 25".#...#.#..##....",
22".#...#.#.##.....", 26".#...#.#.##.....",
23"........##.#..#.", 27"........##.#..#.",
24"..##...##...##..", 28"..##...##...##..",
25".#..#.###...##..", 29".#..#.###...##..",
26".#...##..#.#..#.", 30".#...##..#.#..#.",
27".#..##..........", 31".#..##..........",
28".#.##.#..#.#..#.", 32".#.##.#..#.#..#.",
29"..##...##...##..", 33"..##...##...##..",
30".##....##...##..", 34".##....##...##..",
31".#....#..#.#..#.", 35".#....#..#.#..#.",
32"................"}; 36"................"};
33 37
34 38
35AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) 39AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name )
36 : QWidget( parent, name), 40 : QWidget( parent, name),
37 scriptWidget(0), 41 scriptWidget(0),
38 _pppdata(pd), 42 _pppdata(pd),
39 isNewAccount(isnewaccount) 43 isNewAccount(isnewaccount)
40{ 44{
41 layout = new QGridLayout(this); 45 layout = new QGridLayout(this);
42 46
43 auth_l = new QLabel(tr("Authentication: "), this); 47 auth_l = new QLabel(tr("Authentication: "), this);
44 layout->addWidget(auth_l, 0, 0); 48 layout->addWidget(auth_l, 0, 0);
45 49
46 auth = new QComboBox(this); 50 auth = new QComboBox(this);
47 auth->insertItem(tr("Script-based")); 51 auth->insertItem(tr("Script-based"));
48 auth->insertItem(tr("PAP")); 52 auth->insertItem(tr("PAP"));
49 auth->insertItem(tr("Terminal-based")); 53 auth->insertItem(tr("Terminal-based"));
50 auth->insertItem(tr("CHAP")); 54 auth->insertItem(tr("CHAP"));
51 auth->insertItem(tr("PAP/CHAP")); 55 auth->insertItem(tr("PAP/CHAP"));
52 layout->addWidget(auth, 0, 1); 56 layout->addWidget(auth, 0, 1);
53 57
54 connect( auth, SIGNAL(activated(const QString&)), 58 connect( auth, SIGNAL(activated(const QString&)),
55 SLOT(authChanged(const QString&))); 59 SLOT(authChanged(const QString&)));
56 60
57 QString tmp = tr("<p>Specifies the method used to identify yourself to\n" 61 QString tmp = tr("<p>Specifies the method used to identify yourself to\n"
58 "the PPP server. Most universities still use\n" 62 "the PPP server. Most universities still use\n"
59 "<b>Terminal</b>- or <b>Script</b>-based authentication,\n" 63 "<b>Terminal</b>- or <b>Script</b>-based authentication,\n"
60 "while most ISP use <b>PAP</b> and/or <b>CHAP</b>. If\n" 64 "while most ISP use <b>PAP</b> and/or <b>CHAP</b>. If\n"
61 "unsure, contact your ISP.\n" 65 "unsure, contact your ISP.\n"
62 "\n" 66 "\n"
63 "If you can choose between PAP and CHAP,\n" 67 "If you can choose between PAP and CHAP,\n"
64 "choose CHAP, because it's much safer. If you don't know\n" 68 "choose CHAP, because it's much safer. If you don't know\n"
65 "whether PAP or CHAP is right, choose PAP/CHAP."); 69 "whether PAP or CHAP is right, choose PAP/CHAP.");
66 70
67 QWhatsThis::add(auth_l,tmp); 71 QWhatsThis::add(auth_l,tmp);
68 QWhatsThis::add(auth,tmp); 72 QWhatsThis::add(auth,tmp);
69 73
70 user_l = new QLabel( tr("Username: "), this); 74 user_l = new QLabel( tr("Username: "), this);
71 layout->addWidget( user_l, 1, 0 ); 75 layout->addWidget( user_l, 1, 0 );
72 userName = new QLineEdit( this, "usernameEdit" ); 76 userName = new QLineEdit( this, "usernameEdit" );
73 layout->addWidget( userName, 1, 1 ); 77 layout->addWidget( userName, 1, 1 );
74 tmp = tr("Enter your username here..."); 78 tmp = tr("Enter your username here...");
75 QWhatsThis::add( user_l, tmp ); 79 QWhatsThis::add( user_l, tmp );
76 QWhatsThis::add( userName, tmp ); 80 QWhatsThis::add( userName, tmp );
77 81
78 pw_l = new QLabel( tr("Password: "), this); 82 pw_l = new QLabel( tr("Password: "), this);
79 layout->addWidget( pw_l, 2, 0 ); 83 layout->addWidget( pw_l, 2, 0 );
80 passWord = new QLineEdit( this, "pw" ); 84 passWord = new QLineEdit( this, "pw" );
81 passWord->setAutoMask( true ); 85 passWord->setAutoMask( true );
82 passWord->setEchoMode( QLineEdit::Password ); 86 passWord->setEchoMode( QLineEdit::Password );
83 layout->addWidget( passWord, 2, 1 ); 87 layout->addWidget( passWord, 2, 1 );
84 hidePw = new QToolButton( this ); 88 hidePw = new QToolButton( this );
85 hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) ); 89 hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) );
86 hidePw->setToggleButton( true ); 90 hidePw->setToggleButton( true );
87 layout->addWidget( hidePw, 2, 2 ); 91 layout->addWidget( hidePw, 2, 2 );
88 92
89 connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool))); 93 connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool)));
90 94
91 tmp = tr("Enter your password here"); 95 tmp = tr("Enter your password here");
92 QWhatsThis::add( pw_l, tmp ); 96 QWhatsThis::add( pw_l, tmp );
93 QWhatsThis::add( passWord, tmp ); 97 QWhatsThis::add( passWord, tmp );
94 98
95 store_password = new QCheckBox(tr("Store password"), this); 99 store_password = new QCheckBox(tr("Store password"), this);
96 layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight); 100 layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight);
97 QWhatsThis::add(store_password, 101 QWhatsThis::add(store_password,
98 tr("<p>When this is turned on, your ISP password\n" 102 tr("<p>When this is turned on, your ISP password\n"
99 "will be saved in <i>kppp</i>'s config file, so\n" 103 "will be saved in <i>kppp</i>'s config file, so\n"
100 "you do not need to type it in every time.\n" 104 "you do not need to type it in every time.\n"
101 "\n" 105 "\n"
102 "<b><font color=\"red\">Warning:</font> your password will be stored as\n" 106 "<b><font color=\"red\">Warning:</font> your password will be stored as\n"
103 "plain text in the config file, which is\n" 107 "plain text in the config file, which is\n"
104 "readable only to you. Make sure nobody\n" 108 "readable only to you. Make sure nobody\n"
105 "gains access to this file!")); 109 "gains access to this file!"));
106 110
107 if (isNewAccount){ 111 if (isNewAccount){
108 // select PAP/CHAP as default 112 // select PAP/CHAP as default
109 auth->setCurrentItem(AUTH_PAPCHAP); 113 auth->setCurrentItem(AUTH_PAPCHAP);
110 store_password->setChecked(true); 114 store_password->setChecked(true);
111 }else{ 115 }else{
112 auth->setCurrentItem(_pppdata->authMethod()); 116 auth->setCurrentItem(_pppdata->authMethod());
113 authChanged( auth->currentText() ); 117 authChanged( auth->currentText() );
114 userName->setText( _pppdata->storedUsername() ); 118 userName->setText( _pppdata->storedUsername() );
115 store_password->setChecked(_pppdata->storePassword()); 119 store_password->setChecked(_pppdata->storePassword());
116 if (store_password->isChecked()) 120 if (store_password->isChecked())
117 passWord->setText( _pppdata->storedPassword() ); 121 passWord->setText( _pppdata->storedPassword() );
118 } 122 }
119} 123}
120 124
121bool AuthWidget::check() 125bool AuthWidget::check()
122{ 126{
123 bool ret = true; 127 bool ret = true;
124 if (scriptWidget){ 128 if (scriptWidget){
125 if (!scriptWidget->check()){ 129 if (!scriptWidget->check()){
126 QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>")); 130 QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>"));
127 ret = false; 131 ret = false;
128 } 132 }
129 } 133 }
130 return ret; 134 return ret;
131} 135}
132 136
133void AuthWidget::save() 137void AuthWidget::save()
134{ 138{
135 _pppdata->setAuthMethod(auth->currentItem()); 139 _pppdata->setAuthMethod(auth->currentItem());
136 if (scriptWidget) scriptWidget->save(); 140 if (scriptWidget) scriptWidget->save();
137 _pppdata->setStoredUsername( userName->text() ); 141 _pppdata->setStoredUsername( userName->text() );
138 _pppdata->setStorePassword(store_password->isChecked()); 142 _pppdata->setStorePassword(store_password->isChecked());
139 if (store_password->isChecked()) 143 if (store_password->isChecked())
140 _pppdata->setStoredPassword( passWord->text() ); 144 _pppdata->setStoredPassword( passWord->text() );
141} 145}
142 146
143void AuthWidget::authChanged( const QString &authStr ) 147void AuthWidget::authChanged( const QString &authStr )
144{ 148{
145 odebug << "AuthWidget::authChanged( " << authStr.latin1() << " )" << oendl; 149 odebug << "AuthWidget::authChanged( " << authStr.latin1() << " )" << oendl;
146 if ( authStr.contains( tr("Script-based") ) ){ 150 if ( authStr.contains( tr("Script-based") ) ){
147 showUsernamePassword( false ); 151 showUsernamePassword( false );
148 showScriptWindow( true ); 152 showScriptWindow( true );
149 } else if ( authStr.contains( tr("PAP") ) || 153 } else if ( authStr.contains( tr("PAP") ) ||
150 authStr.contains( tr("CHAP") ) ){ 154 authStr.contains( tr("CHAP") ) ){
151 showUsernamePassword( true ); 155 showUsernamePassword( true );
152 showScriptWindow( false ); 156 showScriptWindow( false );
153 } else { 157 } else {
154 odebug << "do not really know how to handle" << oendl; 158 odebug << "do not really know how to handle" << oendl;
155 showUsernamePassword( false ); 159 showUsernamePassword( false );
156 showScriptWindow( false ); 160 showScriptWindow( false );
157 } 161 }
158} 162}
159 163
160 164
161void AuthWidget::showUsernamePassword( bool show ) 165void AuthWidget::showUsernamePassword( bool show )
162{ 166{
163 if (show){ 167 if (show){
164 user_l->show(); 168 user_l->show();
165 userName->show(); 169 userName->show();
166 pw_l->show(); 170 pw_l->show();
167 passWord->show(); 171 passWord->show();
168 store_password->show(); 172 store_password->show();
169 hidePw->show(); 173 hidePw->show();
170 }else{//!show 174 }else{//!show
171 user_l->hide(); 175 user_l->hide();
172 userName->hide(); 176 userName->hide();
173 pw_l->hide(); 177 pw_l->hide();
174 passWord->hide(); 178 passWord->hide();
175 store_password->hide(); 179 store_password->hide();
176 hidePw->hide(); 180 hidePw->hide();
177 } 181 }
178} 182}
179 183
180void AuthWidget::showScriptWindow( bool show ) 184void AuthWidget::showScriptWindow( bool show )
181{ 185{
182 if (show){ 186 if (show){
183 if (!scriptWidget){ 187 if (!scriptWidget){
184 scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid"); 188 scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid");
185 layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 ); 189 layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 );
186 } 190 }
187 scriptWidget->show(); 191 scriptWidget->show();
188 }else{ // !show 192 }else{ // !show
189 if (scriptWidget) scriptWidget->hide(); 193 if (scriptWidget) scriptWidget->hide();
190 } 194 }
191} 195}
192 196
193void AuthWidget::toggleEchoMode( bool t ) 197void AuthWidget::toggleEchoMode( bool t )
194{ 198{
195 passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password ); 199 passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password );
196} 200}
197 201
diff --git a/noncore/settings/networksettings/ppp/config.in b/noncore/settings/networksettings/ppp/config.in
index 0b71434..570ebfe 100644
--- a/noncore/settings/networksettings/ppp/config.in
+++ b/noncore/settings/networksettings/ppp/config.in
@@ -1,4 +1,4 @@
1 config PPP 1 config PPP
2 boolean "opie-networksettingsplugin-kppp (PPP module)" 2 boolean "opie-networksettingsplugin-kppp (PPP module)"
3 default "n" if NETWORKSETUP 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES 4 depends ( LIBQPE || LIBQPE-X11 ) && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES
diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp
index b75410c..24d33f4 100644
--- a/noncore/settings/networksettings/ppp/connect.cpp
+++ b/noncore/settings/networksettings/ppp/connect.cpp
@@ -1,229 +1,230 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * 4 *
5 * Copyright (C) 1997 Bernd Johannes Wuebben 5 * Copyright (C) 1997 Bernd Johannes Wuebben
6 * wuebben@math.cornell.edu 6 * wuebben@math.cornell.edu
7 * Copyright (C) 1998-2001 Harri Porten <porten@kde.org> 7 * Copyright (C) 1998-2001 Harri Porten <porten@kde.org>
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27//#include <config.h> 27/* OPIE */
28#include <opie2/odebug.h>
29using namespace Opie::Core;
28 30
31/* QT */
29#include <qlayout.h> 32#include <qlayout.h>
30#include <qregexp.h> 33#include <qregexp.h>
31
32#include <qapplication.h> 34#include <qapplication.h>
33//#include <kdebug.h>
34//#include <klocale.h>
35#include <qmessagebox.h> 35#include <qmessagebox.h>
36#include <qpushbutton.h> 36#include <qpushbutton.h>
37 37
38/* STD */
38#include <unistd.h> 39#include <unistd.h>
39#include <stdlib.h> 40#include <stdlib.h>
40#include <string.h> 41#include <string.h>
41#include <fcntl.h> 42#include <fcntl.h>
42#include <netdb.h> 43#include <netdb.h>
43#include <sys/types.h> 44#include <sys/types.h>
44#include <sys/socket.h> 45#include <sys/socket.h>
45#include <arpa/inet.h> 46#include <arpa/inet.h>
46#include <netinet/in.h> 47#include <netinet/in.h>
47#include <sys/ioctl.h> 48#include <sys/ioctl.h>
48#include <assert.h> 49#include <assert.h>
49 50
50#ifdef _XPG4_2 51#ifdef _XPG4_2
51 #define __xnet_connectconnect 52 #define __xnet_connectconnect
52#endif 53#endif
53 54
54#include <errno.h> 55#include <errno.h>
55 56
56#ifdef HAVE_SYS_PARAM_H 57#ifdef HAVE_SYS_PARAM_H
57#include <sys/param.h> 58#include <sys/param.h>
58#endif 59#endif
59 60
60#ifdef __linux__ 61#ifdef __linux__
61#include "runtests.h" 62#include "runtests.h"
62#endif 63#endif
63 64
64#include "auth.h" 65#include "auth.h"
65#include "connect.h" 66#include "connect.h"
66//#include "docking.h" 67//#include "docking.h"
67#include "interfaceppp.h" 68#include "interfaceppp.h"
68#include "modem.h" 69#include "modem.h"
69#include "kpppconfig.h" 70#include "kpppconfig.h"
70#include "pppdata.h" 71#include "pppdata.h"
71#include "kpppwidget.h" 72#include "kpppwidget.h"
72//#include "requester.h" 73//#include "requester.h"
73//#include "utils.h" 74//#include "utils.h"
74#define execute_command system 75#define execute_command system
75 76
76QString old_hostname; 77QString old_hostname;
77bool modified_hostname; 78bool modified_hostname;
78 79
79 80
80ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *name) 81ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *name)
81 : QWidget(parent, name), 82 : QWidget(parent, name),
82 myreadbuffer(""), 83 myreadbuffer(""),
83 main_timer_ID(0), 84 main_timer_ID(0),
84 vmain(0), 85 vmain(0),
85 substate(-1), 86 substate(-1),
86 scriptindex(0), 87 scriptindex(0),
87 loopnest(0), 88 loopnest(0),
88 loopend(false), 89 loopend(false),
89 semaphore(false), 90 semaphore(false),
90 expecting(false), 91 expecting(false),
91 readbuffer(""), 92 readbuffer(""),
92 scanvar(""), 93 scanvar(""),
93 scanning(false), 94 scanning(false),
94 pausing(false), 95 pausing(false),
95 dialnumber(0), 96 dialnumber(0),
96 _ifaceppp(ifp) 97 _ifaceppp(ifp)
97{ 98{
98 modified_hostname = false; 99 modified_hostname = false;
99 100
100 QVBoxLayout *tl = new QVBoxLayout(this, 8, 10); 101 QVBoxLayout *tl = new QVBoxLayout(this, 8, 10);
101 QString tit = QObject::tr("Connecting to: "); 102 QString tit = QObject::tr("Connecting to: ");
102 setCaption(tit); 103 setCaption(tit);
103 104
104 QHBoxLayout *l0 = new QHBoxLayout(10); 105 QHBoxLayout *l0 = new QHBoxLayout(10);
105 tl->addLayout(l0); 106 tl->addLayout(l0);
106 l0->addSpacing(10); 107 l0->addSpacing(10);
107 messg = new QLabel(this, "messg"); 108 messg = new QLabel(this, "messg");
108 messg->setFrameStyle(QFrame::Panel|QFrame::Sunken); 109 messg->setFrameStyle(QFrame::Panel|QFrame::Sunken);
109 messg->setAlignment(AlignCenter); 110 messg->setAlignment(AlignCenter);
110 messg->setText(QObject::tr("Unable to create modem lock file.")); 111 messg->setText(QObject::tr("Unable to create modem lock file."));
111 messg->setMinimumHeight(messg->sizeHint().height() + 5); 112 messg->setMinimumHeight(messg->sizeHint().height() + 5);
112// int messw = (messg->sizeHint().width() * 12) / 10; 113// int messw = (messg->sizeHint().width() * 12) / 10;
113// messw = QMAX(messw,280); 114// messw = QMAX(messw,280);
114// messg->setMinimumWidth(messw); 115// messg->setMinimumWidth(messw);
115 if (_ifaceppp->getStatus()) 116 if (_ifaceppp->getStatus())
116 messg->setText(QObject::tr("Online")); 117 messg->setText(QObject::tr("Online"));
117 else 118 else
118 messg->setText(QObject::tr("Offline")); 119 messg->setText(QObject::tr("Offline"));
119 l0->addSpacing(10); 120 l0->addSpacing(10);
120 l0->addWidget(messg); 121 l0->addWidget(messg);
121 l0->addSpacing(10); 122 l0->addSpacing(10);
122 123
123 QHBoxLayout *l1 = new QHBoxLayout(10); 124 QHBoxLayout *l1 = new QHBoxLayout(10);
124 tl->addLayout(l1); 125 tl->addLayout(l1);
125 l1->addStretch(1); 126 l1->addStretch(1);
126 127
127 debug = new QPushButton(QObject::tr("Log"), this); 128 debug = new QPushButton(QObject::tr("Log"), this);
128 debug->setToggleButton(true); 129 debug->setToggleButton(true);
129 debug->setEnabled( false ); // FIXME: disable the log button 130 debug->setEnabled( false ); // FIXME: disable the log button
130 connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow())); 131 connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow()));
131 132
132 cancel = new QPushButton(QObject::tr("Cancel"), this); 133 cancel = new QPushButton(QObject::tr("Cancel"), this);
133 cancel->setFocus(); 134 cancel->setFocus();
134 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); 135 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton()));
135 136
136// int maxw = QMAX(cancel->sizeHint().width(), 137// int maxw = QMAX(cancel->sizeHint().width(),
137 // debug->sizeHint().width()); 138 // debug->sizeHint().width());
138// maxw = QMAX(maxw,65); 139// maxw = QMAX(maxw,65);
139// debug->setFixedWidth(maxw); 140// debug->setFixedWidth(maxw);
140// cancel->setFixedWidth(maxw); 141// cancel->setFixedWidth(maxw);
141 l1->addWidget(debug); 142 l1->addWidget(debug);
142 l1->addWidget(cancel); 143 l1->addWidget(cancel);
143 144
144// setFixedSize(sizeHint()); 145// setFixedSize(sizeHint());
145 146
146 pausetimer = new QTimer(this); 147 pausetimer = new QTimer(this);
147 connect(pausetimer, SIGNAL(timeout()), SLOT(pause())); 148 connect(pausetimer, SIGNAL(timeout()), SLOT(pause()));
148 149
149 qApp->processEvents(); 150 qApp->processEvents();
150 151
151 timeout_timer = new QTimer(this); 152 timeout_timer = new QTimer(this);
152 connect(timeout_timer, SIGNAL(timeout()), SLOT(script_timed_out())); 153 connect(timeout_timer, SIGNAL(timeout()), SLOT(script_timed_out()));
153 154
154 inittimer = new QTimer(this); 155 inittimer = new QTimer(this);
155 connect(inittimer, SIGNAL(timeout()), SLOT(init())); 156 connect(inittimer, SIGNAL(timeout()), SLOT(init()));
156 157
157 if_timeout_timer = new QTimer(this); 158 if_timeout_timer = new QTimer(this);
158 connect(if_timeout_timer, SIGNAL(timeout()), SLOT(if_waiting_timed_out())); 159 connect(if_timeout_timer, SIGNAL(timeout()), SLOT(if_waiting_timed_out()));
159 160
160 connect(this,SIGNAL(if_waiting_signal()),this,SLOT(if_waiting_slot())); 161 connect(this,SIGNAL(if_waiting_signal()),this,SLOT(if_waiting_slot()));
161 162
162 prompt = new PWEntry( this, "pw" ); 163 prompt = new PWEntry( this, "pw" );
163 if_timer = new QTimer(this); 164 if_timer = new QTimer(this);
164 connect(if_timer,SIGNAL(timeout()), SLOT(if_waiting_slot())); 165 connect(if_timer,SIGNAL(timeout()), SLOT(if_waiting_slot()));
165} 166}
166 167
167 168
168ConnectWidget::~ConnectWidget() { 169ConnectWidget::~ConnectWidget() {
169} 170}
170 171
171 172
172void ConnectWidget::preinit() { 173void ConnectWidget::preinit() {
173 // this is all just to keep the GUI nice and snappy .... 174 // this is all just to keep the GUI nice and snappy ....
174 // you have to see to believe ... 175 // you have to see to believe ...
175 messg->setText(QObject::tr("Looking for modem...")); 176 messg->setText(QObject::tr("Looking for modem..."));
176 inittimer->start(100); 177 inittimer->start(100);
177} 178}
178 179
179 180
180void ConnectWidget::init() { 181void ConnectWidget::init() {
181 _ifaceppp->data()->setpppdError(0); 182 _ifaceppp->data()->setpppdError(0);
182 inittimer->stop(); 183 inittimer->stop();
183 vmain = 0; 184 vmain = 0;
184 substate = -1; 185 substate = -1;
185 expecting = false; 186 expecting = false;
186 pausing = false; 187 pausing = false;
187 scriptindex = 0; 188 scriptindex = 0;
188 myreadbuffer = ""; 189 myreadbuffer = "";
189 scanning = false; 190 scanning = false;
190 scanvar = ""; 191 scanvar = "";
191 firstrunID = true; 192 firstrunID = true;
192 firstrunPW = true; 193 firstrunPW = true;
193// stats->totalbytes = 0; 194// stats->totalbytes = 0;
194 dialnumber = 0; 195 dialnumber = 0;
195 196
196// p_kppp->con_speed = ""; 197// p_kppp->con_speed = "";
197 198
198// p_kppp->setQuitOnDisconnect (p_kppp->quitOnDisconnect() || _ifaceppp->data()->quit_on_disconnect()); 199// p_kppp->setQuitOnDisconnect (p_kppp->quitOnDisconnect() || _ifaceppp->data()->quit_on_disconnect());
199 200
200 comlist = &_ifaceppp->data()->scriptType(); 201 comlist = &_ifaceppp->data()->scriptType();
201 arglist = &_ifaceppp->data()->script(); 202 arglist = &_ifaceppp->data()->script();
202 203
203 QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname()); 204 QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname());
204 setCaption(tit); 205 setCaption(tit);
205 206
206 qApp->processEvents(); 207 qApp->processEvents();
207 208
208 // run the "before-connect" command 209 // run the "before-connect" command
209 if (!_ifaceppp->data()->command_before_connect().isEmpty()) { 210 if (!_ifaceppp->data()->command_before_connect().isEmpty()) {
210 messg->setText(QObject::tr("Running pre-startup command...")); 211 messg->setText(QObject::tr("Running pre-startup command..."));
211 emit debugMessage(QObject::tr("Running pre-startup command...")); 212 emit debugMessage(QObject::tr("Running pre-startup command..."));
212 213
213 qApp->processEvents(); 214 qApp->processEvents();
214 QApplication::flushX(); 215 QApplication::flushX();
215 pid_t id = execute_command(_ifaceppp->data()->command_before_connect()); 216 pid_t id = execute_command(_ifaceppp->data()->command_before_connect());
216// int i, status; 217// int i, status;
217 218
218// do { 219// do {
219// qApp->processEvents(); 220// qApp->processEvents();
220// i = waitpid(id, &status, WNOHANG); 221// i = waitpid(id, &status, WNOHANG);
221// usleep(100000); 222// usleep(100000);
222// } while (i == 0 && errno == 0); 223// } while (i == 0 && errno == 0);
223 } 224 }
224 225
225 int lock = _ifaceppp->modem()->lockdevice(); 226 int lock = _ifaceppp->modem()->lockdevice();
226 227
227 if (lock == 1) { 228 if (lock == 1) {
228 messg->setText(QObject::tr("Modem device is locked.")); 229 messg->setText(QObject::tr("Modem device is locked."));
229 vmain = 20; // wait until cancel is pressed 230 vmain = 20; // wait until cancel is pressed
diff --git a/noncore/settings/networksettings/ppp/devices.cpp b/noncore/settings/networksettings/ppp/devices.cpp
index 350ff32..42de44c 100644
--- a/noncore/settings/networksettings/ppp/devices.cpp
+++ b/noncore/settings/networksettings/ppp/devices.cpp
@@ -1,217 +1,219 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27#include "interfaceppp.h" 27#include "interfaceppp.h"
28#include "devices.h" 28#include "devices.h"
29#include "authwidget.h" 29#include "authwidget.h"
30#include "pppdata.h" 30#include "pppdata.h"
31#include "edit.h" 31#include "edit.h"
32#include "general.h" 32#include "general.h"
33 33
34/* OPIE */ 34/* OPIE */
35#include <opie2/odebug.h>
35#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37using namespace Opie::Core;
36 38
37/* QT */ 39/* QT */
38#include <qdir.h> 40#include <qdir.h>
39#include <qlayout.h> 41#include <qlayout.h>
40#include <qtabwidget.h> 42#include <qtabwidget.h>
41#include <qtabdialog.h> 43#include <qtabdialog.h>
42#include <qwhatsthis.h> 44#include <qwhatsthis.h>
43#include <qmessagebox.h> 45#include <qmessagebox.h>
44#include <qapplication.h> 46#include <qapplication.h>
45#include <qbuttongroup.h> 47#include <qbuttongroup.h>
46#include <qmessagebox.h> 48#include <qmessagebox.h>
47#include <qvgroupbox.h> 49#include <qvgroupbox.h>
48 50
49/* STD */ 51/* STD */
50#include <stdlib.h> 52#include <stdlib.h>
51 53
52 54
53void parseargs(char* buf, char** args); 55void parseargs(char* buf, char** args);
54 56
55DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) 57DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f )
56 : ChooserWidget(ip->data(), parent, name, f) 58 : ChooserWidget(ip->data(), parent, name, f)
57{ 59{
58 _ifaceppp = ip; 60 _ifaceppp = ip;
59 QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); 61 QWhatsThis::add(edit_b, tr("Allows you to modify the selected device"));
60 QWhatsThis::add(new_b, tr("Create a new device") ); 62 QWhatsThis::add(new_b, tr("Create a new device") );
61 63
62 QWhatsThis::add(copy_b, 64 QWhatsThis::add(copy_b,
63 tr("Makes a copy of the selected device. All\n" 65 tr("Makes a copy of the selected device. All\n"
64 "settings of the selected device are copied\n" 66 "settings of the selected device are copied\n"
65 "to a new device, that you can modify to fit your\n" 67 "to a new device, that you can modify to fit your\n"
66 "needs")); 68 "needs"));
67 QWhatsThis::add(delete_b, 69 QWhatsThis::add(delete_b,
68 tr("<p>Deletes the selected device\n\n" 70 tr("<p>Deletes the selected device\n\n"
69 "<font color=\"red\"><b>Use with care!</b></font>")); 71 "<font color=\"red\"><b>Use with care!</b></font>"));
70 72
71 copy_b->setEnabled( false ); //FIXME 73 copy_b->setEnabled( false ); //FIXME
72// delete_b->setEnabled( false ); //FIXME 74// delete_b->setEnabled( false ); //FIXME
73 75
74 QStringList tmp = _pppdata->getDevicesNamesList(); 76 QStringList tmp = _pppdata->getDevicesNamesList();
75 odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl; 77 odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl;
76 listListbox->insertStringList(tmp); 78 listListbox->insertStringList(tmp);
77 79
78 for (uint i = 0; i < listListbox->count(); i++){ 80 for (uint i = 0; i < listListbox->count(); i++){
79 odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl; 81 odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl;
80 if ( listListbox->text(i) == _pppdata->devname() ) 82 if ( listListbox->text(i) == _pppdata->devname() )
81 listListbox->setCurrentItem( i ); 83 listListbox->setCurrentItem( i );
82 } 84 }
83} 85}
84 86
85 87
86 88
87void DevicesWidget::slotListBoxSelect(int idx) { 89void DevicesWidget::slotListBoxSelect(int idx) {
88 bool ok = _pppdata->setDevice( listListbox->text(idx) ); 90 bool ok = _pppdata->setDevice( listListbox->text(idx) );
89 delete_b->setEnabled((bool)(idx != -1)); 91 delete_b->setEnabled((bool)(idx != -1));
90 edit_b->setEnabled((bool)(idx != -1)); 92 edit_b->setEnabled((bool)(idx != -1));
91//FIXME copy_b->setEnabled((bool)(idx != -1)); 93//FIXME copy_b->setEnabled((bool)(idx != -1));
92} 94}
93 95
94void DevicesWidget::edit() { 96void DevicesWidget::edit() {
95 _pppdata->setDevice(listListbox->text(listListbox->currentItem())); 97 _pppdata->setDevice(listListbox->text(listListbox->currentItem()));
96 98
97 int result = doTab(); 99 int result = doTab();
98 100
99 if(result == QDialog::Accepted) { 101 if(result == QDialog::Accepted) {
100 listListbox->changeItem(_pppdata->devname(),listListbox->currentItem()); 102 listListbox->changeItem(_pppdata->devname(),listListbox->currentItem());
101 _pppdata->save(); 103 _pppdata->save();
102 } 104 }
103} 105}
104 106
105 107
106void DevicesWidget::create() { 108void DevicesWidget::create() {
107 109
108// if(listListbox->count() == MAX_ACCOUNTS) { 110// if(listListbox->count() == MAX_ACCOUNTS) {
109// QMessageBox::information(this, "sorry", 111// QMessageBox::information(this, "sorry",
110// tr("Maximum number of accounts reached.")); 112// tr("Maximum number of accounts reached."));
111// return; 113// return;
112// } 114// }
113 115
114 int result; 116 int result;
115 if (_pppdata->newdevice() == -1){ 117 if (_pppdata->newdevice() == -1){
116 return; 118 return;
117 } 119 }
118 result = doTab(); 120 result = doTab();
119 121
120 if(result == QDialog::Accepted) { 122 if(result == QDialog::Accepted) {
121 listListbox->insertItem(_pppdata->devname()); 123 listListbox->insertItem(_pppdata->devname());
122 listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true ); 124 listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true );
123 125
124 _pppdata->save(); 126 _pppdata->save();
125 } else 127 } else
126 _pppdata->deleteDevice(); 128 _pppdata->deleteDevice();
127} 129}
128 130
129 131
130void DevicesWidget::copy() { 132void DevicesWidget::copy() {
131// if(listListbox->count() == MAX_ACCOUNTS) { 133// if(listListbox->count() == MAX_ACCOUNTS) {
132// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); 134// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
133// return; 135// return;
134// } 136// }
135 137
136 if(listListbox->currentItem()<0) { 138 if(listListbox->currentItem()<0) {
137 QMessageBox::information(this, "sorry", tr("No devices selected.")); 139 QMessageBox::information(this, "sorry", tr("No devices selected."));
138 return; 140 return;
139 } 141 }
140 142
141 _pppdata->copydevice(listListbox->currentText()); 143 _pppdata->copydevice(listListbox->currentText());
142 144
143 listListbox->insertItem(_pppdata->devname()); 145 listListbox->insertItem(_pppdata->devname());
144 _pppdata->save(); 146 _pppdata->save();
145} 147}
146 148
147 149
148void DevicesWidget::remove() { 150void DevicesWidget::remove() {
149 151
150 QString s = tr("Are you sure you want to delete\nthe device \"%1\"?") 152 QString s = tr("Are you sure you want to delete\nthe device \"%1\"?")
151 .arg(listListbox->text(listListbox->currentItem())); 153 .arg(listListbox->text(listListbox->currentItem()));
152 154
153 if(QMessageBox::warning(this,tr("Confirm"),s, 155 if(QMessageBox::warning(this,tr("Confirm"),s,
154 QMessageBox::Yes,QMessageBox::No 156 QMessageBox::Yes,QMessageBox::No
155 ) != QMessageBox::Yes) 157 ) != QMessageBox::Yes)
156 return; 158 return;
157 159
158 if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem()))) 160 if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem())))
159 listListbox->removeItem(listListbox->currentItem()); 161 listListbox->removeItem(listListbox->currentItem());
160 162
161 163
162// _pppdata->save(); 164// _pppdata->save();
163 165
164 166
165 slotListBoxSelect(listListbox->currentItem()); 167 slotListBoxSelect(listListbox->currentItem());
166 168
167} 169}
168 170
169 171
170int DevicesWidget::doTab(){ 172int DevicesWidget::doTab(){
171 QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp ); 173 QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp );
172 QVBoxLayout *layout = new QVBoxLayout( dlg ); 174 QVBoxLayout *layout = new QVBoxLayout( dlg );
173 layout->setSpacing( 0 ); 175 layout->setSpacing( 0 );
174 layout->setMargin( 1 ); 176 layout->setMargin( 1 );
175 177
176 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); 178 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
177 layout->addWidget( tabWindow ); 179 layout->addWidget( tabWindow );
178 180
179 bool isnew; 181 bool isnew;
180 182
181 if(_pppdata->devname().isEmpty()) { 183 if(_pppdata->devname().isEmpty()) {
182 dlg->setCaption(tr("New Device")); 184 dlg->setCaption(tr("New Device"));
183 isnew = true; 185 isnew = true;
184 } else { 186 } else {
185 QString tit = tr("Edit Device: "); 187 QString tit = tr("Edit Device: ");
186 tit += _pppdata->devname(); 188 tit += _pppdata->devname();
187 dlg->setCaption(tit); 189 dlg->setCaption(tit);
188 isnew = false; 190 isnew = false;
189 } 191 }
190 192
191 modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); 193 modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" );
192 tabWindow->addTab( modem1, tr("&Device") ); 194 tabWindow->addTab( modem1, tr("&Device") );
193 modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); 195 modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" );
194 tabWindow->addTab( modem2, tr("&Modem") ); 196 tabWindow->addTab( modem2, tr("&Modem") );
195 197
196 int result = 0; 198 int result = 0;
197 bool ok = false; 199 bool ok = false;
198 200
199 while (!ok){ 201 while (!ok){
200 result = QPEApplication::execDialog( dlg ); 202 result = QPEApplication::execDialog( dlg );
201 ok = true; 203 ok = true;
202 204
203 if(result == QDialog::Accepted) { 205 if(result == QDialog::Accepted) {
204 if (!modem1->save()){ 206 if (!modem1->save()){
205 QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); 207 QMessageBox::critical(this, "error", tr( "You must enter a unique device name"));
206 ok = false; 208 ok = false;
207 }else{ 209 }else{
208 modem2->save(); 210 modem2->save();
209 } 211 }
210 } 212 }
211 } 213 }
212 214
213 delete dlg; 215 delete dlg;
214 216
215 return result; 217 return result;
216} 218}
217 219
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index 69bb682..40ba19b 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -1,227 +1,229 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27#include "general.h" 27#include "general.h"
28#include "interfaceppp.h" 28#include "interfaceppp.h"
29#include "modeminfo.h" 29#include "modeminfo.h"
30#include "modemcmds.h" 30#include "modemcmds.h"
31#include "pppdata.h" 31#include "pppdata.h"
32 32
33/* OPIE */ 33/* OPIE */
34#include <opie2/odebug.h>
34#include <qpe/config.h> 35#include <qpe/config.h>
35#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37using namespace Opie::Core;
36 38
37/* QT */ 39/* QT */
38#include <qcheckbox.h> 40#include <qcheckbox.h>
39#include <qcombobox.h> 41#include <qcombobox.h>
40#include <qlabel.h> 42#include <qlabel.h>
41#include <qlayout.h> 43#include <qlayout.h>
42#include <qpushbutton.h> 44#include <qpushbutton.h>
43#include <qslider.h> 45#include <qslider.h>
44#include <qspinbox.h> 46#include <qspinbox.h>
45#include <qwhatsthis.h> 47#include <qwhatsthis.h>
46 48
47/* STD */ 49/* STD */
48#include <termios.h> 50#include <termios.h>
49#include <string.h> 51#include <string.h>
50 52
51 53
52ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) 54ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
53 : QWidget(parent, name), _pppdata(pd) 55 : QWidget(parent, name), _pppdata(pd)
54{ 56{
55 int k; 57 int k;
56 58
57 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); 59 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint());
58 60
59 QLabel *label1; 61 QLabel *label1;
60 62
61 label1 = new QLabel(tr("Modem &name:"), this); 63 label1 = new QLabel(tr("Modem &name:"), this);
62 tl->addWidget(label1, 0, 0); 64 tl->addWidget(label1, 0, 0);
63 65
64 modemname = new QLineEdit(this, "modemName"); 66 modemname = new QLineEdit(this, "modemName");
65 modemname->setText( _pppdata->devname() ); 67 modemname->setText( _pppdata->devname() );
66 label1->setBuddy(modemname); 68 label1->setBuddy(modemname);
67 tl->addWidget(modemname, 0, 1); 69 tl->addWidget(modemname, 0, 1);
68 70
69 label1 = new QLabel(tr("Modem de&vice:"), this); 71 label1 = new QLabel(tr("Modem de&vice:"), this);
70 tl->addWidget(label1, 1, 0); 72 tl->addWidget(label1, 1, 0);
71 73
72 modemdevice = new QComboBox(false, this); 74 modemdevice = new QComboBox(false, this);
73 modemdevice->setEditable( true ); 75 modemdevice->setEditable( true );
74 modemdevice->setDuplicatesEnabled ( false ); 76 modemdevice->setDuplicatesEnabled ( false );
75 modemdevice->setInsertionPolicy( QComboBox::AtTop ); 77 modemdevice->setInsertionPolicy( QComboBox::AtTop );
76 label1->setBuddy(modemdevice); 78 label1->setBuddy(modemdevice);
77 79
78 Config cfg("NetworkSetupPPP"); 80 Config cfg("NetworkSetupPPP");
79 cfg.setGroup("Devices_General"); 81 cfg.setGroup("Devices_General");
80 QStringList devs = cfg.readListEntry("devices",','); 82 QStringList devs = cfg.readListEntry("devices",',');
81 if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; 83 if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0";
82 modemdevice->insertStringList( devs ); 84 modemdevice->insertStringList( devs );
83 tl->addWidget(modemdevice, 1, 1); 85 tl->addWidget(modemdevice, 1, 1);
84 86
85 // connect(modemdevice, SIGNAL(activated(int)), 87 // connect(modemdevice, SIGNAL(activated(int)),
86 // SLOT(setmodemdc(int))); 88 // SLOT(setmodemdc(int)));
87 // connect(modemdevice, SIGNAL(textChanged(const QString&) ), 89 // connect(modemdevice, SIGNAL(textChanged(const QString&) ),
88 // SLOT( setmodemdc(const QString&) ) ); 90 // SLOT( setmodemdc(const QString&) ) );
89 91
90 QString tmp = tr("This specifies the serial port your modem is attached \n" 92 QString tmp = tr("This specifies the serial port your modem is attached \n"
91 "to. On Linux/x86, typically this is either /dev/ttyS0 \n" 93 "to. On Linux/x86, typically this is either /dev/ttyS0 \n"
92 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" 94 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n"
93 "\n" 95 "\n"
94 "If you have an internal ISDN card with AT command\n" 96 "If you have an internal ISDN card with AT command\n"
95 "emulation (most cards under Linux support this), you\n" 97 "emulation (most cards under Linux support this), you\n"
96 "should select one of the /dev/ttyIx devices."); 98 "should select one of the /dev/ttyIx devices.");
97 99
98 QWhatsThis::add(label1,tmp); 100 QWhatsThis::add(label1,tmp);
99 QWhatsThis::add(modemdevice,tmp); 101 QWhatsThis::add(modemdevice,tmp);
100 102
101 103
102 label1 = new QLabel(tr("&Flow control:"), this); 104 label1 = new QLabel(tr("&Flow control:"), this);
103 tl->addWidget(label1, 2, 0); 105 tl->addWidget(label1, 2, 0);
104 106
105 flowcontrol = new QComboBox(false, this); 107 flowcontrol = new QComboBox(false, this);
106 label1->setBuddy(flowcontrol); 108 label1->setBuddy(flowcontrol);
107 flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); 109 flowcontrol->insertItem(tr("Hardware [CRTSCTS]"));
108 flowcontrol->insertItem(tr("Software [XON/XOFF]")); 110 flowcontrol->insertItem(tr("Software [XON/XOFF]"));
109 flowcontrol->insertItem(tr("None")); 111 flowcontrol->insertItem(tr("None"));
110 tl->addWidget(flowcontrol, 2, 1); 112 tl->addWidget(flowcontrol, 2, 1);
111 // connect(flowcontrol, SIGNAL(activated(int)), 113 // connect(flowcontrol, SIGNAL(activated(int)),
112 // SLOT(setflowcontrol(int))); 114 // SLOT(setflowcontrol(int)));
113 115
114 tmp = tr("<p>Specifies how the serial port and modem\n" 116 tmp = tr("<p>Specifies how the serial port and modem\n"
115 "communicate. You should not change this unless\n" 117 "communicate. You should not change this unless\n"
116 "you know what you are doing.\n" 118 "you know what you are doing.\n"
117 "\n" 119 "\n"
118 "<b>Default</b>: CRTSCTS"); 120 "<b>Default</b>: CRTSCTS");
119 121
120 QWhatsThis::add(label1,tmp); 122 QWhatsThis::add(label1,tmp);
121 QWhatsThis::add(flowcontrol,tmp); 123 QWhatsThis::add(flowcontrol,tmp);
122 124
123 QLabel *labelenter = new QLabel(tr("&Line termination:"), this); 125 QLabel *labelenter = new QLabel(tr("&Line termination:"), this);
124 tl->addWidget(labelenter, 3, 0); 126 tl->addWidget(labelenter, 3, 0);
125 127
126 enter = new QComboBox(false, this); 128 enter = new QComboBox(false, this);
127 labelenter->setBuddy(enter); 129 labelenter->setBuddy(enter);
128 enter->insertItem("CR"); 130 enter->insertItem("CR");
129 enter->insertItem("LF"); 131 enter->insertItem("LF");
130 enter->insertItem("CR/LF"); 132 enter->insertItem("CR/LF");
131 tl->addWidget(enter, 3, 1); 133 tl->addWidget(enter, 3, 1);
132 // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); 134 // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int)));
133 tmp = tr("<p>Specifies how AT commands are sent to your\n" 135 tmp = tr("<p>Specifies how AT commands are sent to your\n"
134 "modem. Most modems will work fine with the\n" 136 "modem. Most modems will work fine with the\n"
135 "default <i>CR/LF</i>. If your modem does not react\n" 137 "default <i>CR/LF</i>. If your modem does not react\n"
136 "to the init string, you should try different\n" 138 "to the init string, you should try different\n"
137 "settings here\n" 139 "settings here\n"
138 "\n" 140 "\n"
139 "<b>Default</b>: CR/LF"); 141 "<b>Default</b>: CR/LF");
140 142
141 QWhatsThis::add(labelenter,tmp); 143 QWhatsThis::add(labelenter,tmp);
142 QWhatsThis::add(enter, tmp); 144 QWhatsThis::add(enter, tmp);
143 145
144 QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); 146 QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this);
145 tl->addWidget(baud_label, 4, 0); 147 tl->addWidget(baud_label, 4, 0);
146 baud_c = new QComboBox(this); 148 baud_c = new QComboBox(this);
147 baud_label->setBuddy(baud_c); 149 baud_label->setBuddy(baud_c);
148 150
149 static const char *baudrates[] = 151 static const char *baudrates[] =
150 { 152 {
151 153
152#ifdef B460800 154#ifdef B460800
153 "460800", 155 "460800",
154#endif 156#endif
155 157
156#ifdef B230400 158#ifdef B230400
157 "230400", 159 "230400",
158#endif 160#endif
159 161
160#ifdef B115200 162#ifdef B115200
161 "115200", 163 "115200",
162#endif 164#endif
163 165
164#ifdef B57600 166#ifdef B57600
165 "57600", 167 "57600",
166#endif 168#endif
167 169
168 "38400", 170 "38400",
169 "19200", 171 "19200",
170 "9600", 172 "9600",
171 "2400", 173 "2400",
172 0 174 0
173 }; 175 };
174 176
175 for(k = 0; baudrates[k]; k++) 177 for(k = 0; baudrates[k]; k++)
176 baud_c->insertItem(baudrates[k]); 178 baud_c->insertItem(baudrates[k]);
177 179
178 baud_c->setCurrentItem(3); 180 baud_c->setCurrentItem(3);
179 // connect(baud_c, SIGNAL(activated(int)), 181 // connect(baud_c, SIGNAL(activated(int)),
180 // this, SLOT(speed_selection(int))); 182 // this, SLOT(speed_selection(int)));
181 tl->addWidget(baud_c, 4, 1); 183 tl->addWidget(baud_c, 4, 1);
182 184
183 tmp = tr("Specifies the speed your modem and the serial\n" 185 tmp = tr("Specifies the speed your modem and the serial\n"
184 "port talk to each other. You should begin with\n" 186 "port talk to each other. You should begin with\n"
185 "the default of 38400 bits/sec. If everything\n" 187 "the default of 38400 bits/sec. If everything\n"
186 "works you can try to increase this value, but to\n" 188 "works you can try to increase this value, but to\n"
187 "no more than 115200 bits/sec (unless you know\n" 189 "no more than 115200 bits/sec (unless you know\n"
188 "that your serial port supports higher speeds)."); 190 "that your serial port supports higher speeds).");
189 191
190 QWhatsThis::add(baud_label,tmp); 192 QWhatsThis::add(baud_label,tmp);
191 QWhatsThis::add(baud_c,tmp); 193 QWhatsThis::add(baud_c,tmp);
192 194
193 for(int i=0; i <= enter->count()-1; i++) 195 for(int i=0; i <= enter->count()-1; i++)
194 { 196 {
195 if(_pppdata->enter() == enter->text(i)) 197 if(_pppdata->enter() == enter->text(i))
196 enter->setCurrentItem(i); 198 enter->setCurrentItem(i);
197 } 199 }
198 200
199 tl->addRowSpacing(5, 10); 201 tl->addRowSpacing(5, 10);
200 202
201 //Modem Lock File 203 //Modem Lock File
202 modemlockfile = new QCheckBox(tr("&Use lock file"), this); 204 modemlockfile = new QCheckBox(tr("&Use lock file"), this);
203 205
204 modemlockfile->setChecked(_pppdata->modemLockFile()); 206 modemlockfile->setChecked(_pppdata->modemLockFile());
205 // connect(modemlockfile, SIGNAL(toggled(bool)), 207 // connect(modemlockfile, SIGNAL(toggled(bool)),
206 // SLOT(modemlockfilechanged(bool))); 208 // SLOT(modemlockfilechanged(bool)));
207 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); 209 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
208 // l12->addStretch(1); 210 // l12->addStretch(1);
209 QWhatsThis::add(modemlockfile, 211 QWhatsThis::add(modemlockfile,
210 tr("<p>To prevent other programs from accessing the\n" 212 tr("<p>To prevent other programs from accessing the\n"
211 "modem while a connection is established, a\n" 213 "modem while a connection is established, a\n"
212 "file can be created to indicate that the modem\n" 214 "file can be created to indicate that the modem\n"
213 "is in use. On Linux an example file would be\n" 215 "is in use. On Linux an example file would be\n"
214 "<tt>/var/lock/LCK..ttyS1</tt>\n" 216 "<tt>/var/lock/LCK..ttyS1</tt>\n"
215 "Here you can select whether this locking will\n" 217 "Here you can select whether this locking will\n"
216 "be done.\n" 218 "be done.\n"
217 "\n" 219 "\n"
218 "<b>Default</b>: On")); 220 "<b>Default</b>: On"));
219 221
220 // Modem Timeout Line Edit Box 222 // Modem Timeout Line Edit Box
221 QHBoxLayout *timeoutLayout = new QHBoxLayout( this ); 223 QHBoxLayout *timeoutLayout = new QHBoxLayout( this );
222 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); 224 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" );
223 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); 225 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" );
224 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); 226 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this);
225 // modemtimeout->setLabel(tr("Modem &timeout:")); 227 // modemtimeout->setLabel(tr("Modem &timeout:"));
226 // modemtimeout->setRange(1, 120, 1); 228 // modemtimeout->setRange(1, 120, 1);
227 modemtimeout->setSuffix(tr(" sec")); 229 modemtimeout->setSuffix(tr(" sec"));
diff --git a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
index 5a76293..4755aed 100644
--- a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
+++ b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
@@ -1,41 +1,45 @@
1#include "interfaceinformationppp.h" 1#include "interfaceinformationppp.h"
2#include "connect.h"
3#include "conwindow.h"
4
5/* OPIE */
6#include <opie2/odebug.h>
7using namespace Opie::Core;
2 8
9/* QT */
3#include <qpushbutton.h> 10#include <qpushbutton.h>
4#include <qlabel.h> 11#include <qlabel.h>
5#include <qmessagebox.h> 12#include <qmessagebox.h>
6#include <qabstractlayout.h> 13#include <qabstractlayout.h>
7 14
8#include "connect.h"
9#include "conwindow.h"
10
11#ifdef QWS 15#ifdef QWS
12#else 16#else
13 #define showMaximized show 17 #define showMaximized show
14#endif 18#endif
15 19
16/** 20/**
17 * Constructor for the InterfaceInformationImp class. This class pretty much 21 * Constructor for the InterfaceInformationImp class. This class pretty much
18 * just display's information about the interface that is passed to it. 22 * just display's information about the interface that is passed to it.
19 */ 23 */
20InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f) 24InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f)
21 :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp) 25 :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp)
22{ 26{
23 odebug << "InterfaceInformationPPP::InterfaceInformationPPP " << name << "" << oendl; 27 odebug << "InterfaceInformationPPP::InterfaceInformationPPP " << name << "" << oendl;
24 con = new ConnectWidget( (InterfacePPP*)i, this, "con" ); 28 con = new ConnectWidget( (InterfacePPP*)i, this, "con" );
25 con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, 29 con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding,
26 QSizePolicy::Fixed) ); 30 QSizePolicy::Fixed) );
27 31
28 macAddressLabel->hide(); 32 macAddressLabel->hide();
29 subnetMaskLabel->hide(); 33 subnetMaskLabel->hide();
30 broadcastLabel->hide(); 34 broadcastLabel->hide();
31 TextLabel23->hide(); 35 TextLabel23->hide();
32 TextLabel21->hide(); 36 TextLabel21->hide();
33 TextLabel24->hide(); 37 TextLabel24->hide();
34 38
35 InterfaceInformationLayout->addWidget( con, 1, 0 ); 39 InterfaceInformationLayout->addWidget( con, 1, 0 );
36 connect(i, SIGNAL(begin_connect()),con, SLOT(preinit())); 40 connect(i, SIGNAL(begin_connect()),con, SLOT(preinit()));
37 connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) ); 41 connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) );
38} 42}
39 43
40 44
41 45
diff --git a/noncore/settings/networksettings/ppp/interfaceppp.cpp b/noncore/settings/networksettings/ppp/interfaceppp.cpp
index 5cc6f70..7d52f66 100644
--- a/noncore/settings/networksettings/ppp/interfaceppp.cpp
+++ b/noncore/settings/networksettings/ppp/interfaceppp.cpp
@@ -1,174 +1,178 @@
1#include "auth.h"
2#include "interfaceppp.h"
3#include "modem.h"
4#include "pppdata.h"
5
6/* OPIE */
7#include <opie2/odebug.h>
8using namespace Opie::Core;
1 9
10/* QT */
2#include <qmessagebox.h> 11#include <qmessagebox.h>
3#include <qlayout.h> 12#include <qlayout.h>
4#include <qlineedit.h> 13#include <qlineedit.h>
5#include <qlabel.h> 14#include <qlabel.h>
6 15
7#include "auth.h"
8#include "interfaceppp.h"
9#include "modem.h"
10#include "pppdata.h"
11
12InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) 16InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status)
13 : Interface(parent, name, status), 17 : Interface(parent, name, status),
14 _modemPtr(0), 18 _modemPtr(0),
15 _dataPtr(0) 19 _dataPtr(0)
16{ 20{
17 odebug << "InterfacePPP::InterfacePPP(" << oendl; 21 odebug << "InterfacePPP::InterfacePPP(" << oendl;
18} 22}
19 23
20PPPData* InterfacePPP::data()const 24PPPData* InterfacePPP::data()const
21{ 25{
22 if (!_dataPtr){ 26 if (!_dataPtr){
23 odebug << "creating new Data obj" << oendl; 27 odebug << "creating new Data obj" << oendl;
24 _dataPtr = new PPPData(); 28 _dataPtr = new PPPData();
25 _dataPtr->setDevice( getInterfaceName() ); 29 _dataPtr->setDevice( getInterfaceName() );
26 _dataPtr->setAccount( getHardwareName() ); 30 _dataPtr->setAccount( getHardwareName() );
27 } 31 }
28 return _dataPtr; 32 return _dataPtr;
29} 33}
30 34
31Modem* InterfacePPP::modem()const 35Modem* InterfacePPP::modem()const
32{ 36{
33 if (!_modemPtr){ 37 if (!_modemPtr){
34 odebug << "creating new modem obj" << oendl; 38 odebug << "creating new modem obj" << oendl;
35 _modemPtr = new Modem( data() ); 39 _modemPtr = new Modem( data() );
36 } 40 }
37 return _modemPtr; 41 return _modemPtr;
38} 42}
39 43
40bool InterfacePPP::refresh() 44bool InterfacePPP::refresh()
41{ 45{
42 odebug << "InterfacePPP::refresh()" << oendl; 46 odebug << "InterfacePPP::refresh()" << oendl;
43 QString old = getInterfaceName(); 47 QString old = getInterfaceName();
44 setInterfaceName( modem()->pppDevice() ); 48 setInterfaceName( modem()->pppDevice() );
45 49
46 (void)Interface::refresh(); 50 (void)Interface::refresh();
47 51
48 setInterfaceName( old ); 52 setInterfaceName( old );
49 emit updateInterface(this); 53 emit updateInterface(this);
50 54
51 return true; 55 return true;
52} 56}
53 57
54void InterfacePPP::start() 58void InterfacePPP::start()
55{ 59{
56 odebug << "InterfacePPP::start" << oendl; 60 odebug << "InterfacePPP::start" << oendl;
57 61
58 if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) { 62 if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) {
59 63
60 QDialog mb( 0, "Dialog", true ); 64 QDialog mb( 0, "Dialog", true );
61 mb.setCaption( tr( "No password" ) ); 65 mb.setCaption( tr( "No password" ) );
62 QVBoxLayout layout( &mb ); 66 QVBoxLayout layout( &mb );
63 QLabel text ( &mb ); 67 QLabel text ( &mb );
64 text.setText( tr("Username defined but no password\n Please enter a password") ); 68 text.setText( tr("Username defined but no password\n Please enter a password") );
65 QLineEdit lineedit( &mb ); 69 QLineEdit lineedit( &mb );
66 lineedit.setEchoMode( QLineEdit::Password ); 70 lineedit.setEchoMode( QLineEdit::Password );
67 layout.addWidget( &text ); 71 layout.addWidget( &text );
68 layout.addWidget( &lineedit ); 72 layout.addWidget( &lineedit );
69 if ( mb.exec() == QDialog::Accepted ) { 73 if ( mb.exec() == QDialog::Accepted ) {
70 data()->setPassword( lineedit.text() ); 74 data()->setPassword( lineedit.text() );
71 } 75 }
72 } 76 }
73 77
74 QFileInfo info(pppdPath()); 78 QFileInfo info(pppdPath());
75 79
76 if(!info.exists()){ 80 if(!info.exists()){
77 QMessageBox::warning(0, tr("Error"), 81 QMessageBox::warning(0, tr("Error"),
78 QObject::tr("<qt>Cannot find the PPP daemon!<br>" 82 QObject::tr("<qt>Cannot find the PPP daemon!<br>"
79 "Make sure that pppd is installed and " 83 "Make sure that pppd is installed and "
80 "that you have entered the correct path.</qt>")); 84 "that you have entered the correct path.</qt>"));
81 return; 85 return;
82 } 86 }
83//#if 0 87//#if 0
84 if(!info.isExecutable()){ 88 if(!info.isExecutable()){
85 89
86 QString string; 90 QString string;
87 string = QObject::tr( "<qt>Cannot execute:<br> %1<br>" 91 string = QObject::tr( "<qt>Cannot execute:<br> %1<br>"
88 "Please make sure that you have given " 92 "Please make sure that you have given "
89 "setuid permission and that " 93 "setuid permission and that "
90 "pppd is executable.<br>").arg(pppdPath()); 94 "pppd is executable.<br>").arg(pppdPath());
91 QMessageBox::warning(0, tr("Error"), string); 95 QMessageBox::warning(0, tr("Error"), string);
92 return; 96 return;
93 97
94 } 98 }
95//#endif 99//#endif
96 100
97 QFileInfo info2(data()->modemDevice()); 101 QFileInfo info2(data()->modemDevice());
98 102
99 if(!info2.exists()){ 103 if(!info2.exists()){
100 QString string; 104 QString string;
101 string = QObject::tr( "<qt>Cannot find:<br> %1<br>" 105 string = QObject::tr( "<qt>Cannot find:<br> %1<br>"
102 "Please make sure you have setup " 106 "Please make sure you have setup "
103 "your modem device properly " 107 "your modem device properly "
104 "and/or adjust the location of the modem device on " 108 "and/or adjust the location of the modem device on "
105 "the modem tab of " 109 "the modem tab of "
106 "the setup dialog.</qt>").arg(data()->modemDevice()); 110 "the setup dialog.</qt>").arg(data()->modemDevice());
107 QMessageBox::warning(0, tr("Error"), string); 111 QMessageBox::warning(0, tr("Error"), string);
108 return; 112 return;
109 } 113 }
110 114
111 // if this is a PAP or CHAP account, ensure that username is 115 // if this is a PAP or CHAP account, ensure that username is
112 // supplied 116 // supplied
113 if(data()->authMethod() == AUTH_PAP || 117 if(data()->authMethod() == AUTH_PAP ||
114 data()->authMethod() == AUTH_CHAP || 118 data()->authMethod() == AUTH_CHAP ||
115 data()->authMethod() == AUTH_PAPCHAP ) { 119 data()->authMethod() == AUTH_PAPCHAP ) {
116 if(false){ //FIXME: ID_Edit->text().isEmpty()) { 120 if(false){ //FIXME: ID_Edit->text().isEmpty()) {
117 QMessageBox::warning(0,tr("Error"), 121 QMessageBox::warning(0,tr("Error"),
118 QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); 122 QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>"));
119// FIXME: return; 123// FIXME: return;
120 } else { 124 } else {
121 if(!modem()->setSecret(data()->authMethod(), 125 if(!modem()->setSecret(data()->authMethod(),
122 PPPData::encodeWord(data()->storedUsername()), 126 PPPData::encodeWord(data()->storedUsername()),
123 PPPData::encodeWord(data()->password())) 127 PPPData::encodeWord(data()->password()))
124 ) { 128 ) {
125 QString s; 129 QString s;
126 s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>" 130 s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>"
127 "file \"%1\"</qt>").arg(PAP_AUTH_FILE); 131 "file \"%1\"</qt>").arg(PAP_AUTH_FILE);
128 QMessageBox::warning(0, tr("Error"), s); 132 QMessageBox::warning(0, tr("Error"), s);
129 return; 133 return;
130 } 134 }
131 } 135 }
132 } 136 }
133 137
134 if (data()->phonenumber().isEmpty()) { 138 if (data()->phonenumber().isEmpty()) {
135 QString s = QObject::tr("You must specify a telephone number!"); 139 QString s = QObject::tr("You must specify a telephone number!");
136 QMessageBox::warning(0, tr("Error"), s); 140 QMessageBox::warning(0, tr("Error"), s);
137 return; 141 return;
138 } 142 }
139 143
140 // SEGFAULTS: 144 // SEGFAULTS:
141// setStatus( true ); 145// setStatus( true );
142// emit updateInterface((Interface*) this); 146// emit updateInterface((Interface*) this);
143 147
144 emit begin_connect(); 148 emit begin_connect();
145 149
146 odebug << "InterfacePPP::start END" << oendl; 150 odebug << "InterfacePPP::start END" << oendl;
147} 151}
148 152
149void InterfacePPP::stop() 153void InterfacePPP::stop()
150{ 154{
151 odebug << "InterfacePPP::stop" << oendl; 155 odebug << "InterfacePPP::stop" << oendl;
152 // emit hangup_now(); 156 // emit hangup_now();
153 status = false; // not connected 157 status = false; // not connected
154 setStatus( false ); 158 setStatus( false );
155 emit hangup_now(); 159 emit hangup_now();
156 refresh(); 160 refresh();
157 161
158} 162}
159 163
160void InterfacePPP::save() 164void InterfacePPP::save()
161{ 165{
162 data()->save(); 166 data()->save();
163 emit updateInterface((Interface*) this); 167 emit updateInterface((Interface*) this);
164} 168}
165QString InterfacePPP::pppDev()const { 169QString InterfacePPP::pppDev()const {
166 return modem()->pppDevice(); 170 return modem()->pppDevice();
167} 171}
168pid_t InterfacePPP::pppPID()const{ 172pid_t InterfacePPP::pppPID()const{
169 return modem()->pppPID(); 173 return modem()->pppPID();
170} 174}
171void InterfacePPP::setPPPDpid( pid_t pid) { 175void InterfacePPP::setPPPDpid( pid_t pid) {
172 setStatus( true ); 176 setStatus( true );
173 modem()->setPPPDPid( pid ); 177 modem()->setPPPDPid( pid );
174} 178}
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp
index f3f2639..5913a22 100644
--- a/noncore/settings/networksettings/ppp/modem.cpp
+++ b/noncore/settings/networksettings/ppp/modem.cpp
@@ -1,218 +1,223 @@
1/* 1/*
2 * kPPP: A pppd Front End for the KDE project 2 * kPPP: A pppd Front End for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * This file was added by Harri Porten <porten@tu-harburg.de> 9 * This file was added by Harri Porten <porten@tu-harburg.de>
10 * 10 *
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27/* OPIE */
28#include <opie2/odebug.h>
29using namespace Opie::Core;
30
31/* STD */
27#include <errno.h> 32#include <errno.h>
28#include <stdlib.h> 33#include <stdlib.h>
29#include <unistd.h> 34#include <unistd.h>
30#include <fcntl.h> 35#include <fcntl.h>
31#include <signal.h> 36#include <signal.h>
32#include <sys/ioctl.h> 37#include <sys/ioctl.h>
33#include <sys/types.h> 38#include <sys/types.h>
34#include <sys/stat.h> 39#include <sys/stat.h>
35#include <setjmp.h> 40#include <setjmp.h>
36#include <regex.h> 41#include <regex.h>
37#include <qregexp.h> 42#include <qregexp.h>
38#include <assert.h> 43#include <assert.h>
39#include <string.h> 44#include <string.h>
40 45
41#ifdef HAVE_RESOLV_H 46#ifdef HAVE_RESOLV_H
42# include <arpa/nameser.h> 47# include <arpa/nameser.h>
43# include <resolv.h> 48# include <resolv.h>
44#endif 49#endif
45 50
46#ifndef _PATH_RESCONF 51#ifndef _PATH_RESCONF
47#define _PATH_RESCONF "/etc/resolv.conf" 52#define _PATH_RESCONF "/etc/resolv.conf"
48#endif 53#endif
49 54
50#define strlcpy strcpy 55#define strlcpy strcpy
51#include "auth.h" 56#include "auth.h"
52#include "modem.h" 57#include "modem.h"
53#include "pppdata.h" 58#include "pppdata.h"
54#define qError qDebug 59#define qError qDebug
55 60
56 61
57#define MY_ASSERT(x) if (!(x)) { \ 62#define MY_ASSERT(x) if (!(x)) { \
58 ofatal << "ASSERT: \"" << #x << "\" in " << __FILE__ << " (" << __LINE__ << ")\n" << oendl; \ 63 ofatal << "ASSERT: \"" << #x << "\" in " << __FILE__ << " (" << __LINE__ << ")\n" << oendl; \
59 exit(1); } 64 exit(1); }
60 65
61 66
62static sigjmp_buf jmp_buffer; 67static sigjmp_buf jmp_buffer;
63 68
64//Modem *Modem::modem = 0; 69//Modem *Modem::modem = 0;
65 70
66 71
67const char* pppdPath() { 72const char* pppdPath() {
68 // wasting a few bytes 73 // wasting a few bytes
69 static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)]; 74 static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)];
70 static char *pppdPath = 0L; 75 static char *pppdPath = 0L;
71 char *p; 76 char *p;
72 77
73 if(pppdPath == 0L) { 78 if(pppdPath == 0L) {
74 const char *c = PPPDSEARCHPATH; 79 const char *c = PPPDSEARCHPATH;
75 while(*c != '\0') { 80 while(*c != '\0') {
76 while(*c == ':') 81 while(*c == ':')
77 c++; 82 c++;
78 p = buffer; 83 p = buffer;
79 while(*c != '\0' && *c != ':') 84 while(*c != '\0' && *c != ':')
80 *p++ = *c++; 85 *p++ = *c++;
81 *p = '\0'; 86 *p = '\0';
82 strcat(p, "/"); 87 strcat(p, "/");
83 strcat(p, PPPDNAME); 88 strcat(p, PPPDNAME);
84 if(access(buffer, F_OK) == 0) 89 if(access(buffer, F_OK) == 0)
85 return (pppdPath = buffer); 90 return (pppdPath = buffer);
86 } 91 }
87 } 92 }
88 93
89 return pppdPath; 94 return pppdPath;
90} 95}
91 96
92 97
93Modem::Modem( PPPData* pd ) 98Modem::Modem( PPPData* pd )
94{ 99{
95 _pppdata = pd; 100 _pppdata = pd;
96 modemfd = -1; 101 modemfd = -1;
97 _pppdExitStatus = -1; 102 _pppdExitStatus = -1;
98 pppdPid = -1; 103 pppdPid = -1;
99 sn = m_modemDebug = 0L; 104 sn = m_modemDebug = 0L;
100 data_mode = false; 105 data_mode = false;
101 modem_is_locked = false; 106 modem_is_locked = false;
102 lockfile[0] = '\0'; 107 lockfile[0] = '\0';
103 device = "/dev/modem"; 108 device = "/dev/modem";
104} 109}
105 110
106 111
107Modem::~Modem() 112Modem::~Modem()
108{ 113{
109} 114}
110 115
111 116
112speed_t Modem::modemspeed() { 117speed_t Modem::modemspeed() {
113 // convert the string modem speed int the gpppdata object to a t_speed type 118 // convert the string modem speed int the gpppdata object to a t_speed type
114 // to set the modem. The constants here should all be ifdef'd because 119 // to set the modem. The constants here should all be ifdef'd because
115 // other systems may not have them 120 // other systems may not have them
116 int i = _pppdata->speed().toInt()/100; 121 int i = _pppdata->speed().toInt()/100;
117 122
118 switch(i) { 123 switch(i) {
119 case 24: 124 case 24:
120 return B2400; 125 return B2400;
121 break; 126 break;
122 case 96: 127 case 96:
123 return B9600; 128 return B9600;
124 break; 129 break;
125 case 192: 130 case 192:
126 return B19200; 131 return B19200;
127 break; 132 break;
128 case 384: 133 case 384:
129 return B38400; 134 return B38400;
130 break; 135 break;
131#ifdef B57600 136#ifdef B57600
132 case 576: 137 case 576:
133 return B57600; 138 return B57600;
134 break; 139 break;
135#endif 140#endif
136 141
137#ifdef B115200 142#ifdef B115200
138 case 1152: 143 case 1152:
139 return B115200; 144 return B115200;
140 break; 145 break;
141#endif 146#endif
142 147
143#ifdef B230400 148#ifdef B230400
144 case 2304: 149 case 2304:
145 return B230400; 150 return B230400;
146 break; 151 break;
147#endif 152#endif
148 153
149#ifdef B460800 154#ifdef B460800
150 case 4608: 155 case 4608:
151 return B460800; 156 return B460800;
152 break; 157 break;
153#endif 158#endif
154 159
155 default: 160 default:
156 return B38400; 161 return B38400;
157 break; 162 break;
158 } 163 }
159} 164}
160 165
161bool Modem::opentty() { 166bool Modem::opentty() {
162 // int flags; 167 // int flags;
163 168
164//begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { 169//begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) {
165 close(modemfd); 170 close(modemfd);
166 device = _pppdata->modemDevice(); 171 device = _pppdata->modemDevice();
167 if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { 172 if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) {
168 odebug << "error opening modem device !" << oendl; 173 odebug << "error opening modem device !" << oendl;
169 errmsg = QObject::tr("Unable to open modem."); 174 errmsg = QObject::tr("Unable to open modem.");
170 return false; 175 return false;
171 } 176 }
172//bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { 177//bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) {
173//} 178//}
174 179
175#if 0 180#if 0
176 if(_pppdata->UseCDLine()) { 181 if(_pppdata->UseCDLine()) {
177 if(ioctl(modemfd, TIOCMGET, &flags) == -1) { 182 if(ioctl(modemfd, TIOCMGET, &flags) == -1) {
178 errmsg = QObject::tr("Unable to detect state of CD line."); 183 errmsg = QObject::tr("Unable to detect state of CD line.");
179 ::close(modemfd); 184 ::close(modemfd);
180 modemfd = -1; 185 modemfd = -1;
181 return false; 186 return false;
182 } 187 }
183 if ((flags&TIOCM_CD) == 0) { 188 if ((flags&TIOCM_CD) == 0) {
184 errmsg = QObject::tr("The modem is not ready."); 189 errmsg = QObject::tr("The modem is not ready.");
185 ::close(modemfd); 190 ::close(modemfd);
186 modemfd = -1; 191 modemfd = -1;
187 return false; 192 return false;
188 } 193 }
189 } 194 }
190#endif 195#endif
191 196
192 tcdrain (modemfd); 197 tcdrain (modemfd);
193 tcflush (modemfd, TCIOFLUSH); 198 tcflush (modemfd, TCIOFLUSH);
194 199
195 if(tcgetattr(modemfd, &tty) < 0){ 200 if(tcgetattr(modemfd, &tty) < 0){
196 // this helps in some cases 201 // this helps in some cases
197 tcsendbreak(modemfd, 0); 202 tcsendbreak(modemfd, 0);
198 sleep(1); 203 sleep(1);
199 if(tcgetattr(modemfd, &tty) < 0){ 204 if(tcgetattr(modemfd, &tty) < 0){
200 errmsg = QObject::tr("The modem is busy."); 205 errmsg = QObject::tr("The modem is busy.");
201 ::close(modemfd); 206 ::close(modemfd);
202 modemfd = -1; 207 modemfd = -1;
203 return false; 208 return false;
204 } 209 }
205 } 210 }
206 211
207 memset(&initial_tty,'\0',sizeof(initial_tty)); 212 memset(&initial_tty,'\0',sizeof(initial_tty));
208 213
209 initial_tty = tty; 214 initial_tty = tty;
210 215
211 tty.c_cc[VMIN] = 0; // nonblocking 216 tty.c_cc[VMIN] = 0; // nonblocking
212 tty.c_cc[VTIME] = 0; 217 tty.c_cc[VTIME] = 0;
213 tty.c_oflag = 0; 218 tty.c_oflag = 0;
214 tty.c_lflag = 0; 219 tty.c_lflag = 0;
215 220
216 tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); 221 tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB);
217 tty.c_cflag |= CS8 | CREAD; 222 tty.c_cflag |= CS8 | CREAD;
218 tty.c_cflag |= CLOCAL; // ignore modem status lines 223 tty.c_cflag |= CLOCAL; // ignore modem status lines
diff --git a/noncore/settings/networksettings/ppp/ppp.pro b/noncore/settings/networksettings/ppp/ppp.pro
index 62ca2b5..45fa0ee 100644
--- a/noncore/settings/networksettings/ppp/ppp.pro
+++ b/noncore/settings/networksettings/ppp/ppp.pro
@@ -1,17 +1,14 @@
1#TEMPLATE = app
2#
3TEMPLATE = lib 1TEMPLATE = lib
4#CONFIG += qt plugin warn_on
5 CONFIG += qt plugin warn_on 2 CONFIG += qt plugin warn_on
6DESTDIR = $(OPIEDIR)/plugins/networksettings 3DESTDIR = $(OPIEDIR)/plugins/networksettings
7 HEADERS = pppmodule.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h chooserwidget.h devices.h 4 HEADERS = pppmodule.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h chooserwidget.h devices.h
8 SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp chooserwidget.cpp devices.cpp 5 SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp chooserwidget.cpp devices.cpp
9 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ 6 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/
10 DEPENDPATH+= $(OPIEDIR)/include 7 DEPENDPATH+= $(OPIEDIR)/include
11LIBS += -lqpe -L../interfaces/ -linterfaces 8LIBS += -lqpe -L../interfaces/ -linterfaces
12 TARGET = kppp 9 TARGET = kppp
13 VERSION = 1.0.0 10 VERSION = 1.0.0
14 11
15 12
16 13
17include ( $(OPIEDIR)/include.pro ) 14include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/networksettings/ppp/pppconfig.cpp b/noncore/settings/networksettings/ppp/pppconfig.cpp
index a8c99fd..d2a1490 100644
--- a/noncore/settings/networksettings/ppp/pppconfig.cpp
+++ b/noncore/settings/networksettings/ppp/pppconfig.cpp
@@ -1,75 +1,79 @@
1
2#include <qlayout.h>
3#include <qmessagebox.h>
4#include <qtabwidget.h>
5
6#include "accounts.h" 1#include "accounts.h"
7#include "devices.h" 2#include "devices.h"
8#include "general.h" 3#include "general.h"
9#include "interfaceppp.h" 4#include "interfaceppp.h"
10#include "modem.h" 5#include "modem.h"
11#include "pppconfig.h" 6#include "pppconfig.h"
12#include "pppdata.h" 7#include "pppdata.h"
13#include "runtests.h" 8#include "runtests.h"
14 9
10/* OPIE */
11#include <opie2/odebug.h>
12using namespace Opie::Core;
13
14/* QT */
15#include <qlayout.h>
16#include <qmessagebox.h>
17#include <qtabwidget.h>
18
15PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent, 19PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent,
16 const char *name, 20 const char *name,
17 bool modal, WFlags fl ) 21 bool modal, WFlags fl )
18 : QDialog(parent, name, modal, fl) 22 : QDialog(parent, name, modal, fl)
19{ 23{
20 setCaption(tr("Configure Modem")); 24 setCaption(tr("Configure Modem"));
21 int result = runTests(); 25 int result = runTests();
22 if(result == TEST_CRITICAL){ 26 if(result == TEST_CRITICAL){
23 QMessageBox::critical(0, tr("Modem failure"), tr("A critical failure appeard while testing the modem") ); 27 QMessageBox::critical(0, tr("Modem failure"), tr("A critical failure appeard while testing the modem") );
24 return; 28 return;
25 } 29 }
26 30
27 interface = iface; 31 interface = iface;
28 odebug << "PPPConfigWidget::PPPConfigWidget" << oendl; 32 odebug << "PPPConfigWidget::PPPConfigWidget" << oendl;
29 odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; 33 odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl;
30 34
31 odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; 35 odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl;
32 36
33 37
34 QVBoxLayout *layout = new QVBoxLayout( this ); 38 QVBoxLayout *layout = new QVBoxLayout( this );
35 layout->setSpacing( 0 ); 39 layout->setSpacing( 0 );
36 layout->setMargin( 1 ); 40 layout->setMargin( 1 );
37 tabWindow = new QTabWidget( this, "tabWidget" ); 41 tabWindow = new QTabWidget( this, "tabWidget" );
38 layout->addWidget( tabWindow ); 42 layout->addWidget( tabWindow );
39 43
40 accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp ); 44 accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp );
41 tabWindow->addTab( accounts, tr("&Accounts") ); 45 tabWindow->addTab( accounts, tr("&Accounts") );
42 devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp ); 46 devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp );
43 tabWindow->addTab( devices, tr("&Devices") ); 47 tabWindow->addTab( devices, tr("&Devices") );
44 48
45//OLD: 49//OLD:
46// modem1 = new ModemWidget( interface, tabWindow, "modem1" ); 50// modem1 = new ModemWidget( interface, tabWindow, "modem1" );
47// tabWindow->addTab( modem1, tr("&Device") ); 51// tabWindow->addTab( modem1, tr("&Device") );
48// modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); 52// modem2 = new ModemWidget2( interface, tabWindow, "modem2" );
49// tabWindow->addTab( modem2, tr("&Modem") ); 53// tabWindow->addTab( modem2, tr("&Modem") );
50 54
51} 55}
52 56
53 57
54PPPConfigWidget::~PPPConfigWidget() 58PPPConfigWidget::~PPPConfigWidget()
55{ 59{
56 60
57} 61}
58 62
59void PPPConfigWidget::accept() 63void PPPConfigWidget::accept()
60{ 64{
61 odebug << "PPPConfigWidget::accept" << oendl; 65 odebug << "PPPConfigWidget::accept" << oendl;
62 odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; 66 odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl;
63 odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; 67 odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl;
64 interface->setInterfaceName( interface->data()->devname() ); 68 interface->setInterfaceName( interface->data()->devname() );
65 interface->setHardwareName( interface->data()->accname() ); 69 interface->setHardwareName( interface->data()->accname() );
66 interface->save(); 70 interface->save();
67 QDialog::accept(); 71 QDialog::accept();
68} 72}
69 73
70 74
71void PPPConfigWidget::reject() 75void PPPConfigWidget::reject()
72{ 76{
73 interface->data()->cancel(); 77 interface->data()->cancel();
74 QDialog::reject(); 78 QDialog::reject();
75} 79}
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp
index 567ccf8..eb03ef4 100644
--- a/noncore/settings/networksettings/ppp/pppdata.cpp
+++ b/noncore/settings/networksettings/ppp/pppdata.cpp
@@ -1,229 +1,231 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27#include "pppdata.h" 27#include "pppdata.h"
28#include "runtests.h" 28#include "runtests.h"
29//#include "devices.h" 29
30//#include <klocale.h> 30/* OPIE */
31#include <opie2/odebug.h>
31#include <qpe/config.h> 32#include <qpe/config.h>
33using namespace Opie::Core;
34
35/* QT */
32#include <qmessagebox.h> 36#include <qmessagebox.h>
33#include <qapplication.h> 37#include <qapplication.h>
34// #include <klocale.h> 38
35// #include <kconfig.h> 39/* STD */
36// #include <kmessagebox.h>
37// #include <kapplication.h>
38#include <assert.h> 40#include <assert.h>
39 41
40#define SEPARATOR -sseepp- 42#define SEPARATOR -sseepp-
41#define SEP QString("%1SEPARATOR%1") 43#define SEP QString("%1SEPARATOR%1")
42 44
43PPPData::PPPData() 45PPPData::PPPData()
44 : passwd(""), 46 : passwd(""),
45 _modemName(""), 47 _modemName(""),
46 highcount(-1), // start out with no entries 48 highcount(-1), // start out with no entries
47 highcountdev(-1), // start out with no entries 49 highcountdev(-1), // start out with no entries
48// caccount(-1), // set the current account index also 50// caccount(-1), // set the current account index also
49 suidprocessid(-1), // process ID of setuid child 51 suidprocessid(-1), // process ID of setuid child
50 pppdisrunning(false), 52 pppdisrunning(false),
51 pppderror(0) 53 pppderror(0)
52{ 54{
53 highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; 55 highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1;
54 highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1; 56 highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1;
55 Config cfg = config(); 57 Config cfg = config();
56 cfg.setGroup(GENERAL_GRP); 58 cfg.setGroup(GENERAL_GRP);
57 accountList = cfg.readListEntry(ACCOUNT_LIST, ',' ); 59 accountList = cfg.readListEntry(ACCOUNT_LIST, ',' );
58 deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' ); 60 deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' );
59 odebug << "PPPData::PPPData has a accountList " << accountList.join("---").latin1() << "" << oendl; 61 odebug << "PPPData::PPPData has a accountList " << accountList.join("---").latin1() << "" << oendl;
60 odebug << "PPPData::PPPData has a deviceList " << deviceList.join("---").latin1() << "" << oendl; 62 odebug << "PPPData::PPPData has a deviceList " << deviceList.join("---").latin1() << "" << oendl;
61 63
62// if (highcount > MAX_ACCOUNTS) 64// if (highcount > MAX_ACCOUNTS)
63// highcount = MAX_ACCOUNTS; 65// highcount = MAX_ACCOUNTS;
64 66
65 // if(highcount >= 0 && defaultAccount().isEmpty()) { 67 // if(highcount >= 0 && defaultAccount().isEmpty()) {
66// setAccountbyIndex(0); 68// setAccountbyIndex(0);
67// setDefaultAccount(accname()); 69// setDefaultAccount(accname());
68// } else if(!setAccount(defaultAccount())) 70// } else if(!setAccount(defaultAccount()))
69 setDefaultAccount(accname()); 71 setDefaultAccount(accname());
70 72
71 // start out with internal debugging disabled 73 // start out with internal debugging disabled
72 // the user is still free to specify `debug' on his own 74 // the user is still free to specify `debug' on his own
73 setPPPDebug(false); 75 setPPPDebug(false);
74 76
75 ::pppdVersion(&pppdVer, &pppdMod, &pppdPatch); 77 ::pppdVersion(&pppdVer, &pppdMod, &pppdPatch);
76 78
77} 79}
78 80
79Config PPPData::config() 81Config PPPData::config()
80{ 82{
81 return Config("NetworkSetupPPP"); 83 return Config("NetworkSetupPPP");
82} 84}
83 85
84// 86//
85// save configuration 87// save configuration
86// 88//
87void PPPData::save() 89void PPPData::save()
88{ 90{
89 odebug << "PPPData saving data" << oendl; 91 odebug << "PPPData saving data" << oendl;
90 writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); 92 writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count());
91 writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1); 93 writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1);
92 QString key; 94 QString key;
93 QStringList keys; 95 QStringList keys;
94 Config cfg = config(); 96 Config cfg = config();
95 cfg.setGroup(GENERAL_GRP); 97 cfg.setGroup(GENERAL_GRP);
96 cfg.writeEntry(ACCOUNT_LIST, accountList, ',' ); 98 cfg.writeEntry(ACCOUNT_LIST, accountList, ',' );
97 cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' ); 99 cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' );
98 100
99 for( QMap<QString,QString>::Iterator it = stringEntries.begin(); 101 for( QMap<QString,QString>::Iterator it = stringEntries.begin();
100 it != stringEntries.end(); ++it ){ 102 it != stringEntries.end(); ++it ){
101 QString val = it.data(); 103 QString val = it.data();
102 key = it.key(); 104 key = it.key();
103// odebug << "saving " << key.latin1() << " -> " << val.latin1() << "" << oendl; 105// odebug << "saving " << key.latin1() << " -> " << val.latin1() << "" << oendl;
104 keys = QStringList::split( "SEPARATOR", key ); 106 keys = QStringList::split( "SEPARATOR", key );
105 //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< value >" << val.latin1() << "<" << oendl; 107 //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< value >" << val.latin1() << "<" << oendl;
106 cfg.setGroup(keys[0]); 108 cfg.setGroup(keys[0]);
107 cfg.writeEntry(keys[1], val); 109 cfg.writeEntry(keys[1], val);
108 } 110 }
109 for( QMap<QString,int>::Iterator it = intEntries.begin(); 111 for( QMap<QString,int>::Iterator it = intEntries.begin();
110 it != intEntries.end(); ++it ){ 112 it != intEntries.end(); ++it ){
111 int val = it.data(); 113 int val = it.data();
112 key = it.key(); 114 key = it.key();
113// odebug << "saving " << key.latin1() << " -> " << val << "" << oendl; 115// odebug << "saving " << key.latin1() << " -> " << val << "" << oendl;
114 keys = QStringList::split( "SEPARATOR", key ); 116 keys = QStringList::split( "SEPARATOR", key );
115 //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< val " << val << "" << oendl; 117 //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< val " << val << "" << oendl;
116 cfg.setGroup(keys[0]); 118 cfg.setGroup(keys[0]);
117 cfg.writeEntry(keys[1], val); 119 cfg.writeEntry(keys[1], val);
118 } 120 }
119 for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); 121 for( QMap<QString,QStringList>::Iterator it = listEntries.begin();
120 it != listEntries.end(); ++it ){ 122 it != listEntries.end(); ++it ){
121 QStringList val = it.data(); 123 QStringList val = it.data();
122 key = it.key(); 124 key = it.key();
123 QChar sep = sepEntries[key]; 125 QChar sep = sepEntries[key];
124// odebug << "saving " << key.latin1() << " -> " << val.join(sep).latin1() << "" << oendl; 126// odebug << "saving " << key.latin1() << " -> " << val.join(sep).latin1() << "" << oendl;
125 keys = QStringList::split( "SEPARATOR", key ); 127 keys = QStringList::split( "SEPARATOR", key );
126 cfg.setGroup(keys[0]); 128 cfg.setGroup(keys[0]);
127 cfg.writeEntry(keys[1], val, sep); 129 cfg.writeEntry(keys[1], val, sep);
128 } 130 }
129} 131}
130 132
131 133
132// 134//
133// cancel changes 135// cancel changes
134// 136//
135void PPPData::cancel() { 137void PPPData::cancel() {
136 stringEntries.clear(); 138 stringEntries.clear();
137 intEntries.clear(); 139 intEntries.clear();
138 listEntries.clear(); 140 listEntries.clear();
139} 141}
140 142
141// functions to read/write date to configuration file 143// functions to read/write date to configuration file
142QString PPPData::readConfig(const QString &group, const QString &key, 144QString PPPData::readConfig(const QString &group, const QString &key,
143 const QString &defvalue = "") 145 const QString &defvalue = "")
144{ 146{
145// odebug << "PPPData::readConfig key >" << key.latin1() << "< group >" << group.latin1() << "<" << oendl; 147// odebug << "PPPData::readConfig key >" << key.latin1() << "< group >" << group.latin1() << "<" << oendl;
146 QString idx = SEP.arg(group).arg(key); 148 QString idx = SEP.arg(group).arg(key);
147 if (stringEntries.find(idx) != stringEntries.end()) 149 if (stringEntries.find(idx) != stringEntries.end())
148 return stringEntries[idx]; 150 return stringEntries[idx];
149 Config cfg = config(); 151 Config cfg = config();
150 cfg.setGroup(group); 152 cfg.setGroup(group);
151 return cfg.readEntry(key, defvalue); 153 return cfg.readEntry(key, defvalue);
152} 154}
153 155
154 156
155int PPPData::readNumConfig(const QString &group, const QString &key, 157int PPPData::readNumConfig(const QString &group, const QString &key,
156 int defvalue) 158 int defvalue)
157{ 159{
158 QString idx = SEP.arg(group).arg(key); 160 QString idx = SEP.arg(group).arg(key);
159 if (intEntries.find(idx) != intEntries.end()) 161 if (intEntries.find(idx) != intEntries.end())
160 return intEntries[idx]; 162 return intEntries[idx];
161 Config cfg = config(); 163 Config cfg = config();
162 cfg.setGroup(group); 164 cfg.setGroup(group);
163 return cfg.readNumEntry(key, defvalue); 165 return cfg.readNumEntry(key, defvalue);
164 166
165// if (config) { 167// if (config) {
166// config->setGroup(group); 168// config->setGroup(group);
167// return config->readNumEntry(key, defvalue); 169// return config->readNumEntry(key, defvalue);
168// } else 170// } else
169// return defvalue; 171// return defvalue;
170 172
171} 173}
172 174
173 175
174bool PPPData::readListConfig(const QString &group, const QString &key, 176bool PPPData::readListConfig(const QString &group, const QString &key,
175 QStringList &list, char sep) { 177 QStringList &list, char sep) {
176 list.clear(); 178 list.clear();
177 QString idx = SEP.arg(group).arg(key); 179 QString idx = SEP.arg(group).arg(key);
178 if (listEntries.find(idx) != listEntries.end()){ 180 if (listEntries.find(idx) != listEntries.end()){
179 list = listEntries[idx]; 181 list = listEntries[idx];
180 return true; 182 return true;
181 } 183 }
182 Config cfg = config(); 184 Config cfg = config();
183 cfg.setGroup(group); 185 cfg.setGroup(group);
184 list = cfg.readListEntry(key, sep); 186 list = cfg.readListEntry(key, sep);
185 if (list.count() > 0) return true; 187 if (list.count() > 0) return true;
186 return false; 188 return false;
187 189
188// if (config) { 190// if (config) {
189// config->setGroup(group); 191// config->setGroup(group);
190// list = config->readListEntry(key, sep); 192// list = config->readListEntry(key, sep);
191// return true; 193// return true;
192// } else 194// } else
193// return false; 195// return false;
194} 196}
195 197
196 198
197void PPPData::writeConfig(const QString &group, const QString &key, 199void PPPData::writeConfig(const QString &group, const QString &key,
198 const QString &value) { 200 const QString &value) {
199 stringEntries.insert( SEP.arg(group).arg(key), value ); 201 stringEntries.insert( SEP.arg(group).arg(key), value );
200// if (config) { 202// if (config) {
201// config->setGroup(group); 203// config->setGroup(group);
202// config->writeEntry(key, value); 204// config->writeEntry(key, value);
203// } 205// }
204} 206}
205 207
206 208
207void PPPData::writeConfig(const QString &group, const QString &key, int value) 209void PPPData::writeConfig(const QString &group, const QString &key, int value)
208{ 210{
209 intEntries.insert( SEP.arg(group).arg(key), value ); 211 intEntries.insert( SEP.arg(group).arg(key), value );
210// if (config) { 212// if (config) {
211// config->setGroup(group); 213// config->setGroup(group);
212// config->writeEntry(key, value); 214// config->writeEntry(key, value);
213// } 215// }
214} 216}
215 217
216 218
217void PPPData::writeListConfig(const QString &group, const QString &key, 219void PPPData::writeListConfig(const QString &group, const QString &key,
218 QStringList &list, char sep) 220 QStringList &list, char sep)
219{ 221{
220 listEntries.insert( SEP.arg(group).arg(key), list ); 222 listEntries.insert( SEP.arg(group).arg(key), list );
221 sepEntries.insert( SEP.arg(group).arg(key), sep ); 223 sepEntries.insert( SEP.arg(group).arg(key), sep );
222// if (config) { 224// if (config) {
223// config->setGroup(group); 225// config->setGroup(group);
224// config->writeEntry(key, list, sep); 226// config->writeEntry(key, list, sep);
225// } 227// }
226} 228}
227 229
228 230
229// 231//
diff --git a/noncore/settings/networksettings/ppp/pppmodule.cpp b/noncore/settings/networksettings/ppp/pppmodule.cpp
index 2291e8a..b102a10 100644
--- a/noncore/settings/networksettings/ppp/pppmodule.cpp
+++ b/noncore/settings/networksettings/ppp/pppmodule.cpp
@@ -1,203 +1,205 @@
1 1
2#include "modem.h" 2#include "modem.h"
3#include "pppconfig.h" 3#include "pppconfig.h"
4#include "pppmodule.h" 4#include "pppmodule.h"
5#include "pppdata.h" 5#include "pppdata.h"
6#include "interfaceinformationppp.h" 6#include "interfaceinformationppp.h"
7#include "interfaceppp.h" 7#include "interfaceppp.h"
8 8
9/* OPIE */ 9/* OPIE */
10#include <opie2/odebug.h>
10#include <qpe/config.h> 11#include <qpe/config.h>
11#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
13using namespace Opie::Core;
12 14
13/* QT */ 15/* QT */
14 16
15/* STD */ 17/* STD */
16#include <errno.h> 18#include <errno.h>
17#include <signal.h> 19#include <signal.h>
18 20
19// don't polute global namespace 21// don't polute global namespace
20namespace 22namespace
21{ 23{
22 /* 24 /*
23 * If network settings is qutting and we've ppp 25 * If network settings is qutting and we've ppp
24 * devices open we need to save the pid_t the PPData 26 * devices open we need to save the pid_t the PPData
25 * and the interface number 27 * and the interface number
26 */ 28 */
27 struct Connection 29 struct Connection
28 { 30 {
29 pid_t pid; 31 pid_t pid;
30 QString device; 32 QString device;
31 QString name; 33 QString name;
32 }; 34 };
33 class InterfaceKeeper 35 class InterfaceKeeper
34 { 36 {
35 public: 37 public:
36 InterfaceKeeper(); 38 InterfaceKeeper();
37 ~InterfaceKeeper(); 39 ~InterfaceKeeper();
38 40
39 void addInterface( pid_t, const QString& pppDev, const QString& name ); 41 void addInterface( pid_t, const QString& pppDev, const QString& name );
40 QMap<QString, Connection> interfaces()const; // will check if still available 42 QMap<QString, Connection> interfaces()const; // will check if still available
41 private: 43 private:
42 bool isAvailable( pid_t )const; 44 bool isAvailable( pid_t )const;
43 QMap<QString, Connection> m_interfaces; 45 QMap<QString, Connection> m_interfaces;
44 }; 46 };
45} 47}
46 48
47 49
48/** 50/**
49 * Constructor, find all of the possible interfaces 51 * Constructor, find all of the possible interfaces
50 * We also need to restore the state.. it could be that 52 * We also need to restore the state.. it could be that
51 * an interface was up while closing the application 53 * an interface was up while closing the application
52 * we need to be able to shut it down... 54 * we need to be able to shut it down...
53 */ 55 */
54PPPModule::PPPModule() : Module() 56PPPModule::PPPModule() : Module()
55{ 57{
56 InterfaceKeeper inFace; 58 InterfaceKeeper inFace;
57 QMap<QString,Connection> running = inFace.interfaces(); 59 QMap<QString,Connection> running = inFace.interfaces();
58 QStringList handledInterfaceNames; 60 QStringList handledInterfaceNames;
59 61
60 QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces(); 62 QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces();
61 QMap<QString,QString>::Iterator it; 63 QMap<QString,QString>::Iterator it;
62 InterfacePPP *iface; 64 InterfacePPP *iface;
63 odebug << "getting interfaces" << oendl; 65 odebug << "getting interfaces" << oendl;
64 for( it = ifaces.begin(); it != ifaces.end(); ++it ) 66 for( it = ifaces.begin(); it != ifaces.end(); ++it )
65 { 67 {
66 odebug << "ifaces " << it.key().latin1() << " " << it.data().latin1() << "" << oendl; 68 odebug << "ifaces " << it.key().latin1() << " " << it.data().latin1() << "" << oendl;
67 iface = new InterfacePPP( 0, it.key() ); 69 iface = new InterfacePPP( 0, it.key() );
68 iface->setHardwareName( it.data() ); 70 iface->setHardwareName( it.data() );
69 list.append( (Interface*)iface ); 71 list.append( (Interface*)iface );
70 72
71 // check if (*it) is one of the running ifaces 73 // check if (*it) is one of the running ifaces
72 if ( running.contains( it.data() ) ) 74 if ( running.contains( it.data() ) )
73 { 75 {
74 odebug << "iface is running " << it.key().latin1() << "" << oendl; 76 odebug << "iface is running " << it.key().latin1() << "" << oendl;
75 handledInterfaceNames << running[it.data()].device; 77 handledInterfaceNames << running[it.data()].device;
76 iface->setStatus( true ); 78 iface->setStatus( true );
77 iface->setPPPDpid( running[it.data()].pid ); 79 iface->setPPPDpid( running[it.data()].pid );
78 iface->modem()->setPPPDevice( running[it.data()].device ); 80 iface->modem()->setPPPDevice( running[it.data()].device );
79 iface->refresh(); 81 iface->refresh();
80 } 82 }
81 } 83 }
82 84
83 setHandledInterfaceNames( handledInterfaceNames ); 85 setHandledInterfaceNames( handledInterfaceNames );
84} 86}
85 87
86/** 88/**
87 * Delete any interfaces that we own. 89 * Delete any interfaces that we own.
88 */ 90 */
89PPPModule::~PPPModule() 91PPPModule::~PPPModule()
90{ 92{
91 odebug << "PPPModule::~PPPModule() " << oendl; 93 odebug << "PPPModule::~PPPModule() " << oendl;
92 QMap<QString,QString> ifaces; 94 QMap<QString,QString> ifaces;
93 InterfaceKeeper keeper; 95 InterfaceKeeper keeper;
94 Interface *i; 96 Interface *i;
95 for ( i=list.first(); i != 0; i=list.next() ) 97 for ( i=list.first(); i != 0; i=list.next() )
96 { 98 {
97 /* if online save the state */ 99 /* if online save the state */
98 if ( i->getStatus() ) 100 if ( i->getStatus() )
99 { 101 {
100 odebug << "Iface " << i->getHardwareName().latin1() << " is still up" << oendl; 102 odebug << "Iface " << i->getHardwareName().latin1() << " is still up" << oendl;
101 InterfacePPP* ppp = static_cast<InterfacePPP*>(i); 103 InterfacePPP* ppp = static_cast<InterfacePPP*>(i);
102 keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() ); 104 keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() );
103 } 105 }
104 ifaces.insert( i->getInterfaceName(), i->getHardwareName() ); 106 ifaces.insert( i->getInterfaceName(), i->getHardwareName() );
105 delete i; 107 delete i;
106 } 108 }
107 PPPData::setConfiguredInterfaces( ifaces ); 109 PPPData::setConfiguredInterfaces( ifaces );
108} 110}
109 111
110/** 112/**
111 * Change the current profile 113 * Change the current profile
112 */ 114 */
113void PPPModule::setProfile(const QString &newProfile) 115void PPPModule::setProfile(const QString &newProfile)
114{ 116{
115 profile = newProfile; 117 profile = newProfile;
116} 118}
117 119
118/** 120/**
119 * get the icon name for this device. 121 * get the icon name for this device.
120 * @param Interface* can be used in determining the icon. 122 * @param Interface* can be used in determining the icon.
121 * @return QString the icon name (minus .png, .gif etc) 123 * @return QString the icon name (minus .png, .gif etc)
122 */ 124 */
123QString PPPModule::getPixmapName(Interface* ) 125QString PPPModule::getPixmapName(Interface* )
124{ 126{
125 return "ppp"; 127 return "ppp";
126} 128}
127 129
128/** 130/**
129 * Check to see if the interface i is owned by this module. 131 * Check to see if the interface i is owned by this module.
130 * @param Interface* interface to check against 132 * @param Interface* interface to check against
131 * @return bool true if i is owned by this module, false otherwise. 133 * @return bool true if i is owned by this module, false otherwise.
132 */ 134 */
133bool PPPModule::isOwner(Interface *i) 135bool PPPModule::isOwner(Interface *i)
134{ 136{
135 return list.find( i ) != -1; 137 return list.find( i ) != -1;
136} 138}
137 139
138/** 140/**
139 * Create, and return the WLANConfigure Module 141 * Create, and return the WLANConfigure Module
140 * @return QWidget* pointer to this modules configure. 142 * @return QWidget* pointer to this modules configure.
141 */ 143 */
142QWidget *PPPModule::configure(Interface *i) 144QWidget *PPPModule::configure(Interface *i)
143{ 145{
144 odebug << "return ModemWidget" << oendl; 146 odebug << "return ModemWidget" << oendl;
145 PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i, 147 PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i,
146 0, "PPPConfig", false, 148 0, "PPPConfig", false,
147 (Qt::WDestructiveClose | Qt::WStyle_ContextHelp)); 149 (Qt::WDestructiveClose | Qt::WStyle_ContextHelp));
148 return pppconfig; 150 return pppconfig;
149} 151}
150 152
151/** 153/**
152 * Create, and return the Information Module 154 * Create, and return the Information Module
153 * @return QWidget* pointer to this modules info. 155 * @return QWidget* pointer to this modules info.
154 */ 156 */
155QWidget *PPPModule::information(Interface *i) 157QWidget *PPPModule::information(Interface *i)
156{ 158{
157 // We don't have any advanced pppd information widget yet :-D 159 // We don't have any advanced pppd information widget yet :-D
158 // TODO ^ 160 // TODO ^
159 161
160 return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i ); 162 return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i );
161} 163}
162 164
163/** 165/**
164 * Get all active (up or down) interfaces 166 * Get all active (up or down) interfaces
165 * @return QList<Interface> A list of interfaces that exsist that havn't 167 * @return QList<Interface> A list of interfaces that exsist that havn't
166 * been called by isOwner() 168 * been called by isOwner()
167 */ 169 */
168QList<Interface> PPPModule::getInterfaces() 170QList<Interface> PPPModule::getInterfaces()
169{ 171{
170 // List all of the files in the peer directory 172 // List all of the files in the peer directory
171 odebug << "PPPModule::getInterfaces" << oendl; 173 odebug << "PPPModule::getInterfaces" << oendl;
172 return list; 174 return list;
173} 175}
174 176
175/** 177/**
176 * Attempt to add a new interface as defined by name 178 * Attempt to add a new interface as defined by name
177 * @param name the name of the type of interface that should be created given 179 * @param name the name of the type of interface that should be created given
178 * by possibleNewInterfaces(); 180 * by possibleNewInterfaces();
179 * @return Interface* NULL if it was unable to be created. 181 * @return Interface* NULL if it was unable to be created.
180 */ 182 */
181Interface *PPPModule::addNewInterface(const QString &newInterface) 183Interface *PPPModule::addNewInterface(const QString &newInterface)
182{ 184{
183 185
184 InterfacePPP *ifaceppp; 186 InterfacePPP *ifaceppp;
185 Interface *iface; 187 Interface *iface;
186 ifaceppp = new InterfacePPP(); 188 ifaceppp = new InterfacePPP();
187 PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true); 189 PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true);
188 190
189 if( QPEApplication::execDialog( &imp ) == QDialog::Accepted ) 191 if( QPEApplication::execDialog( &imp ) == QDialog::Accepted )
190 { 192 {
191 iface = (InterfacePPP*) ifaceppp; 193 iface = (InterfacePPP*) ifaceppp;
192 iface->setModuleOwner( this ); 194 iface->setModuleOwner( this );
193 list.append( iface ); 195 list.append( iface );
194 return iface; 196 return iface;
195 } 197 }
196 else 198 else
197 { 199 {
198 delete ifaceppp; 200 delete ifaceppp;
199 iface = NULL; 201 iface = NULL;
200 } 202 }
201 return iface; 203 return iface;
202} 204}
203 205
diff --git a/noncore/settings/networksettings/wlan/config.in b/noncore/settings/networksettings/wlan/config.in
index d4661cb..233764e 100644
--- a/noncore/settings/networksettings/wlan/config.in
+++ b/noncore/settings/networksettings/wlan/config.in
@@ -1,6 +1,6 @@
1 config WLAN 1 config WLAN
2 boolean "opie-networksettingsplugin-wlan (wireless LAN module)" 2 boolean "opie-networksettingsplugin-wlan (wireless LAN module)"
3 default "n" if NETWORKSETUP 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && LIBOPIE2NET 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && LIBOPIE2NET
5 #comment "opie-networksettingsplugin-wlan needs libopie2ui, libopie2net and networksetup" 5 #comment "opie-networksettingsplugin-wlan needs libopie2ui, libopie2net and networksetup"
6 #depends !( LIBOPIE2NET && NETWORKSETUP) \ No newline at end of file 6 #depends !( LIBOPIE2NET && NETWORKSETUP)
diff --git a/noncore/settings/networksettings/wlan/infoimp.cpp b/noncore/settings/networksettings/wlan/infoimp.cpp
index c558f5e..273bed8 100644
--- a/noncore/settings/networksettings/wlan/infoimp.cpp
+++ b/noncore/settings/networksettings/wlan/infoimp.cpp
@@ -1,56 +1,61 @@
1#include "infoimp.h" 1#include "infoimp.h"
2#include "wextensions.h" 2#include "wextensions.h"
3 3
4/* OPIE */
5#include <opie2/odebug.h>
6using namespace Opie::Core;
7
8/* QT */
4#include <qtimer.h> 9#include <qtimer.h>
5#include <qprogressbar.h> 10#include <qprogressbar.h>
6#include <qlabel.h> 11#include <qlabel.h>
7 12
8/** 13/**
9 * Constructor. If wireless extensions are enabled on device name then 14 * Constructor. If wireless extensions are enabled on device name then
10 * start a timer that every second will update the information. 15 * start a timer that every second will update the information.
11 */ 16 */
12WlanInfoImp::WlanInfoImp( QWidget* parent, const char* name, WFlags fl): WlanInfo(parent, name, fl){ 17WlanInfoImp::WlanInfoImp( QWidget* parent, const char* name, WFlags fl): WlanInfo(parent, name, fl){
13 WExtensions *wExtensions = new WExtensions(name); 18 WExtensions *wExtensions = new WExtensions(name);
14 if(!wExtensions->doesHaveWirelessExtensions()){ 19 if(!wExtensions->doesHaveWirelessExtensions()){
15 delete wExtensions; 20 delete wExtensions;
16 odebug << "WlanInfoImp::No wireless extension" << oendl; 21 odebug << "WlanInfoImp::No wireless extension" << oendl;
17 return; 22 return;
18 } 23 }
19 delete wExtensions; 24 delete wExtensions;
20 timer = new QTimer( this ); 25 timer = new QTimer( this );
21 connect( timer, SIGNAL(timeout()), this, SLOT(update())); 26 connect( timer, SIGNAL(timeout()), this, SLOT(update()));
22 timer->start( 1000, false ); 27 timer->start( 1000, false );
23} 28}
24 29
25/** 30/**
26 * Updates the information about the wireless device. 31 * Updates the information about the wireless device.
27 */ 32 */
28void WlanInfoImp::update(){ 33void WlanInfoImp::update(){
29 WExtensions *wExtensions = new WExtensions(this->name()); 34 WExtensions *wExtensions = new WExtensions(this->name());
30 if(!wExtensions->doesHaveWirelessExtensions()){ 35 if(!wExtensions->doesHaveWirelessExtensions()){
31 odebug << "No extension" << oendl; 36 odebug << "No extension" << oendl;
32 delete wExtensions; 37 delete wExtensions;
33 timer->stop(); 38 timer->stop();
34 return; 39 return;
35 } 40 }
36 essidLabel->setText(wExtensions->essid()); 41 essidLabel->setText(wExtensions->essid());
37 apLabel->setText(wExtensions->ap()); 42 apLabel->setText(wExtensions->ap());
38 stationLabel->setText(wExtensions->station()); 43 stationLabel->setText(wExtensions->station());
39 modeLabel->setText(wExtensions->mode()); 44 modeLabel->setText(wExtensions->mode());
40 channelLabel->setText(QString("%1").arg(wExtensions->channel())); 45 channelLabel->setText(QString("%1").arg(wExtensions->channel()));
41 int signal = 0; 46 int signal = 0;
42 int noise = 0; 47 int noise = 0;
43 int quality = 0; 48 int quality = 0;
44 wExtensions->stats(signal, noise, quality); 49 wExtensions->stats(signal, noise, quality);
45 if(signalProgressBar->progress() != signal) 50 if(signalProgressBar->progress() != signal)
46 signalProgressBar->setProgress(signal); 51 signalProgressBar->setProgress(signal);
47 if(noiseProgressBar->progress() != noise) 52 if(noiseProgressBar->progress() != noise)
48 noiseProgressBar->setProgress(noise); 53 noiseProgressBar->setProgress(noise);
49 if(qualityProgressBar->progress() != quality) 54 if(qualityProgressBar->progress() != quality)
50 qualityProgressBar->setProgress(quality); 55 qualityProgressBar->setProgress(quality);
51 rateLabel->setText(QString("%1 Mb/s").arg(wExtensions->rate())); 56 rateLabel->setText(QString("%1 Mb/s").arg(wExtensions->rate()));
52 delete wExtensions; 57 delete wExtensions;
53} 58}
54 59
55// infoimp.cpp 60// infoimp.cpp
56 61
diff --git a/noncore/settings/networksettings/wlan/wextensions.cpp b/noncore/settings/networksettings/wlan/wextensions.cpp
index 9c64323..fe21f02 100644
--- a/noncore/settings/networksettings/wlan/wextensions.cpp
+++ b/noncore/settings/networksettings/wlan/wextensions.cpp
@@ -1,200 +1,207 @@
1#include "wextensions.h" 1#include "wextensions.h"
2 2
3/* OPIE */
4#include <opie2/odebug.h>
5using namespace Opie::Core;
6
7/* QT */
3#include <qfile.h> 8#include <qfile.h>
4#include <qtextstream.h> 9#include <qtextstream.h>
5 10
11/* STD */
6#include <arpa/inet.h> 12#include <arpa/inet.h>
7#include <sys/socket.h> 13#include <sys/socket.h>
8#include <sys/ioctl.h> 14#include <sys/ioctl.h>
9
10#include <math.h> 15#include <math.h>
11 16
12#define PROCNETWIRELESS "/proc/net/wireless" 17#define PROCNETWIRELESS "/proc/net/wireless"
13#define IW_LOWER 0 18#define IW_LOWER 0
14#define IW_UPPER 256 19#define IW_UPPER 256
15 20
21#warning This is duplicated code. Use libopienet2!
22
16/** 23/**
17 * Constructor. Sets hasWirelessExtensions 24 * Constructor. Sets hasWirelessExtensions
18 */ 25 */
19WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false), interface(interfaceName) { 26WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false), interface(interfaceName) {
20 fd = socket( AF_INET, SOCK_DGRAM, 0 ); 27 fd = socket( AF_INET, SOCK_DGRAM, 0 );
21 if(fd == -1) 28 if(fd == -1)
22 return; 29 return;
23 30
24 const char* buffer[200]; 31 const char* buffer[200];
25 memset( &iwr, 0, sizeof( iwr ) ); 32 memset( &iwr, 0, sizeof( iwr ) );
26 iwr.u.essid.pointer = (caddr_t) buffer; 33 iwr.u.essid.pointer = (caddr_t) buffer;
27 iwr.u.essid.length = IW_ESSID_MAX_SIZE; 34 iwr.u.essid.length = IW_ESSID_MAX_SIZE;
28 iwr.u.essid.flags = 0; 35 iwr.u.essid.flags = 0;
29 36
30 // check if it is an IEEE 802.11 standard conform 37 // check if it is an IEEE 802.11 standard conform
31 // wireless device by sending SIOCGIWESSID 38 // wireless device by sending SIOCGIWESSID
32 // which also gives back the Extended Service Set ID 39 // which also gives back the Extended Service Set ID
33 // (see IEEE 802.11 for more information) 40 // (see IEEE 802.11 for more information)
34 41
35 const char* iname = interface.latin1(); 42 const char* iname = interface.latin1();
36 strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname ); 43 strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname );
37 if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) ) 44 if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) )
38 hasWirelessExtensions = true; 45 hasWirelessExtensions = true;
39} 46}
40 47
41/** 48/**
42 * @return QString the station name of the access point. 49 * @return QString the station name of the access point.
43 */ 50 */
44QString WExtensions::station(){ 51QString WExtensions::station(){
45 if(!hasWirelessExtensions) 52 if(!hasWirelessExtensions)
46 return QString(); 53 return QString();
47 const char* buffer[200]; 54 const char* buffer[200];
48 iwr.u.data.pointer = (caddr_t) buffer; 55 iwr.u.data.pointer = (caddr_t) buffer;
49 iwr.u.data.length = IW_ESSID_MAX_SIZE; 56 iwr.u.data.length = IW_ESSID_MAX_SIZE;
50 iwr.u.data.flags = 0; 57 iwr.u.data.flags = 0;
51 if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){ 58 if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){
52 iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0'; 59 iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0';
53 return QString(iwr.u.data.pointer); 60 return QString(iwr.u.data.pointer);
54 } 61 }
55 return QString(); 62 return QString();
56} 63}
57 64
58/** 65/**
59 * @return QString the essid of the host 802.11 access point. 66 * @return QString the essid of the host 802.11 access point.
60 */ 67 */
61QString WExtensions::essid(){ 68QString WExtensions::essid(){
62 if(!hasWirelessExtensions) 69 if(!hasWirelessExtensions)
63 return QString(); 70 return QString();
64 if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){ 71 if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){
65 iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length] = '\0'; 72 iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length] = '\0';
66 return QString(iwr.u.essid.pointer); 73 return QString(iwr.u.essid.pointer);
67 } 74 }
68 return QString(); 75 return QString();
69} 76}
70 77
71/** 78/**
72 * @return QString the mode of interface 79 * @return QString the mode of interface
73 */ 80 */
74QString WExtensions::mode(){ 81QString WExtensions::mode(){
75 if(!hasWirelessExtensions) 82 if(!hasWirelessExtensions)
76 return QString(); 83 return QString();
77 if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) ) 84 if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) )
78 return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed"); 85 return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed");
79 return QString(); 86 return QString();
80} 87}
81 88
82/** 89/**
83 * Get the frequency that the interface is running at. 90 * Get the frequency that the interface is running at.
84 * @return int the frequency that the interfacae is running at. 91 * @return int the frequency that the interfacae is running at.
85 */ 92 */
86double WExtensions::frequency(){ 93double WExtensions::frequency(){
87 if(!hasWirelessExtensions) 94 if(!hasWirelessExtensions)
88 return 0; 95 return 0;
89 if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr )) 96 if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr ))
90 return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); 97 return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000);
91 return 0; 98 return 0;
92} 99}
93 100
94/** 101/**
95 * Get the channel that the interface is running at. 102 * Get the channel that the interface is running at.
96 * @return int the channel that the interfacae is running at. 103 * @return int the channel that the interfacae is running at.
97 */ 104 */
98int WExtensions::channel(){ 105int WExtensions::channel(){
99 if(!hasWirelessExtensions) 106 if(!hasWirelessExtensions)
100 return 0; 107 return 0;
101 if ( 0 != ioctl( fd, SIOCGIWFREQ, &iwr )) 108 if ( 0 != ioctl( fd, SIOCGIWFREQ, &iwr ))
102 return 0; 109 return 0;
103 110
104 // http://www.elanix.com/pdf/an137e.pdf 111 // http://www.elanix.com/pdf/an137e.pdf
105 112
106 double num = (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); 113 double num = (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000);
107 double left = 2.401; 114 double left = 2.401;
108 double right = 2.416; 115 double right = 2.416;
109 for(int channel = 1; channel<= 15; channel++){ 116 for(int channel = 1; channel<= 15; channel++){
110 if( num >= left && num <= right ) 117 if( num >= left && num <= right )
111 return channel; 118 return channel;
112 left += 0.005; 119 left += 0.005;
113 right += 0.005; 120 right += 0.005;
114 } 121 }
115 odebug << QString("Unknown frequency: %1, returning -1 for the channel.").arg(num).latin1() << oendl; 122 odebug << QString("Unknown frequency: %1, returning -1 for the channel.").arg(num).latin1() << oendl;
116 return -1; 123 return -1;
117} 124}
118 125
119/*** 126/***
120 * Get the current rate that the card is transmiting at. 127 * Get the current rate that the card is transmiting at.
121 * @return double the rate, 0 if error. 128 * @return double the rate, 0 if error.
122 */ 129 */
123double WExtensions::rate(){ 130double WExtensions::rate(){
124 if(!hasWirelessExtensions) 131 if(!hasWirelessExtensions)
125 return 0; 132 return 0;
126 if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){ 133 if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){
127 return ((double)iwr.u.bitrate.value)/1000000; 134 return ((double)iwr.u.bitrate.value)/1000000;
128 } 135 }
129 return 0; 136 return 0;
130} 137}
131 138
132 139
133/** 140/**
134 * @return QString the AccessPoint that the interface is connected to. 141 * @return QString the AccessPoint that the interface is connected to.
135 */ 142 */
136QString WExtensions::ap(){ 143QString WExtensions::ap(){
137 if(!hasWirelessExtensions) 144 if(!hasWirelessExtensions)
138 return QString(); 145 return QString();
139 if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){ 146 if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){
140 QString ap; 147 QString ap;
141 ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", 148 ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X",
142 iwr.u.ap_addr.sa_data[0]&0xff, 149 iwr.u.ap_addr.sa_data[0]&0xff,
143 iwr.u.ap_addr.sa_data[1]&0xff, 150 iwr.u.ap_addr.sa_data[1]&0xff,
144 iwr.u.ap_addr.sa_data[2]&0xff, 151 iwr.u.ap_addr.sa_data[2]&0xff,
145 iwr.u.ap_addr.sa_data[3]&0xff, 152 iwr.u.ap_addr.sa_data[3]&0xff,
146 iwr.u.ap_addr.sa_data[4]&0xff, 153 iwr.u.ap_addr.sa_data[4]&0xff,
147 iwr.u.ap_addr.sa_data[5]&0xff ); 154 iwr.u.ap_addr.sa_data[5]&0xff );
148 return ap; 155 return ap;
149 } 156 }
150 else return QString(); 157 else return QString();
151} 158}
152 159
153/** 160/**
154 * Get the stats for interfaces 161 * Get the stats for interfaces
155 * @param signal the signal strength of interface 162 * @param signal the signal strength of interface
156 * @param noise the noise level of the interface 163 * @param noise the noise level of the interface
157 * @param quality the quality level of the interface 164 * @param quality the quality level of the interface
158 * @return bool true if successful 165 * @return bool true if successful
159 */ 166 */
160bool WExtensions::stats(int &signal, int &noise, int &quality){ 167bool WExtensions::stats(int &signal, int &noise, int &quality){
161 // gather link quality from /proc/net/wireless 168 // gather link quality from /proc/net/wireless
162 if(!QFile::exists(PROCNETWIRELESS)) 169 if(!QFile::exists(PROCNETWIRELESS))
163 return false; 170 return false;
164 171
165 char c; 172 char c;
166 QString status; 173 QString status;
167 QString name; 174 QString name;
168 175
169 QFile wfile( PROCNETWIRELESS ); 176 QFile wfile( PROCNETWIRELESS );
170 if(!wfile.open( IO_ReadOnly )) 177 if(!wfile.open( IO_ReadOnly ))
171 return false; 178 return false;
172 179
173 QTextStream wstream( &wfile ); 180 QTextStream wstream( &wfile );
174 wstream.readLine(); // skip the first two lines 181 wstream.readLine(); // skip the first two lines
175 wstream.readLine(); // because they only contain headers 182 wstream.readLine(); // because they only contain headers
176 while(!wstream.atEnd()){ 183 while(!wstream.atEnd()){
177 wstream >> name >> status >> quality >> c >> signal >> c >> noise; 184 wstream >> name >> status >> quality >> c >> signal >> c >> noise;
178 if(name == QString("%1:").arg(interface)){ 185 if(name == QString("%1:").arg(interface)){
179 if ( quality > 92 ) 186 if ( quality > 92 )
180 odebug << "WIFIAPPLET: D'oh! Quality " << quality << " > estimated max!\n" << oendl; 187 odebug << "WIFIAPPLET: D'oh! Quality " << quality << " > estimated max!\n" << oendl;
181 if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) ) 188 if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) )
182 odebug << "WIFIAPPLET: Doh! Strength " << signal << " > estimated max!\n" << oendl; 189 odebug << "WIFIAPPLET: Doh! Strength " << signal << " > estimated max!\n" << oendl;
183 if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) ) 190 if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) )
184 odebug << "WIFIAPPLET: Doh! Noise " << noise << " > estimated max!\n" << oendl; 191 odebug << "WIFIAPPLET: Doh! Noise " << noise << " > estimated max!\n" << oendl;
185 //odebug << QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1() << oendl; 192 //odebug << QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1() << oendl;
186 signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER; 193 signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER;
187 noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER; 194 noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER;
188 quality = ( quality*100 ) / 92; 195 quality = ( quality*100 ) / 92;
189 return true; 196 return true;
190 } 197 }
191 } 198 }
192 199
193 odebug << "WExtensions::statsCard no longer present." << oendl; 200 odebug << "WExtensions::statsCard no longer present." << oendl;
194 quality = -1; 201 quality = -1;
195 signal = IW_LOWER; 202 signal = IW_LOWER;
196 noise = IW_LOWER; 203 noise = IW_LOWER;
197 return false; 204 return false;
198} 205}
199 206
200// wextensions.cpp 207// wextensions.cpp
diff --git a/noncore/settings/networksettings/wlan/wlan.pro b/noncore/settings/networksettings/wlan/wlan.pro
index 89867ae..c94dc0e 100644
--- a/noncore/settings/networksettings/wlan/wlan.pro
+++ b/noncore/settings/networksettings/wlan/wlan.pro
@@ -1,28 +1,25 @@
1#
2TEMPLATE = lib 1TEMPLATE = lib
3#TEMPLATE = app
4CONFIG += qt plugin warn_on 2CONFIG += qt plugin warn_on
5 #CONFIG += qt plugin warn_on
6DESTDIR = $(OPIEDIR)/plugins/networksettings 3DESTDIR = $(OPIEDIR)/plugins/networksettings
7 HEADERS = infoimp.h wlanmodule.h wextensions.h keyedit.h 4 HEADERS = infoimp.h wlanmodule.h wextensions.h keyedit.h
8 SOURCES = infoimp.cpp wlanmodule.cpp wextensions.cpp keyedit.cpp 5 SOURCES = infoimp.cpp wlanmodule.cpp wextensions.cpp keyedit.cpp
9 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ 6 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/
10 DEPENDPATH+= $(OPIEDIR)/include 7 DEPENDPATH+= $(OPIEDIR)/include
11LIBS += -lqpe -L../interfaces/ -linterfaces -lopiecore2 -lopienet2 8LIBS += -lqpe -L../interfaces/ -linterfaces -lopiecore2 -lopienet2
12 INTERFACES= wlan.ui info.ui 9 INTERFACES= wlan.ui info.ui
13 TARGET = wlan 10 TARGET = wlan
14 VERSION = 1.0.0 11 VERSION = 1.0.0
15 12
16#CONFIG += wirelessopts 13#CONFIG += wirelessopts
17 14
18wirelessopts { 15wirelessopts {
19 HEADERS+= wlanimp.h 16 HEADERS+= wlanimp.h
20 SOURCES+= wlanimp.cpp 17 SOURCES+= wlanimp.cpp
21} 18}
22 19
23! wirelessopts { 20! wirelessopts {
24 HEADERS+= wlanimp2.h 21 HEADERS+= wlanimp2.h
25 SOURCES += wlanimp2.cpp 22 SOURCES += wlanimp2.cpp
26} 23}
27 24
28include ( $(OPIEDIR)/include.pro ) 25include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp
index e4aa2f9..4294b12 100644
--- a/noncore/settings/networksettings/wlan/wlanimp2.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp
@@ -1,238 +1,240 @@
1#include "wlanimp2.h" 1#include "wlanimp2.h"
2#include "keyedit.h" 2#include "keyedit.h"
3#include "interfacesetupimp.h" 3#include "interfacesetupimp.h"
4
5#include "../interfaces/interface.h" 4#include "../interfaces/interface.h"
6 5
7#include <assert.h> 6#include <assert.h>
8#include <errno.h> 7#include <errno.h>
9#include <string.h> 8#include <string.h>
10 9
10/* OPIE */
11#include <opie2/odebug.h>
12#include <opie2/oprocess.h>
13#include <opie2/onetwork.h>
14#include <opie2/opcap.h>
15#include <qpe/resource.h>
16using namespace Opie::Core;
17using namespace Opie::Net;
18
19/* QT */
11#include <qapplication.h> 20#include <qapplication.h>
12#include <qfile.h> 21#include <qfile.h>
13#include <qdir.h> 22#include <qdir.h>
14#include <qdialog.h> 23#include <qdialog.h>
15#include <qtextstream.h> 24#include <qtextstream.h>
16#include <qmessagebox.h> 25#include <qmessagebox.h>
17#include <qlineedit.h> 26#include <qlineedit.h>
18#include <qlabel.h> 27#include <qlabel.h>
19#include <qspinbox.h> 28#include <qspinbox.h>
20#include <qradiobutton.h> 29#include <qradiobutton.h>
21#include <qpushbutton.h> 30#include <qpushbutton.h>
22#include <qcheckbox.h> 31#include <qcheckbox.h>
23#include <qtabwidget.h> 32#include <qtabwidget.h>
24#include <qcombobox.h> 33#include <qcombobox.h>
25#include <qlistview.h> 34#include <qlistview.h>
26#include <qvbox.h> 35#include <qvbox.h>
27#include <qprogressbar.h> 36#include <qprogressbar.h>
28 37
29#ifdef QWS 38/* STD */
30 #include <qpe/resource.h> 39#include <assert.h>
31 #include <opie2/oprocess.h> 40#include <errno.h>
32 #include <opie2/onetwork.h> 41#include <string.h>
33 #include <opie2/opcap.h>
34#else
35 #define OProcess KProcess
36 #include <kprocess.h>
37#endif
38 42
39#define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" 43#define WIRELESS_OPTS "/etc/pcmcia/wireless.opts"
40#define PREUP "/etc/network/if-pre-up.d/wireless-tools" 44#define PREUP "/etc/network/if-pre-up.d/wireless-tools"
41 45
42/** 46/**
43 * Constructor, read in the wireless.opts file for parsing later. 47 * Constructor, read in the wireless.opts file for parsing later.
44 */ 48 */
45using namespace Opie::Net;
46using namespace Opie::Core;
47WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { 49WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") {
48 interfaces = new Interfaces(); 50 interfaces = new Interfaces();
49 interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); 51 interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces);
50 tabWidget->insertTab(interfaceSetup, "TCP/IP"); 52 tabWidget->insertTab(interfaceSetup, "TCP/IP");
51 53
52 // Check sanity - the existance of the wireless-tools if-pre-up script 54 // Check sanity - the existance of the wireless-tools if-pre-up script
53 QFile file(QString(PREUP)); 55 QFile file(QString(PREUP));
54 if (file.exists()) { 56 if (file.exists()) {
55 owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl; 57 owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl;
56 } 58 }
57 59
58 connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); 60 connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) );
59 connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); 61 connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) );
60 netView->setColumnAlignment( col_chn, AlignCenter ); 62 netView->setColumnAlignment( col_chn, AlignCenter );
61 netView->setItemMargin( 3 ); 63 netView->setItemMargin( 3 );
62 netView->setAllColumnsShowFocus( true ); 64 netView->setAllColumnsShowFocus( true );
63 65
64} 66}
65 67
66WLANImp::~WLANImp() { 68WLANImp::~WLANImp() {
67//FIXME: delete interfaces; 69//FIXME: delete interfaces;
68} 70}
69 71
70/** 72/**
71 * Change the profile for both wireless settings and network settings. 73 * Change the profile for both wireless settings and network settings.
72 */ 74 */
73void WLANImp::setProfile(const QString &profile){ 75void WLANImp::setProfile(const QString &profile){
74 interfaceSetup->setProfile(profile); 76 interfaceSetup->setProfile(profile);
75 parseOpts(); 77 parseOpts();
76} 78}
77 79
78void WLANImp::parseOpts() { 80void WLANImp::parseOpts() {
79 bool error; 81 bool error;
80 QString opt; 82 QString opt;
81 83
82 if (! interfaces->isInterfaceSet()) 84 if (! interfaces->isInterfaceSet())
83 return; 85 return;
84 86
85 87
86 opt = interfaces->getInterfaceOption("wireless_essid", error); 88 opt = interfaces->getInterfaceOption("wireless_essid", error);
87 if(opt == "any" || opt == "off" || opt.isNull()){ 89 if(opt == "any" || opt == "off" || opt.isNull()){
88 essid->setEditText("any"); 90 essid->setEditText("any");
89 } else { 91 } else {
90 essid->setEditText(opt); 92 essid->setEditText(opt);
91 } 93 }
92 94
93 opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); 95 opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace();
94 96
95 for ( int i = 0; i < mode->count(); i++) 97 for ( int i = 0; i < mode->count(); i++)
96 if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); 98 if ( mode->text( i ) == opt ) mode->setCurrentItem( i );
97 99
98 opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); 100 opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace();
99 if (! opt.isNull()) { 101 if (! opt.isNull()) {
100 specifyAp->setChecked(true); 102 specifyAp->setChecked(true);
101 macEdit->setText(opt); 103 macEdit->setText(opt);
102 } 104 }
103 105
104 opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace(); 106 opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace();
105 if (! opt.isNull()) { 107 if (! opt.isNull()) {
106 specifyChan->setChecked(true); 108 specifyChan->setChecked(true);
107 networkChannel->setValue(opt.toInt()); 109 networkChannel->setValue(opt.toInt());
108 } 110 }
109 111
110 opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace(); 112 opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace();
111 if (opt.isNull()) 113 if (opt.isNull())
112 opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace(); 114 opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace();
113 parseKeyStr(opt); 115 parseKeyStr(opt);
114} 116}
115 117
116void WLANImp::parseKeyStr(QString keystr) { 118void WLANImp::parseKeyStr(QString keystr) {
117 int loc = 0; 119 int loc = 0;
118 int index = 1; 120 int index = 1;
119 QString key; 121 QString key;
120 QStringList keys = QStringList::split(QRegExp("\\s+"), keystr); 122 QStringList keys = QStringList::split(QRegExp("\\s+"), keystr);
121 int enc = -1; // encryption state 123 int enc = -1; // encryption state
122 124
123 for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) { 125 for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) {
124 if ((*it).left(3) == "off") { 126 if ((*it).left(3) == "off") {
125 // encryption disabled 127 // encryption disabled
126 enc = 0; 128 enc = 0;
127 } else if ((*it).left(2) == "on") { 129 } else if ((*it).left(2) == "on") {
128 // encryption enabled 130 // encryption enabled
129 enc = 1; 131 enc = 1;
130 } else if ((*it).left(4) == "open") { 132 } else if ((*it).left(4) == "open") {
131 // open mode, accept non encrypted packets 133 // open mode, accept non encrypted packets
132 acceptNonEnc->setChecked(true); 134 acceptNonEnc->setChecked(true);
133 } else if ((*it).left(10) == "restricted") { 135 } else if ((*it).left(10) == "restricted") {
134 // restricted mode, only accept encrypted packets 136 // restricted mode, only accept encrypted packets
135 rejectNonEnc->setChecked(true); 137 rejectNonEnc->setChecked(true);
136 } else if ((*it).left(3) == "key") { 138 } else if ((*it).left(3) == "key") {
137 // new set of options 139 // new set of options
138 } else if ((*it).left(1) == "[") { 140 } else if ((*it).left(1) == "[") {
139 index = (*it).mid(1, 1).toInt(); 141 index = (*it).mid(1, 1).toInt();
140 // switch current key to index 142 // switch current key to index
141 switch (index) { 143 switch (index) {
142 case 1: 144 case 1:
143 keyRadio0->setChecked(true); 145 keyRadio0->setChecked(true);
144 break; 146 break;
145 case 2: 147 case 2:
146 keyRadio1->setChecked(true); 148 keyRadio1->setChecked(true);
147 break; 149 break;
148 case 3: 150 case 3:
149 keyRadio2->setChecked(true); 151 keyRadio2->setChecked(true);
150 break; 152 break;
151 case 4: 153 case 4:
152 keyRadio3->setChecked(true); 154 keyRadio3->setChecked(true);
153 break; 155 break;
154 } 156 }
155 } else { 157 } else {
156 // key 158 // key
157 key = (*it); 159 key = (*it);
158 } 160 }
159 if (! key.isNull()) { 161 if (! key.isNull()) {
160 if (enc == -1) 162 if (enc == -1)
161 enc = 1; 163 enc = 1;
162 QStringList::Iterator next = ++it; 164 QStringList::Iterator next = ++it;
163 if (it == keys.end()) { 165 if (it == keys.end()) {
164 break; 166 break;
165 } 167 }
166 if ((*(next)).left(1) == "[") { 168 if ((*(next)).left(1) == "[") {
167 // set key at index 169 // set key at index
168 index = (*(next)).mid(1, 1).toInt(); 170 index = (*(next)).mid(1, 1).toInt();
169 } else { 171 } else {
170 index = 1; 172 index = 1;
171 } 173 }
172 switch (index) { 174 switch (index) {
173 case 1: 175 case 1:
174 keyLineEdit0->setText(key); 176 keyLineEdit0->setText(key);
175 break; 177 break;
176 case 2: 178 case 2:
177 keyLineEdit1->setText(key); 179 keyLineEdit1->setText(key);
178 break; 180 break;
179 case 3: 181 case 3:
180 keyLineEdit2->setText(key); 182 keyLineEdit2->setText(key);
181 break; 183 break;
182 case 4: 184 case 4:
183 keyLineEdit3->setText(key); 185 keyLineEdit3->setText(key);
184 break; 186 break;
185 } 187 }
186 key = QString::null; 188 key = QString::null;
187 } 189 }
188 } 190 }
189 if (enc == 1) { 191 if (enc == 1) {
190 wepEnabled->setChecked(true); 192 wepEnabled->setChecked(true);
191 } else { 193 } else {
192 wepEnabled->setChecked(false); 194 wepEnabled->setChecked(false);
193 } 195 }
194} 196}
195 197
196/** 198/**
197 * Check to see if the current config is valid 199 * Check to see if the current config is valid
198 * Save interfaces 200 * Save interfaces
199 */ 201 */
200void WLANImp::accept() { 202void WLANImp::accept() {
201 if (wepEnabled->isChecked()) { 203 if (wepEnabled->isChecked()) {
202 if ((keyRadio0->isChecked() && keyLineEdit0->text().isEmpty()) || 204 if ((keyRadio0->isChecked() && keyLineEdit0->text().isEmpty()) ||
203 (keyRadio1->isChecked() && keyLineEdit1->text().isEmpty()) || 205 (keyRadio1->isChecked() && keyLineEdit1->text().isEmpty()) ||
204 (keyRadio2->isChecked() && keyLineEdit2->text().isEmpty()) || 206 (keyRadio2->isChecked() && keyLineEdit2->text().isEmpty()) ||
205 (keyRadio3->isChecked() && keyLineEdit3->text().isEmpty())) { 207 (keyRadio3->isChecked() && keyLineEdit3->text().isEmpty())) {
206 QMessageBox::information(this, "Error", "Please enter a WEP key.", QMessageBox::Ok); 208 QMessageBox::information(this, "Error", "Please enter a WEP key.", QMessageBox::Ok);
207 return; 209 return;
208 } 210 }
209 } 211 }
210 212
211 if (essid->currentText().isEmpty()) { 213 if (essid->currentText().isEmpty()) {
212 QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok); 214 QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok);
213 return; 215 return;
214 } 216 }
215 217
216 if (specifyAp->isChecked() && macEdit->text().isEmpty()) { 218 if (specifyAp->isChecked() && macEdit->text().isEmpty()) {
217 QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok); 219 QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok);
218 return; 220 return;
219 } 221 }
220 222
221 // Try to save the interfaces settings. 223 // Try to save the interfaces settings.
222 writeOpts(); 224 writeOpts();
223 225
224 // Close out the dialog 226 // Close out the dialog
225// FIXME: QDialog::accept(); 227// FIXME: QDialog::accept();
226} 228}
227 229
228void WLANImp::writeOpts() { 230void WLANImp::writeOpts() {
229 // eh can't really do anything about it other then return. :-D 231 // eh can't really do anything about it other then return. :-D
230 if(!interfaces->isInterfaceSet()){ 232 if(!interfaces->isInterfaceSet()){
231 QMessageBox::warning(0,"Inface not set","should not happen!!!"); 233 QMessageBox::warning(0,"Inface not set","should not happen!!!");
232 return; 234 return;
233 } 235 }
234 bool error = false; 236 bool error = false;
235 237
236 odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl; 238 odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl;
237 239
238 if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); 240 if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!");
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 886af10..ba89fa4 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,201 +1,203 @@
1 1
2#include "wlanmodule.h" 2#include "wlanmodule.h"
3#include "wlanimp2.h" 3#include "wlanimp2.h"
4#include "infoimp.h" 4#include "infoimp.h"
5#include "wextensions.h" 5#include "wextensions.h"
6#include "interfaceinformationimp.h" 6#include "interfaceinformationimp.h"
7 7
8/* OPIE */ 8/* OPIE */
9#include <opie2/odebug.h>
9#include <qpe/qpeapplication.h> 10#include <qpe/qpeapplication.h>
11using namespace Opie::Core;
10 12
11/* QT */ 13/* QT */
12#include <qcheckbox.h> 14#include <qcheckbox.h>
13#include <qcombobox.h> 15#include <qcombobox.h>
14#include <qlabel.h> 16#include <qlabel.h>
15#include <qlineedit.h> 17#include <qlineedit.h>
16#include <qprogressbar.h> 18#include <qprogressbar.h>
17#include <qspinbox.h> 19#include <qspinbox.h>
18#include <qtabwidget.h> 20#include <qtabwidget.h>
19 21
20 22
21/** 23/**
22 * Constructor, find all of the possible interfaces 24 * Constructor, find all of the possible interfaces
23 */ 25 */
24WLANModule::WLANModule() 26WLANModule::WLANModule()
25 : Module(), 27 : Module(),
26 wlanconfigWiget(0) 28 wlanconfigWiget(0)
27{ 29{
28} 30}
29 31
30/** 32/**
31 * Delete any interfaces that we own. 33 * Delete any interfaces that we own.
32 */ 34 */
33WLANModule::~WLANModule(){ 35WLANModule::~WLANModule(){
34 Interface *i; 36 Interface *i;
35 for ( i=list.first(); i != 0; i=list.next() ) 37 for ( i=list.first(); i != 0; i=list.next() )
36 delete i; 38 delete i;
37 39
38} 40}
39 41
40/** 42/**
41 * Change the current profile 43 * Change the current profile
42 */ 44 */
43void WLANModule::setProfile(const QString &newProfile){ 45void WLANModule::setProfile(const QString &newProfile){
44 profile = newProfile; 46 profile = newProfile;
45} 47}
46 48
47/** 49/**
48 * get the icon name for this device. 50 * get the icon name for this device.
49 * @param Interface* can be used in determining the icon. 51 * @param Interface* can be used in determining the icon.
50 * @return QString the icon name (minus .png, .gif etc) 52 * @return QString the icon name (minus .png, .gif etc)
51 */ 53 */
52QString WLANModule::getPixmapName(Interface* ){ 54QString WLANModule::getPixmapName(Interface* ){
53 return "wlan"; 55 return "wlan";
54} 56}
55 57
56/** 58/**
57 * Check to see if the interface i is owned by this module. 59 * Check to see if the interface i is owned by this module.
58 * @param Interface* interface to check against 60 * @param Interface* interface to check against
59 * @return bool true if i is owned by this module, false otherwise. 61 * @return bool true if i is owned by this module, false otherwise.
60 */ 62 */
61bool WLANModule::isOwner(Interface *i){ 63bool WLANModule::isOwner(Interface *i){
62 WExtensions we(i->getInterfaceName()); 64 WExtensions we(i->getInterfaceName());
63 if(!we.doesHaveWirelessExtensions()) 65 if(!we.doesHaveWirelessExtensions())
64 return false; 66 return false;
65 67
66 i->setHardwareName("802.11b"); 68 i->setHardwareName("802.11b");
67 list.append(i); 69 list.append(i);
68 return true; 70 return true;
69} 71}
70 72
71/** 73/**
72 * Create, and return the WLANConfigure Module 74 * Create, and return the WLANConfigure Module
73 * @return QWidget* pointer to this modules configure. 75 * @return QWidget* pointer to this modules configure.
74 */ 76 */
75QWidget *WLANModule::configure(Interface *i){ 77QWidget *WLANModule::configure(Interface *i){
76 WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose); 78 WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose);
77 wlanconfig->setProfile(profile); 79 wlanconfig->setProfile(profile);
78 return wlanconfig; 80 return wlanconfig;
79} 81}
80 82
81/** 83/**
82 * Create, and return the Information Module 84 * Create, and return the Information Module
83 * @return QWidget* pointer to this modules info. 85 * @return QWidget* pointer to this modules info.
84 */ 86 */
85QWidget *WLANModule::information(Interface *i){ 87QWidget *WLANModule::information(Interface *i){
86 WExtensions we(i->getInterfaceName()); 88 WExtensions we(i->getInterfaceName());
87 if(!we.doesHaveWirelessExtensions()) 89 if(!we.doesHaveWirelessExtensions())
88 return NULL; 90 return NULL;
89 91
90 return getInfo( i ); 92 return getInfo( i );
91} 93}
92 94
93/** 95/**
94 * Get all active (up or down) interfaces 96 * Get all active (up or down) interfaces
95 * @return QList<Interface> A list of interfaces that exsist that havn't 97 * @return QList<Interface> A list of interfaces that exsist that havn't
96 * been called by isOwner() 98 * been called by isOwner()
97 */ 99 */
98QList<Interface> WLANModule::getInterfaces(){ 100QList<Interface> WLANModule::getInterfaces(){
99 return list; 101 return list;
100} 102}
101 103
102/** 104/**
103 * Attempt to add a new interface as defined by name 105 * Attempt to add a new interface as defined by name
104 * @param name the name of the type of interface that should be created given 106 * @param name the name of the type of interface that should be created given
105 * by possibleNewInterfaces(); 107 * by possibleNewInterfaces();
106 * @return Interface* NULL if it was unable to be created. 108 * @return Interface* NULL if it was unable to be created.
107 */ 109 */
108Interface *WLANModule::addNewInterface(const QString &){ 110Interface *WLANModule::addNewInterface(const QString &){
109 // We can't add a 802.11 interface, either the hardware will be there 111 // We can't add a 802.11 interface, either the hardware will be there
110 // or it wont. 112 // or it wont.
111 return NULL; 113 return NULL;
112} 114}
113 115
114/** 116/**
115 * Attempts to remove the interface, doesn't delete i 117 * Attempts to remove the interface, doesn't delete i
116 * @return bool true if successful, false otherwise. 118 * @return bool true if successful, false otherwise.
117 */ 119 */
118bool WLANModule::remove(Interface*){ 120bool WLANModule::remove(Interface*){
119 // Can't remove a hardware device, you can stop it though. 121 // Can't remove a hardware device, you can stop it though.
120 return false; 122 return false;
121} 123}
122 124
123void WLANModule::receive(const QCString &param, const QByteArray &arg) 125void WLANModule::receive(const QCString &param, const QByteArray &arg)
124{ 126{
125 odebug << "WLANModule::receive "+param << oendl; 127 odebug << "WLANModule::receive "+param << oendl;
126 QStringList params = QStringList::split(",",param); 128 QStringList params = QStringList::split(",",param);
127 int count = params.count(); 129 int count = params.count();
128 odebug << "WLANModule got " << count << " params" << oendl; 130 odebug << "WLANModule got " << count << " params" << oendl;
129 if (count < 2){ 131 if (count < 2){
130 odebug << "Erorr less than 2 parameter" << oendl; 132 odebug << "Erorr less than 2 parameter" << oendl;
131 odebug << "RETURNING" << oendl; 133 odebug << "RETURNING" << oendl;
132 return; 134 return;
133 } 135 }
134 136
135 QDataStream stream(arg,IO_ReadOnly); 137 QDataStream stream(arg,IO_ReadOnly);
136 QString interface; 138 QString interface;
137 QString action; 139 QString action;
138 int countMsgs = 0; 140 int countMsgs = 0;
139 stream >> interface; 141 stream >> interface;
140 odebug << "got count? >" << interface.latin1() << "<" << oendl; 142 odebug << "got count? >" << interface.latin1() << "<" << oendl;
141 if (interface == "count"){ 143 if (interface == "count"){
142 odebug << "got count" << oendl; 144 odebug << "got count" << oendl;
143 stream >> action; 145 stream >> action;
144 odebug << "Got count num >" << action.latin1() << "<" << oendl; 146 odebug << "Got count num >" << action.latin1() << "<" << oendl;
145 countMsgs = action.toInt(); 147 countMsgs = action.toInt();
146 } 148 }
147 149
148 QDialog *toShow; 150 QDialog *toShow;
149 //while (! stream.atEnd() ){ 151 //while (! stream.atEnd() ){
150 for (int i = 0; i < countMsgs; i++){ 152 for (int i = 0; i < countMsgs; i++){
151 odebug << "start stream " << i << "/" << countMsgs << "" << oendl; 153 odebug << "start stream " << i << "/" << countMsgs << "" << oendl;
152 if (stream.atEnd()){ 154 if (stream.atEnd()){
153 odebug << "end of stream" << oendl; 155 odebug << "end of stream" << oendl;
154 return; 156 return;
155 } 157 }
156 stream >> interface; 158 stream >> interface;
157 odebug << "got iface" << oendl; 159 odebug << "got iface" << oendl;
158 stream >> action; 160 stream >> action;
159 odebug << "WLANModule got interface " << interface.latin1() << " and acion " << action.latin1() << "" << oendl; 161 odebug << "WLANModule got interface " << interface.latin1() << " and acion " << action.latin1() << "" << oendl;
160 // find interfaces 162 // find interfaces
161 Interface *ifa=0; 163 Interface *ifa=0;
162 for ( Interface *i=list.first(); i != 0; i=list.next() ){ 164 for ( Interface *i=list.first(); i != 0; i=list.next() ){
163 if (i->getInterfaceName() == interface){ 165 if (i->getInterfaceName() == interface){
164 odebug << "WLANModule found interface " << interface.latin1() << "" << oendl; 166 odebug << "WLANModule found interface " << interface.latin1() << "" << oendl;
165 ifa = i; 167 ifa = i;
166 } 168 }
167 } 169 }
168 170
169 if (ifa == 0){ 171 if (ifa == 0){
170 odebug << "WLANModule Did not find " << interface.latin1() << "" << oendl; 172 odebug << "WLANModule Did not find " << interface.latin1() << "" << oendl;
171 odebug << "skipping" << oendl; 173 odebug << "skipping" << oendl;
172 count = 0; 174 count = 0;
173 } 175 }
174 176
175 if (count == 2){ 177 if (count == 2){
176 // those should call the interface directly 178 // those should call the interface directly
177 QWidget *info = getInfo( ifa ); 179 QWidget *info = getInfo( ifa );
178 QPEApplication::showWidget( info ); 180 QPEApplication::showWidget( info );
179 181
180 if ( action.contains("start" ) ){ 182 if ( action.contains("start" ) ){
181 ifa->start(); 183 ifa->start();
182 } else if ( action.contains("restart" ) ){ 184 } else if ( action.contains("restart" ) ){
183 ifa->restart(); 185 ifa->restart();
184 } else if ( action.contains("stop" ) ){ 186 } else if ( action.contains("stop" ) ){
185 ifa->stop(); 187 ifa->stop();
186 }else if ( action.contains("refresh" ) ){ 188 }else if ( action.contains("refresh" ) ){
187 ifa->refresh(); 189 ifa->refresh();
188 } 190 }
189 }else if (count == 3){ 191 }else if (count == 3){
190 QString value; 192 QString value;
191 if (!wlanconfigWiget){ 193 if (!wlanconfigWiget){
192 //FIXME: what if it got closed meanwhile? 194 //FIXME: what if it got closed meanwhile?
193 wlanconfigWiget = (WLANImp*) configure(ifa); 195 wlanconfigWiget = (WLANImp*) configure(ifa);
194 toShow = (QDialog*) wlanconfigWiget; 196 toShow = (QDialog*) wlanconfigWiget;
195 } 197 }
196 QPEApplication::showWidget( wlanconfigWiget ); 198 QPEApplication::showWidget( wlanconfigWiget );
197 stream >> value; 199 stream >> value;
198 odebug << "WLANModule (build 4) is setting " << action.latin1() << " of " << interface.latin1() << " to " << value.latin1() << "" << oendl; 200 odebug << "WLANModule (build 4) is setting " << action.latin1() << " of " << interface.latin1() << " to " << value.latin1() << "" << oendl;
199 if (value.isEmpty()){ 201 if (value.isEmpty()){
200 odebug << "value is empty!!!\nreturning" << oendl; 202 odebug << "value is empty!!!\nreturning" << oendl;
201 return; 203 return;