-rw-r--r-- | noncore/settings/networksettings/ppp/authwidget.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/connect.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/interfaceppp.cpp | 11 |
3 files changed, 9 insertions, 6 deletions
diff --git a/noncore/settings/networksettings/ppp/authwidget.cpp b/noncore/settings/networksettings/ppp/authwidget.cpp index 86bea98..fa2b164 100644 --- a/noncore/settings/networksettings/ppp/authwidget.cpp +++ b/noncore/settings/networksettings/ppp/authwidget.cpp | |||
@@ -1,195 +1,197 @@ | |||
1 | 1 | ||
2 | #include <qlayout.h> | 2 | #include <qlayout.h> |
3 | #include <qmessagebox.h> | 3 | #include <qmessagebox.h> |
4 | #include <qtoolbutton.h> | 4 | #include <qtoolbutton.h> |
5 | #include <qwhatsthis.h> | 5 | #include <qwhatsthis.h> |
6 | 6 | ||
7 | #include "auth.h" | 7 | #include "auth.h" |
8 | #include "authwidget.h" | 8 | #include "authwidget.h" |
9 | #include "edit.h" | 9 | #include "edit.h" |
10 | #include "pppdata.h" | 10 | #include "pppdata.h" |
11 | 11 | ||
12 | 12 | ||
13 | static const char* const image0_data[] = { | 13 | static const char* const image0_data[] = { |
14 | "16 16 2 1", | 14 | "16 16 2 1", |
15 | ". c None", | 15 | ". c None", |
16 | "# c #000000", | 16 | "# c #000000", |
17 | "................", | 17 | "................", |
18 | "...#...###...##.", | 18 | "...#...###...##.", |
19 | "..#.#..#..#.##..", | 19 | "..#.#..#..#.##..", |
20 | "..###..###.##...", | 20 | "..###..###.##...", |
21 | ".#...#.#..##....", | 21 | ".#...#.#..##....", |
22 | ".#...#.#.##.....", | 22 | ".#...#.#.##.....", |
23 | "........##.#..#.", | 23 | "........##.#..#.", |
24 | "..##...##...##..", | 24 | "..##...##...##..", |
25 | ".#..#.###...##..", | 25 | ".#..#.###...##..", |
26 | ".#...##..#.#..#.", | 26 | ".#...##..#.#..#.", |
27 | ".#..##..........", | 27 | ".#..##..........", |
28 | ".#.##.#..#.#..#.", | 28 | ".#.##.#..#.#..#.", |
29 | "..##...##...##..", | 29 | "..##...##...##..", |
30 | ".##....##...##..", | 30 | ".##....##...##..", |
31 | ".#....#..#.#..#.", | 31 | ".#....#..#.#..#.", |
32 | "................"}; | 32 | "................"}; |
33 | 33 | ||
34 | 34 | ||
35 | AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 35 | AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
36 | : QWidget( parent, name), | 36 | : QWidget( parent, name), |
37 | scriptWidget(0), | 37 | scriptWidget(0), |
38 | _pppdata(pd), | 38 | _pppdata(pd), |
39 | isNewAccount(isnewaccount) | 39 | isNewAccount(isnewaccount) |
40 | { | 40 | { |
41 | layout = new QGridLayout(this); | 41 | layout = new QGridLayout(this); |
42 | 42 | ||
43 | auth_l = new QLabel(tr("Authentication: "), this); | 43 | auth_l = new QLabel(tr("Authentication: "), this); |
44 | layout->addWidget(auth_l, 0, 0); | 44 | layout->addWidget(auth_l, 0, 0); |
45 | 45 | ||
46 | auth = new QComboBox(this); | 46 | auth = new QComboBox(this); |
47 | auth->insertItem(tr("Script-based")); | 47 | auth->insertItem(tr("Script-based")); |
48 | auth->insertItem(tr("PAP")); | 48 | auth->insertItem(tr("PAP")); |
49 | auth->insertItem(tr("Terminal-based")); | 49 | auth->insertItem(tr("Terminal-based")); |
50 | auth->insertItem(tr("CHAP")); | 50 | auth->insertItem(tr("CHAP")); |
51 | auth->insertItem(tr("PAP/CHAP")); | 51 | auth->insertItem(tr("PAP/CHAP")); |
52 | layout->addWidget(auth, 0, 1); | 52 | layout->addWidget(auth, 0, 1); |
53 | 53 | ||
54 | connect( auth, SIGNAL(activated(const QString&)), | 54 | connect( auth, SIGNAL(activated(const QString&)), |
55 | SLOT(authChanged(const QString&))); | 55 | SLOT(authChanged(const QString&))); |
56 | 56 | ||
57 | QString tmp = tr("<p>Specifies the method used to identify yourself to\n" | 57 | QString tmp = tr("<p>Specifies the method used to identify yourself to\n" |
58 | "the PPP server. Most universities still use\n" | 58 | "the PPP server. Most universities still use\n" |
59 | "<b>Terminal</b>- or <b>Script</b>-based authentication,\n" | 59 | "<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" | 60 | "while most ISP use <b>PAP</b> and/or <b>CHAP</b>. If\n" |
61 | "unsure, contact your ISP.\n" | 61 | "unsure, contact your ISP.\n" |
62 | "\n" | 62 | "\n" |
63 | "If you can choose between PAP and CHAP,\n" | 63 | "If you can choose between PAP and CHAP,\n" |
64 | "choose CHAP, because it's much safer. If you don't know\n" | 64 | "choose CHAP, because it's much safer. If you don't know\n" |
65 | "whether PAP or CHAP is right, choose PAP/CHAP."); | 65 | "whether PAP or CHAP is right, choose PAP/CHAP."); |
66 | 66 | ||
67 | QWhatsThis::add(auth_l,tmp); | 67 | QWhatsThis::add(auth_l,tmp); |
68 | QWhatsThis::add(auth,tmp); | 68 | QWhatsThis::add(auth,tmp); |
69 | 69 | ||
70 | user_l = new QLabel( tr("Username: "), this); | 70 | user_l = new QLabel( tr("Username: "), this); |
71 | layout->addWidget( user_l, 1, 0 ); | 71 | layout->addWidget( user_l, 1, 0 ); |
72 | userName = new QLineEdit( this, "usernameEdit" ); | 72 | userName = new QLineEdit( this, "usernameEdit" ); |
73 | layout->addWidget( userName, 1, 1 ); | 73 | layout->addWidget( userName, 1, 1 ); |
74 | tmp = tr("Enter your username here..."); | 74 | tmp = tr("Enter your username here..."); |
75 | QWhatsThis::add( user_l, tmp ); | 75 | QWhatsThis::add( user_l, tmp ); |
76 | QWhatsThis::add( userName, tmp ); | 76 | QWhatsThis::add( userName, tmp ); |
77 | 77 | ||
78 | pw_l = new QLabel( tr("Password: "), this); | 78 | pw_l = new QLabel( tr("Password: "), this); |
79 | layout->addWidget( pw_l, 2, 0 ); | 79 | layout->addWidget( pw_l, 2, 0 ); |
80 | passWord = new QLineEdit( this, "pw" ); | 80 | passWord = new QLineEdit( this, "pw" ); |
81 | passWord->setAutoMask( true ); | 81 | passWord->setAutoMask( true ); |
82 | passWord->setEchoMode( QLineEdit::Password ); | 82 | passWord->setEchoMode( QLineEdit::Password ); |
83 | layout->addWidget( passWord, 2, 1 ); | 83 | layout->addWidget( passWord, 2, 1 ); |
84 | hidePw = new QToolButton( this ); | 84 | hidePw = new QToolButton( this ); |
85 | hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) ); | 85 | hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) ); |
86 | hidePw->setToggleButton( true ); | 86 | hidePw->setToggleButton( true ); |
87 | layout->addWidget( hidePw, 2, 2 ); | 87 | layout->addWidget( hidePw, 2, 2 ); |
88 | 88 | ||
89 | connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool))); | 89 | connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool))); |
90 | 90 | ||
91 | tmp = tr("Enter your password here"); | 91 | tmp = tr("Enter your password here"); |
92 | QWhatsThis::add( pw_l, tmp ); | 92 | QWhatsThis::add( pw_l, tmp ); |
93 | QWhatsThis::add( passWord, tmp ); | 93 | QWhatsThis::add( passWord, tmp ); |
94 | 94 | ||
95 | store_password = new QCheckBox(tr("Store password"), this); | 95 | store_password = new QCheckBox(tr("Store password"), this); |
96 | layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight); | 96 | layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight); |
97 | QWhatsThis::add(store_password, | 97 | QWhatsThis::add(store_password, |
98 | tr("<p>When this is turned on, your ISP password\n" | 98 | tr("<p>When this is turned on, your ISP password\n" |
99 | "will be saved in <i>kppp</i>'s config file, so\n" | 99 | "will be saved in <i>kppp</i>'s config file, so\n" |
100 | "you do not need to type it in every time.\n" | 100 | "you do not need to type it in every time.\n" |
101 | "\n" | 101 | "\n" |
102 | "<b><font color=\"red\">Warning:</font> your password will be stored as\n" | 102 | "<b><font color=\"red\">Warning:</font> your password will be stored as\n" |
103 | "plain text in the config file, which is\n" | 103 | "plain text in the config file, which is\n" |
104 | "readable only to you. Make sure nobody\n" | 104 | "readable only to you. Make sure nobody\n" |
105 | "gains access to this file!")); | 105 | "gains access to this file!")); |
106 | 106 | ||
107 | if (isNewAccount){ | 107 | if (isNewAccount){ |
108 | // select PAP/CHAP as default | 108 | // select PAP/CHAP as default |
109 | auth->setCurrentItem(AUTH_PAPCHAP); | 109 | auth->setCurrentItem(AUTH_PAPCHAP); |
110 | store_password->setChecked(true); | 110 | store_password->setChecked(true); |
111 | }else{ | 111 | }else{ |
112 | auth->setCurrentItem(_pppdata->authMethod()); | 112 | auth->setCurrentItem(_pppdata->authMethod()); |
113 | authChanged( auth->currentText() ); | 113 | authChanged( auth->currentText() ); |
114 | userName->setText( _pppdata->storedUsername() ); | 114 | userName->setText( _pppdata->storedUsername() ); |
115 | store_password->setChecked(_pppdata->storePassword()); | 115 | store_password->setChecked(_pppdata->storePassword()); |
116 | if (store_password->isChecked()) | 116 | if (store_password->isChecked()) |
117 | passWord->setText( _pppdata->storedPassword() ); | 117 | passWord->setText( _pppdata->storedPassword() ); |
118 | } | 118 | } |
119 | } | 119 | } |
120 | 120 | ||
121 | bool AuthWidget::check() | 121 | bool AuthWidget::check() |
122 | { | 122 | { |
123 | bool ret = true; | 123 | bool ret = true; |
124 | if (scriptWidget){ | 124 | if (scriptWidget){ |
125 | if (!scriptWidget->check()){ | 125 | if (!scriptWidget->check()){ |
126 | QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>")); | 126 | QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>")); |
127 | ret = false; | 127 | ret = false; |
128 | } | 128 | } |
129 | } | 129 | } |
130 | return ret; | 130 | return ret; |
131 | } | 131 | } |
132 | 132 | ||
133 | void AuthWidget::save() | 133 | void AuthWidget::save() |
134 | { | 134 | { |
135 | _pppdata->setAuthMethod(auth->currentItem()); | 135 | _pppdata->setAuthMethod(auth->currentItem()); |
136 | if (scriptWidget) scriptWidget->save(); | 136 | if (scriptWidget) scriptWidget->save(); |
137 | _pppdata->setStoredUsername( userName->text() ); | 137 | _pppdata->setStoredUsername( userName->text() ); |
138 | _pppdata->setStorePassword(store_password->isChecked()); | 138 | _pppdata->setStorePassword(store_password->isChecked()); |
139 | if (store_password->isChecked()) | 139 | if (store_password->isChecked()) |
140 | _pppdata->setStoredPassword( passWord->text() ); | 140 | _pppdata->setStoredPassword( passWord->text() ); |
141 | } | 141 | } |
142 | 142 | ||
143 | void AuthWidget::authChanged( const QString &authStr ) | 143 | void AuthWidget::authChanged( const QString &authStr ) |
144 | { | 144 | { |
145 | qDebug("AuthWidget::authChanged( %s )", authStr.latin1() ); | 145 | qDebug("AuthWidget::authChanged( %s )", authStr.latin1() ); |
146 | if ( authStr.contains( tr("Script-based") ) ){ | 146 | if ( authStr.contains( tr("Script-based") ) ){ |
147 | showUsernamePassword( false ); | 147 | showUsernamePassword( false ); |
148 | showScriptWindow( true ); | 148 | showScriptWindow( true ); |
149 | } else if ( authStr.contains( tr("PAP") ) || | 149 | } else if ( authStr.contains( tr("PAP") ) || |
150 | authStr.contains( tr("CHAP") ) ){ | 150 | authStr.contains( tr("CHAP") ) ){ |
151 | showUsernamePassword( true ); | 151 | showUsernamePassword( true ); |
152 | showScriptWindow( false ); | 152 | showScriptWindow( false ); |
153 | } else { | 153 | } else { |
154 | qDebug("do not really know how to handle"); | 154 | qDebug("do not really know how to handle"); |
155 | showUsernamePassword( false ); | 155 | showUsernamePassword( false ); |
156 | showScriptWindow( false ); | 156 | showScriptWindow( false ); |
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | 160 | ||
161 | void AuthWidget::showUsernamePassword( bool show ) | 161 | void AuthWidget::showUsernamePassword( bool show ) |
162 | { | 162 | { |
163 | if (show){ | 163 | if (show){ |
164 | user_l->show(); | 164 | user_l->show(); |
165 | userName->show(); | 165 | userName->show(); |
166 | pw_l->show(); | 166 | pw_l->show(); |
167 | passWord->show(); | 167 | passWord->show(); |
168 | store_password->show(); | 168 | store_password->show(); |
169 | hidePw->show(); | ||
169 | }else{//!show | 170 | }else{//!show |
170 | user_l->hide(); | 171 | user_l->hide(); |
171 | userName->hide(); | 172 | userName->hide(); |
172 | pw_l->hide(); | 173 | pw_l->hide(); |
173 | passWord->hide(); | 174 | passWord->hide(); |
174 | store_password->hide(); | 175 | store_password->hide(); |
176 | hidePw->hide(); | ||
175 | } | 177 | } |
176 | } | 178 | } |
177 | 179 | ||
178 | void AuthWidget::showScriptWindow( bool show ) | 180 | void AuthWidget::showScriptWindow( bool show ) |
179 | { | 181 | { |
180 | if (show){ | 182 | if (show){ |
181 | if (!scriptWidget){ | 183 | if (!scriptWidget){ |
182 | scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid"); | 184 | scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid"); |
183 | layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 ); | 185 | layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 ); |
184 | } | 186 | } |
185 | scriptWidget->show(); | 187 | scriptWidget->show(); |
186 | }else{ // !show | 188 | }else{ // !show |
187 | if (scriptWidget) scriptWidget->hide(); | 189 | if (scriptWidget) scriptWidget->hide(); |
188 | } | 190 | } |
189 | } | 191 | } |
190 | 192 | ||
191 | void AuthWidget::toggleEchoMode( bool t ) | 193 | void AuthWidget::toggleEchoMode( bool t ) |
192 | { | 194 | { |
193 | passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password ); | 195 | passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password ); |
194 | } | 196 | } |
195 | 197 | ||
diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp index a93f93d..798431b 100644 --- a/noncore/settings/networksettings/ppp/connect.cpp +++ b/noncore/settings/networksettings/ppp/connect.cpp | |||
@@ -346,513 +346,513 @@ void ConnectWidget::timerEvent(QTimerEvent *) { | |||
346 | writeline(vol); | 346 | writeline(vol); |
347 | usleep(_ifaceppp->data()->modemInitDelay() * 10000); // 0.01 - 3.0 sec | 347 | usleep(_ifaceppp->data()->modemInitDelay() * 10000); // 0.01 - 3.0 sec |
348 | vmain = 4; | 348 | vmain = 4; |
349 | return; | 349 | return; |
350 | } | 350 | } |
351 | } | 351 | } |
352 | 352 | ||
353 | if(vmain == 4) { | 353 | if(vmain == 4) { |
354 | if(!expecting) { | 354 | if(!expecting) { |
355 | if(!_ifaceppp->data()->waitForDialTone()) { | 355 | if(!_ifaceppp->data()->waitForDialTone()) { |
356 | QString msg = i18n("Turning off dial tone waiting..."); | 356 | QString msg = i18n("Turning off dial tone waiting..."); |
357 | messg->setText(msg); | 357 | messg->setText(msg); |
358 | emit debugMessage(msg); | 358 | emit debugMessage(msg); |
359 | setExpect(_ifaceppp->data()->modemInitResp()); | 359 | setExpect(_ifaceppp->data()->modemInitResp()); |
360 | writeline(_ifaceppp->data()->modemNoDialToneDetectionStr()); | 360 | writeline(_ifaceppp->data()->modemNoDialToneDetectionStr()); |
361 | } | 361 | } |
362 | vmain = 1; | 362 | vmain = 1; |
363 | return; | 363 | return; |
364 | } | 364 | } |
365 | } | 365 | } |
366 | 366 | ||
367 | // dial the number and wait to connect | 367 | // dial the number and wait to connect |
368 | if(vmain == 1) { | 368 | if(vmain == 1) { |
369 | if(!expecting) { | 369 | if(!expecting) { |
370 | 370 | ||
371 | timeout_timer->stop(); | 371 | timeout_timer->stop(); |
372 | timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); | 372 | timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); |
373 | 373 | ||
374 | QStringList &plist = _ifaceppp->data()->phonenumbers(); | 374 | QStringList &plist = _ifaceppp->data()->phonenumbers(); |
375 | QString bmarg= _ifaceppp->data()->dialPrefix(); | 375 | QString bmarg= _ifaceppp->data()->dialPrefix(); |
376 | bmarg += *plist.at(dialnumber); | 376 | bmarg += *plist.at(dialnumber); |
377 | QString bm = i18n("Dialing %1").arg(bmarg); | 377 | QString bm = i18n("Dialing %1").arg(bmarg); |
378 | messg->setText(bm); | 378 | messg->setText(bm); |
379 | emit debugMessage(bm); | 379 | emit debugMessage(bm); |
380 | 380 | ||
381 | QString pn = _ifaceppp->data()->modemDialStr(); | 381 | QString pn = _ifaceppp->data()->modemDialStr(); |
382 | pn += _ifaceppp->data()->dialPrefix(); | 382 | pn += _ifaceppp->data()->dialPrefix(); |
383 | pn += *plist.at(dialnumber); | 383 | pn += *plist.at(dialnumber); |
384 | if(++dialnumber >= plist.count()) | 384 | if(++dialnumber >= plist.count()) |
385 | dialnumber = 0; | 385 | dialnumber = 0; |
386 | writeline(pn); | 386 | writeline(pn); |
387 | 387 | ||
388 | setExpect(_ifaceppp->data()->modemConnectResp()); | 388 | setExpect(_ifaceppp->data()->modemConnectResp()); |
389 | vmain = 100; | 389 | vmain = 100; |
390 | return; | 390 | return; |
391 | } | 391 | } |
392 | } | 392 | } |
393 | 393 | ||
394 | // wait for connect, but redial if BUSY or wait for user cancel | 394 | // wait for connect, but redial if BUSY or wait for user cancel |
395 | // if NO CARRIER or NO DIALTONE | 395 | // if NO CARRIER or NO DIALTONE |
396 | if(vmain == 100) { | 396 | if(vmain == 100) { |
397 | if(!expecting) { | 397 | if(!expecting) { |
398 | myreadbuffer = _ifaceppp->data()->modemConnectResp(); | 398 | myreadbuffer = _ifaceppp->data()->modemConnectResp(); |
399 | setExpect("\n"); | 399 | setExpect("\n"); |
400 | vmain = 101; | 400 | vmain = 101; |
401 | return; | 401 | return; |
402 | } | 402 | } |
403 | 403 | ||
404 | if(readbuffer.contains(_ifaceppp->data()->modemBusyResp())) { | 404 | if(readbuffer.contains(_ifaceppp->data()->modemBusyResp())) { |
405 | timeout_timer->stop(); | 405 | timeout_timer->stop(); |
406 | timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); | 406 | timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); |
407 | 407 | ||
408 | messg->setText(i18n("Line busy. Hanging up...")); | 408 | messg->setText(i18n("Line busy. Hanging up...")); |
409 | emit debugPutChar('\n'); | 409 | emit debugPutChar('\n'); |
410 | _ifaceppp->modem()->hangup(); | 410 | _ifaceppp->modem()->hangup(); |
411 | 411 | ||
412 | if(_ifaceppp->data()->busyWait() > 0) { | 412 | if(_ifaceppp->data()->busyWait() > 0) { |
413 | QString bm = i18n("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait()); | 413 | QString bm = i18n("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait()); |
414 | messg->setText(bm); | 414 | messg->setText(bm); |
415 | emit debugMessage(bm); | 415 | emit debugMessage(bm); |
416 | 416 | ||
417 | pausing = true; | 417 | pausing = true; |
418 | 418 | ||
419 | pausetimer->start(_ifaceppp->data()->busyWait()*1000, true); | 419 | pausetimer->start(_ifaceppp->data()->busyWait()*1000, true); |
420 | timeout_timer->stop(); | 420 | timeout_timer->stop(); |
421 | } | 421 | } |
422 | 422 | ||
423 | _ifaceppp->modem()->setDataMode(false); | 423 | _ifaceppp->modem()->setDataMode(false); |
424 | vmain = 0; | 424 | vmain = 0; |
425 | substate = -1; | 425 | substate = -1; |
426 | return; | 426 | return; |
427 | } | 427 | } |
428 | 428 | ||
429 | if(readbuffer.contains(_ifaceppp->data()->modemNoDialtoneResp())) { | 429 | if(readbuffer.contains(_ifaceppp->data()->modemNoDialtoneResp())) { |
430 | timeout_timer->stop(); | 430 | timeout_timer->stop(); |
431 | 431 | ||
432 | messg->setText(i18n("No Dialtone")); | 432 | messg->setText(i18n("No Dialtone")); |
433 | vmain = 20; | 433 | vmain = 20; |
434 | _ifaceppp->modem()->unlockdevice(); | 434 | _ifaceppp->modem()->unlockdevice(); |
435 | return; | 435 | return; |
436 | } | 436 | } |
437 | 437 | ||
438 | if(readbuffer.contains(_ifaceppp->data()->modemNoCarrierResp())) { | 438 | if(readbuffer.contains(_ifaceppp->data()->modemNoCarrierResp())) { |
439 | timeout_timer->stop(); | 439 | timeout_timer->stop(); |
440 | 440 | ||
441 | messg->setText(i18n("No Carrier")); | 441 | messg->setText(i18n("No Carrier")); |
442 | vmain = 20; | 442 | vmain = 20; |
443 | _ifaceppp->modem()->unlockdevice(); | 443 | _ifaceppp->modem()->unlockdevice(); |
444 | return; | 444 | return; |
445 | } | 445 | } |
446 | } | 446 | } |
447 | 447 | ||
448 | // wait for newline after CONNECT response (so we get the speed) | 448 | // wait for newline after CONNECT response (so we get the speed) |
449 | if(vmain == 101) { | 449 | if(vmain == 101) { |
450 | if(!expecting) { | 450 | if(!expecting) { |
451 | _ifaceppp->modem()->setDataMode(true); // modem will no longer respond to AT commands | 451 | _ifaceppp->modem()->setDataMode(true); // modem will no longer respond to AT commands |
452 | 452 | ||
453 | emit startAccounting(); | 453 | emit startAccounting(); |
454 | // p_kppp->con_win->startClock(); | 454 | // p_kppp->con_win->startClock(); |
455 | 455 | ||
456 | vmain = 2; | 456 | vmain = 2; |
457 | scriptTimeout=_ifaceppp->data()->modemTimeout()*1000; | 457 | scriptTimeout=_ifaceppp->data()->modemTimeout()*1000; |
458 | return; | 458 | return; |
459 | } | 459 | } |
460 | } | 460 | } |
461 | 461 | ||
462 | // execute the script | 462 | // execute the script |
463 | if(vmain == 2) { | 463 | if(vmain == 2) { |
464 | if(!expecting && !pausing && !scanning) { | 464 | if(!expecting && !pausing && !scanning) { |
465 | 465 | ||
466 | timeout_timer->stop(); | 466 | timeout_timer->stop(); |
467 | timeout_timer->start(scriptTimeout); | 467 | timeout_timer->start(scriptTimeout); |
468 | 468 | ||
469 | if((unsigned) scriptindex < comlist->count()) { | 469 | if((unsigned) scriptindex < comlist->count()) { |
470 | scriptCommand = *(comlist->at(scriptindex)); | 470 | scriptCommand = *(comlist->at(scriptindex)); |
471 | scriptArgument = *(arglist->at(scriptindex)); | 471 | scriptArgument = *(arglist->at(scriptindex)); |
472 | } else { | 472 | } else { |
473 | qDebug( "End of script" ); | 473 | qDebug( "End of script" ); |
474 | vmain = 10; | 474 | vmain = 10; |
475 | return; | 475 | return; |
476 | } | 476 | } |
477 | 477 | ||
478 | if (scriptCommand == "Scan") { | 478 | if (scriptCommand == "Scan") { |
479 | QString bm = i18n("Scanning %1").arg(scriptArgument); | 479 | QString bm = i18n("Scanning %1").arg(scriptArgument); |
480 | messg->setText(bm); | 480 | messg->setText(bm); |
481 | emit debugMessage(bm); | 481 | emit debugMessage(bm); |
482 | 482 | ||
483 | setScan(scriptArgument); | 483 | setScan(scriptArgument); |
484 | scriptindex++; | 484 | scriptindex++; |
485 | return; | 485 | return; |
486 | } | 486 | } |
487 | 487 | ||
488 | if (scriptCommand == "Save") { | 488 | if (scriptCommand == "Save") { |
489 | QString bm = i18n("Saving %1").arg(scriptArgument); | 489 | QString bm = i18n("Saving %1").arg(scriptArgument); |
490 | messg->setText(bm); | 490 | messg->setText(bm); |
491 | emit debugMessage(bm); | 491 | emit debugMessage(bm); |
492 | 492 | ||
493 | if (scriptArgument.lower() == "password") { | 493 | if (scriptArgument.lower() == "password") { |
494 | _ifaceppp->data()->setPassword(scanvar); | 494 | _ifaceppp->data()->setPassword(scanvar); |
495 | // p_kppp->setPW_Edit(scanvar); | 495 | // p_kppp->setPW_Edit(scanvar); |
496 | if(_ifaceppp->data()->storePassword()) | 496 | if(_ifaceppp->data()->storePassword()) |
497 | _ifaceppp->data()->setStoredPassword(scanvar); | 497 | _ifaceppp->data()->setStoredPassword(scanvar); |
498 | firstrunPW = true; | 498 | firstrunPW = true; |
499 | } | 499 | } |
500 | 500 | ||
501 | scriptindex++; | 501 | scriptindex++; |
502 | return; | 502 | return; |
503 | } | 503 | } |
504 | 504 | ||
505 | 505 | ||
506 | if (scriptCommand == "Send" || scriptCommand == "SendNoEcho") { | 506 | if (scriptCommand == "Send" || scriptCommand == "SendNoEcho") { |
507 | QString bm = i18n("Sending %1"); | 507 | QString bm = i18n("Sending %1"); |
508 | 508 | ||
509 | // replace %USERNAME% and %PASSWORD% | 509 | // replace %USERNAME% and %PASSWORD% |
510 | QString arg = scriptArgument; | 510 | QString arg = scriptArgument; |
511 | QRegExp re1("%USERNAME%"); | 511 | QRegExp re1("%USERNAME%"); |
512 | QRegExp re2("%PASSWORD%"); | 512 | QRegExp re2("%PASSWORD%"); |
513 | arg = arg.replace(re1, _ifaceppp->data()->storedUsername()); | 513 | arg = arg.replace(re1, _ifaceppp->data()->storedUsername()); |
514 | arg = arg.replace(re2, _ifaceppp->data()->storedPassword()); | 514 | arg = arg.replace(re2, _ifaceppp->data()->storedPassword()); |
515 | 515 | ||
516 | if (scriptCommand == "Send") | 516 | if (scriptCommand == "Send") |
517 | bm = bm.arg(scriptArgument); | 517 | bm = bm.arg(scriptArgument); |
518 | else { | 518 | else { |
519 | for(uint i = 0; i < scriptArgument.length(); i++) | 519 | for(uint i = 0; i < scriptArgument.length(); i++) |
520 | bm = bm.arg("*"); | 520 | bm = bm.arg("*"); |
521 | } | 521 | } |
522 | 522 | ||
523 | messg->setText(bm); | 523 | messg->setText(bm); |
524 | emit debugMessage(bm); | 524 | emit debugMessage(bm); |
525 | 525 | ||
526 | writeline(scriptArgument); | 526 | writeline(scriptArgument); |
527 | scriptindex++; | 527 | scriptindex++; |
528 | return; | 528 | return; |
529 | } | 529 | } |
530 | 530 | ||
531 | if (scriptCommand == "Expect") { | 531 | if (scriptCommand == "Expect") { |
532 | QString bm = i18n("Expecting %1").arg(scriptArgument); | 532 | QString bm = i18n("Expecting %1").arg(scriptArgument); |
533 | messg->setText(bm); | 533 | messg->setText(bm); |
534 | emit debugMessage(bm); | 534 | emit debugMessage(bm); |
535 | 535 | ||
536 | // The incrementing of the scriptindex MUST be before the | 536 | // The incrementing of the scriptindex MUST be before the |
537 | // call to setExpect otherwise the expect will miss a string that is | 537 | // call to setExpect otherwise the expect will miss a string that is |
538 | // already in the buffer. | 538 | // already in the buffer. |
539 | scriptindex++; | 539 | scriptindex++; |
540 | setExpect(scriptArgument); | 540 | setExpect(scriptArgument); |
541 | return; | 541 | return; |
542 | } | 542 | } |
543 | 543 | ||
544 | 544 | ||
545 | if (scriptCommand == "Pause") { | 545 | if (scriptCommand == "Pause") { |
546 | QString bm = i18n("Pause %1 seconds").arg(scriptArgument); | 546 | QString bm = i18n("Pause %1 seconds").arg(scriptArgument); |
547 | messg->setText(bm); | 547 | messg->setText(bm); |
548 | emit debugMessage(bm); | 548 | emit debugMessage(bm); |
549 | 549 | ||
550 | pausing = true; | 550 | pausing = true; |
551 | 551 | ||
552 | pausetimer->start(scriptArgument.toInt()*1000, true); | 552 | pausetimer->start(scriptArgument.toInt()*1000, true); |
553 | timeout_timer->stop(); | 553 | timeout_timer->stop(); |
554 | 554 | ||
555 | scriptindex++; | 555 | scriptindex++; |
556 | return; | 556 | return; |
557 | } | 557 | } |
558 | 558 | ||
559 | if (scriptCommand == "Timeout") { | 559 | if (scriptCommand == "Timeout") { |
560 | 560 | ||
561 | timeout_timer->stop(); | 561 | timeout_timer->stop(); |
562 | 562 | ||
563 | QString bm = i18n("Timeout %1 seconds").arg(scriptArgument); | 563 | QString bm = i18n("Timeout %1 seconds").arg(scriptArgument); |
564 | messg->setText(bm); | 564 | messg->setText(bm); |
565 | emit debugMessage(bm); | 565 | emit debugMessage(bm); |
566 | 566 | ||
567 | scriptTimeout=scriptArgument.toInt()*1000; | 567 | scriptTimeout=scriptArgument.toInt()*1000; |
568 | timeout_timer->start(scriptTimeout); | 568 | timeout_timer->start(scriptTimeout); |
569 | 569 | ||
570 | scriptindex++; | 570 | scriptindex++; |
571 | return; | 571 | return; |
572 | } | 572 | } |
573 | 573 | ||
574 | if (scriptCommand == "Hangup") { | 574 | if (scriptCommand == "Hangup") { |
575 | messg->setText(i18n("Hangup")); | 575 | messg->setText(i18n("Hangup")); |
576 | emit debugMessage(i18n("Hangup")); | 576 | emit debugMessage(i18n("Hangup")); |
577 | 577 | ||
578 | writeline(_ifaceppp->data()->modemHangupStr()); | 578 | writeline(_ifaceppp->data()->modemHangupStr()); |
579 | setExpect(_ifaceppp->data()->modemHangupResp()); | 579 | setExpect(_ifaceppp->data()->modemHangupResp()); |
580 | 580 | ||
581 | scriptindex++; | 581 | scriptindex++; |
582 | return; | 582 | return; |
583 | } | 583 | } |
584 | 584 | ||
585 | if (scriptCommand == "Answer") { | 585 | if (scriptCommand == "Answer") { |
586 | 586 | ||
587 | timeout_timer->stop(); | 587 | timeout_timer->stop(); |
588 | 588 | ||
589 | messg->setText(i18n("Answer")); | 589 | messg->setText(i18n("Answer")); |
590 | emit debugMessage(i18n("Answer")); | 590 | emit debugMessage(i18n("Answer")); |
591 | 591 | ||
592 | setExpect(_ifaceppp->data()->modemRingResp()); | 592 | setExpect(_ifaceppp->data()->modemRingResp()); |
593 | vmain = 150; | 593 | vmain = 150; |
594 | return; | 594 | return; |
595 | } | 595 | } |
596 | 596 | ||
597 | if (scriptCommand == "ID") { | 597 | if (scriptCommand == "ID") { |
598 | QString bm = i18n("ID %1").arg(scriptArgument); | 598 | QString bm = i18n("ID %1").arg(scriptArgument); |
599 | messg->setText(bm); | 599 | messg->setText(bm); |
600 | emit debugMessage(bm); | 600 | emit debugMessage(bm); |
601 | 601 | ||
602 | QString idstring = _ifaceppp->data()->storedUsername(); | 602 | QString idstring = _ifaceppp->data()->password(); |
603 | 603 | ||
604 | if(!idstring.isEmpty() && firstrunID) { | 604 | if(!idstring.isEmpty() && firstrunID) { |
605 | // the user entered an Id on the main kppp dialog | 605 | // the user entered an Id on the main kppp dialog |
606 | writeline(idstring); | 606 | writeline(idstring); |
607 | firstrunID = false; | 607 | firstrunID = false; |
608 | scriptindex++; | 608 | scriptindex++; |
609 | } | 609 | } |
610 | else { | 610 | else { |
611 | // the user didn't enter and Id on the main kppp dialog | 611 | // the user didn't enter and Id on the main kppp dialog |
612 | // let's query for an ID | 612 | // let's query for an ID |
613 | /* if not around yet, then post window... */ | 613 | /* if not around yet, then post window... */ |
614 | if (prompt->Consumed()) { | 614 | if (prompt->Consumed()) { |
615 | if (!(prompt->isVisible())) { | 615 | if (!(prompt->isVisible())) { |
616 | prompt->setPrompt(scriptArgument); | 616 | prompt->setPrompt(scriptArgument); |
617 | prompt->setEchoModeNormal(); | 617 | prompt->setEchoModeNormal(); |
618 | prompt->show(); | 618 | prompt->show(); |
619 | } | 619 | } |
620 | } else { | 620 | } else { |
621 | /* if prompt withdrawn ... then, */ | 621 | /* if prompt withdrawn ... then, */ |
622 | if(!(prompt->isVisible())) { | 622 | if(!(prompt->isVisible())) { |
623 | writeline(prompt->text()); | 623 | writeline(prompt->text()); |
624 | prompt->setConsumed(); | 624 | prompt->setConsumed(); |
625 | scriptindex++; | 625 | scriptindex++; |
626 | return; | 626 | return; |
627 | } | 627 | } |
628 | /* replace timeout value */ | 628 | /* replace timeout value */ |
629 | } | 629 | } |
630 | } | 630 | } |
631 | } | 631 | } |
632 | 632 | ||
633 | if (scriptCommand == "Password") { | 633 | if (scriptCommand == "Password") { |
634 | QString bm = i18n("Password %1").arg(scriptArgument); | 634 | QString bm = i18n("Password %1").arg(scriptArgument); |
635 | messg->setText(bm); | 635 | messg->setText(bm); |
636 | emit debugMessage(bm); | 636 | emit debugMessage(bm); |
637 | 637 | ||
638 | QString pwstring = _ifaceppp->data()->password(); | 638 | QString pwstring = _ifaceppp->data()->password(); |
639 | 639 | ||
640 | if(!pwstring.isEmpty() && firstrunPW) { | 640 | if(!pwstring.isEmpty() && firstrunPW) { |
641 | // the user entered a password on the main kppp dialog | 641 | // the user entered a password on the main kppp dialog |
642 | writeline(pwstring); | 642 | writeline(pwstring); |
643 | firstrunPW = false; | 643 | firstrunPW = false; |
644 | scriptindex++; | 644 | scriptindex++; |
645 | } | 645 | } |
646 | else { | 646 | else { |
647 | // the user didn't enter a password on the main kppp dialog | 647 | // the user didn't enter a password on the main kppp dialog |
648 | // let's query for a password | 648 | // let's query for a password |
649 | /* if not around yet, then post window... */ | 649 | /* if not around yet, then post window... */ |
650 | if (prompt->Consumed()) { | 650 | if (prompt->Consumed()) { |
651 | if (!(prompt->isVisible())) { | 651 | if (!(prompt->isVisible())) { |
652 | prompt->setPrompt(scriptArgument); | 652 | prompt->setPrompt(scriptArgument); |
653 | prompt->setEchoModePassword(); | 653 | prompt->setEchoModePassword(); |
654 | prompt->show(); | 654 | prompt->show(); |
655 | } | 655 | } |
656 | } else { | 656 | } else { |
657 | /* if prompt withdrawn ... then, */ | 657 | /* if prompt withdrawn ... then, */ |
658 | if(!(prompt->isVisible())) { | 658 | if(!(prompt->isVisible())) { |
659 | // p_kppp->setPW_Edit(prompt->text()); | 659 | // p_kppp->setPW_Edit(prompt->text()); |
660 | writeline(prompt->text()); | 660 | writeline(prompt->text()); |
661 | prompt->setConsumed(); | 661 | prompt->setConsumed(); |
662 | scriptindex++; | 662 | scriptindex++; |
663 | return; | 663 | return; |
664 | } | 664 | } |
665 | /* replace timeout value */ | 665 | /* replace timeout value */ |
666 | } | 666 | } |
667 | } | 667 | } |
668 | } | 668 | } |
669 | 669 | ||
670 | if (scriptCommand == "Prompt") { | 670 | if (scriptCommand == "Prompt") { |
671 | QString bm = i18n("Prompting %1"); | 671 | QString bm = i18n("Prompting %1"); |
672 | 672 | ||
673 | // if the scriptindex (aka the prompt text) includes a ## marker | 673 | // if the scriptindex (aka the prompt text) includes a ## marker |
674 | // this marker should get substituted with the contents of our stored | 674 | // this marker should get substituted with the contents of our stored |
675 | // variable (from the subsequent scan). | 675 | // variable (from the subsequent scan). |
676 | 676 | ||
677 | QString ts = scriptArgument; | 677 | QString ts = scriptArgument; |
678 | int vstart = ts.find( "##" ); | 678 | int vstart = ts.find( "##" ); |
679 | if( vstart != -1 ) { | 679 | if( vstart != -1 ) { |
680 | ts.remove( vstart, 2 ); | 680 | ts.remove( vstart, 2 ); |
681 | ts.insert( vstart, scanvar ); | 681 | ts.insert( vstart, scanvar ); |
682 | } | 682 | } |
683 | 683 | ||
684 | bm = bm.arg(ts); | 684 | bm = bm.arg(ts); |
685 | messg->setText(bm); | 685 | messg->setText(bm); |
686 | emit debugMessage(bm); | 686 | emit debugMessage(bm); |
687 | 687 | ||
688 | /* if not around yet, then post window... */ | 688 | /* if not around yet, then post window... */ |
689 | if (prompt->Consumed()) { | 689 | if (prompt->Consumed()) { |
690 | if (!(prompt->isVisible())) { | 690 | if (!(prompt->isVisible())) { |
691 | prompt->setPrompt( ts ); | 691 | prompt->setPrompt( ts ); |
692 | prompt->setEchoModeNormal(); | 692 | prompt->setEchoModeNormal(); |
693 | prompt->show(); | 693 | prompt->show(); |
694 | } | 694 | } |
695 | } else { | 695 | } else { |
696 | /* if prompt withdrawn ... then, */ | 696 | /* if prompt withdrawn ... then, */ |
697 | if (!(prompt->isVisible())) { | 697 | if (!(prompt->isVisible())) { |
698 | writeline(prompt->text()); | 698 | writeline(prompt->text()); |
699 | prompt->setConsumed(); | 699 | prompt->setConsumed(); |
700 | scriptindex++; | 700 | scriptindex++; |
701 | return; | 701 | return; |
702 | } | 702 | } |
703 | /* replace timeout value */ | 703 | /* replace timeout value */ |
704 | } | 704 | } |
705 | } | 705 | } |
706 | 706 | ||
707 | if (scriptCommand == "PWPrompt") { | 707 | if (scriptCommand == "PWPrompt") { |
708 | QString bm = i18n("PW Prompt %1").arg(scriptArgument); | 708 | QString bm = i18n("PW Prompt %1").arg(scriptArgument); |
709 | messg->setText(bm); | 709 | messg->setText(bm); |
710 | emit debugMessage(bm); | 710 | emit debugMessage(bm); |
711 | 711 | ||
712 | /* if not around yet, then post window... */ | 712 | /* if not around yet, then post window... */ |
713 | if (prompt->Consumed()) { | 713 | if (prompt->Consumed()) { |
714 | if (!(prompt->isVisible())) { | 714 | if (!(prompt->isVisible())) { |
715 | prompt->setPrompt(scriptArgument); | 715 | prompt->setPrompt(scriptArgument); |
716 | prompt->setEchoModePassword(); | 716 | prompt->setEchoModePassword(); |
717 | prompt->show(); | 717 | prompt->show(); |
718 | } | 718 | } |
719 | } else { | 719 | } else { |
720 | /* if prompt withdrawn ... then, */ | 720 | /* if prompt withdrawn ... then, */ |
721 | if (!(prompt->isVisible())) { | 721 | if (!(prompt->isVisible())) { |
722 | writeline(prompt->text()); | 722 | writeline(prompt->text()); |
723 | prompt->setConsumed(); | 723 | prompt->setConsumed(); |
724 | scriptindex++; | 724 | scriptindex++; |
725 | return; | 725 | return; |
726 | } | 726 | } |
727 | /* replace timeout value */ | 727 | /* replace timeout value */ |
728 | } | 728 | } |
729 | } | 729 | } |
730 | 730 | ||
731 | if (scriptCommand == "LoopStart") { | 731 | if (scriptCommand == "LoopStart") { |
732 | 732 | ||
733 | QString bm = i18n("Loop Start %1").arg(scriptArgument); | 733 | QString bm = i18n("Loop Start %1").arg(scriptArgument); |
734 | 734 | ||
735 | // The incrementing of the scriptindex MUST be before the | 735 | // The incrementing of the scriptindex MUST be before the |
736 | // call to setExpect otherwise the expect will miss a string that is | 736 | // call to setExpect otherwise the expect will miss a string that is |
737 | // already in the buffer. | 737 | // already in the buffer. |
738 | scriptindex++; | 738 | scriptindex++; |
739 | 739 | ||
740 | if ( loopnest > (MAXLOOPNEST-2) ) { | 740 | if ( loopnest > (MAXLOOPNEST-2) ) { |
741 | bm += i18n("ERROR: Nested too deep, ignored."); | 741 | bm += i18n("ERROR: Nested too deep, ignored."); |
742 | vmain=20; | 742 | vmain=20; |
743 | cancelbutton(); | 743 | cancelbutton(); |
744 | QMessageBox::critical(0, "error", i18n("Loops nested too deeply!")); | 744 | QMessageBox::critical(0, "error", i18n("Loops nested too deeply!")); |
745 | } else { | 745 | } else { |
746 | setExpect(scriptArgument); | 746 | setExpect(scriptArgument); |
747 | loopstartindex[loopnest] = scriptindex; | 747 | loopstartindex[loopnest] = scriptindex; |
748 | loopstr[loopnest] = scriptArgument; | 748 | loopstr[loopnest] = scriptArgument; |
749 | loopend = false; | 749 | loopend = false; |
750 | loopnest++; | 750 | loopnest++; |
751 | } | 751 | } |
752 | messg->setText(bm); | 752 | messg->setText(bm); |
753 | emit debugMessage(bm); | 753 | emit debugMessage(bm); |
754 | 754 | ||
755 | } | 755 | } |
756 | 756 | ||
757 | if (scriptCommand == "LoopEnd") { | 757 | if (scriptCommand == "LoopEnd") { |
758 | QString bm = i18n("Loop End %1").arg(scriptArgument); | 758 | QString bm = i18n("Loop End %1").arg(scriptArgument); |
759 | if ( loopnest <= 0 ) { | 759 | if ( loopnest <= 0 ) { |
760 | bm = i18n("LoopEnd without matching Start! Line: %1").arg(bm); | 760 | bm = i18n("LoopEnd without matching Start! Line: %1").arg(bm); |
761 | vmain=20; | 761 | vmain=20; |
762 | cancelbutton(); | 762 | cancelbutton(); |
763 | QMessageBox::critical(0, "error", bm); | 763 | QMessageBox::critical(0, "error", bm); |
764 | return; | 764 | return; |
765 | } else { | 765 | } else { |
766 | // NB! The incrementing of the scriptindex MUST be before the | 766 | // NB! The incrementing of the scriptindex MUST be before the |
767 | // call to setExpect otherwise the expect will miss a string | 767 | // call to setExpect otherwise the expect will miss a string |
768 | // that is already in the buffer. | 768 | // that is already in the buffer. |
769 | scriptindex++; | 769 | scriptindex++; |
770 | setExpect(scriptArgument); | 770 | setExpect(scriptArgument); |
771 | loopnest--; | 771 | loopnest--; |
772 | loopend = true; | 772 | loopend = true; |
773 | } | 773 | } |
774 | messg->setText(bm); | 774 | messg->setText(bm); |
775 | emit debugMessage(bm); | 775 | emit debugMessage(bm); |
776 | 776 | ||
777 | } | 777 | } |
778 | } | 778 | } |
779 | } | 779 | } |
780 | 780 | ||
781 | // this is a subroutine for the "Answer" script option | 781 | // this is a subroutine for the "Answer" script option |
782 | 782 | ||
783 | if(vmain == 150) { | 783 | if(vmain == 150) { |
784 | if(!expecting) { | 784 | if(!expecting) { |
785 | writeline(_ifaceppp->data()->modemAnswerStr()); | 785 | writeline(_ifaceppp->data()->modemAnswerStr()); |
786 | setExpect(_ifaceppp->data()->modemAnswerResp()); | 786 | setExpect(_ifaceppp->data()->modemAnswerResp()); |
787 | 787 | ||
788 | vmain = 2; | 788 | vmain = 2; |
789 | scriptindex++; | 789 | scriptindex++; |
790 | return; | 790 | return; |
791 | } | 791 | } |
792 | } | 792 | } |
793 | 793 | ||
794 | if(vmain == 30) { | 794 | if(vmain == 30) { |
795 | // if (termwindow->isVisible()) | 795 | // if (termwindow->isVisible()) |
796 | // return; | 796 | // return; |
797 | // if (termwindow->pressedContinue()) | 797 | // if (termwindow->pressedContinue()) |
798 | // vmain = 10; | 798 | // vmain = 10; |
799 | // else | 799 | // else |
800 | cancelbutton(); | 800 | cancelbutton(); |
801 | } | 801 | } |
802 | 802 | ||
803 | if(vmain == 10) { | 803 | if(vmain == 10) { |
804 | if(!expecting) { | 804 | if(!expecting) { |
805 | 805 | ||
806 | int result; | 806 | int result; |
807 | 807 | ||
808 | timeout_timer->stop(); | 808 | timeout_timer->stop(); |
809 | if_timeout_timer->stop(); // better be sure. | 809 | if_timeout_timer->stop(); // better be sure. |
810 | 810 | ||
811 | // stop reading of data | 811 | // stop reading of data |
812 | _ifaceppp->modem()->stop(); | 812 | _ifaceppp->modem()->stop(); |
813 | 813 | ||
814 | if(_ifaceppp->data()->authMethod() == AUTH_TERMINAL) { | 814 | if(_ifaceppp->data()->authMethod() == AUTH_TERMINAL) { |
815 | // if (termwindow) { | 815 | // if (termwindow) { |
816 | // delete termwindow; | 816 | // delete termwindow; |
817 | // termwindow = 0L; | 817 | // termwindow = 0L; |
818 | // this->show(); | 818 | // this->show(); |
819 | // } else { | 819 | // } else { |
820 | // termwindow = new LoginTerm(0L, 0L); | 820 | // termwindow = new LoginTerm(0L, 0L); |
821 | // hide(); | 821 | // hide(); |
822 | // termwindow->show(); | 822 | // termwindow->show(); |
823 | // vmain = 30; | 823 | // vmain = 30; |
824 | // return; | 824 | // return; |
825 | // } | 825 | // } |
826 | } | 826 | } |
827 | 827 | ||
828 | // Close the tty. This prevents the QTimer::singleShot() in | 828 | // Close the tty. This prevents the QTimer::singleShot() in |
829 | // Modem::readtty() from re-enabling the socket notifier. | 829 | // Modem::readtty() from re-enabling the socket notifier. |
830 | // The port is still held open by the helper process. | 830 | // The port is still held open by the helper process. |
831 | _ifaceppp->modem()->closetty(); | 831 | _ifaceppp->modem()->closetty(); |
832 | 832 | ||
833 | killTimer( main_timer_ID ); | 833 | killTimer( main_timer_ID ); |
834 | 834 | ||
835 | if_timeout_timer->start(_ifaceppp->data()->pppdTimeout()*1000); | 835 | if_timeout_timer->start(_ifaceppp->data()->pppdTimeout()*1000); |
836 | qDebug( "started if timeout timer with %i", _ifaceppp->data()->pppdTimeout()*1000); | 836 | qDebug( "started if timeout timer with %i", _ifaceppp->data()->pppdTimeout()*1000); |
837 | 837 | ||
838 | // find out PPP interface and notify the stats module | 838 | // find out PPP interface and notify the stats module |
839 | // stats->setUnit(pppInterfaceNumber()); | 839 | // stats->setUnit(pppInterfaceNumber()); |
840 | 840 | ||
841 | qApp->flushX(); | 841 | qApp->flushX(); |
842 | semaphore = true; | 842 | semaphore = true; |
843 | result = execppp(); | 843 | result = execppp(); |
844 | 844 | ||
845 | emit debugMessage(i18n("Starting pppd...")); | 845 | emit debugMessage(i18n("Starting pppd...")); |
846 | qDebug("execppp() returned with return-code %i", result ); | 846 | qDebug("execppp() returned with return-code %i", result ); |
847 | 847 | ||
848 | if(result) { | 848 | if(result) { |
849 | if(!_ifaceppp->data()->autoDNS()) | 849 | if(!_ifaceppp->data()->autoDNS()) |
850 | adddns( _ifaceppp ); | 850 | adddns( _ifaceppp ); |
851 | 851 | ||
852 | // O.K we are done here, let's change over to the if_waiting loop | 852 | // O.K we are done here, let's change over to the if_waiting loop |
853 | // where we wait for the ppp if (interface) to come up. | 853 | // where we wait for the ppp if (interface) to come up. |
854 | 854 | ||
855 | emit if_waiting_signal(); | 855 | emit if_waiting_signal(); |
856 | } else { | 856 | } else { |
857 | 857 | ||
858 | // starting pppd wasn't successful. Error messages were | 858 | // starting pppd wasn't successful. Error messages were |
diff --git a/noncore/settings/networksettings/ppp/interfaceppp.cpp b/noncore/settings/networksettings/ppp/interfaceppp.cpp index 98bb4da..85ddbee 100644 --- a/noncore/settings/networksettings/ppp/interfaceppp.cpp +++ b/noncore/settings/networksettings/ppp/interfaceppp.cpp | |||
@@ -1,140 +1,141 @@ | |||
1 | 1 | ||
2 | #include <qmessagebox.h> | 2 | #include <qmessagebox.h> |
3 | #define i18n QObject::tr | 3 | #define i18n QObject::tr |
4 | 4 | ||
5 | #include "auth.h" | 5 | #include "auth.h" |
6 | #include "interfaceppp.h" | 6 | #include "interfaceppp.h" |
7 | #include "modem.h" | 7 | #include "modem.h" |
8 | #include "pppdata.h" | 8 | #include "pppdata.h" |
9 | 9 | ||
10 | InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) | 10 | InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) |
11 | : Interface(parent, name, status), | 11 | : Interface(parent, name, status), |
12 | _modemPtr(0), | 12 | _modemPtr(0), |
13 | _dataPtr(0) | 13 | _dataPtr(0) |
14 | { | 14 | { |
15 | qDebug("InterfacePPP::InterfacePPP("); | 15 | qDebug("InterfacePPP::InterfacePPP("); |
16 | } | 16 | } |
17 | 17 | ||
18 | PPPData* InterfacePPP::data() | 18 | PPPData* InterfacePPP::data() |
19 | { | 19 | { |
20 | if (!_dataPtr){ | 20 | if (!_dataPtr){ |
21 | qDebug("creating new Data obj"); | 21 | qDebug("creating new Data obj"); |
22 | _dataPtr = new PPPData(); | 22 | _dataPtr = new PPPData(); |
23 | _dataPtr->setModemDevice( getInterfaceName() ); | 23 | _dataPtr->setModemDevice( getInterfaceName() ); |
24 | _dataPtr->setAccount( getHardwareName() ); | 24 | _dataPtr->setAccount( getHardwareName() ); |
25 | } | 25 | } |
26 | return _dataPtr; | 26 | return _dataPtr; |
27 | } | 27 | } |
28 | 28 | ||
29 | Modem* InterfacePPP::modem() | 29 | Modem* InterfacePPP::modem() |
30 | { | 30 | { |
31 | if (!_modemPtr){ | 31 | if (!_modemPtr){ |
32 | qDebug("creating new modem obj"); | 32 | qDebug("creating new modem obj"); |
33 | _modemPtr = new Modem( data() ); | 33 | _modemPtr = new Modem( data() ); |
34 | } | 34 | } |
35 | return _modemPtr; | 35 | return _modemPtr; |
36 | } | 36 | } |
37 | 37 | ||
38 | bool InterfacePPP::refresh() | 38 | bool InterfacePPP::refresh() |
39 | { | 39 | { |
40 | qDebug("InterfacePPP::refresh()"); | 40 | qDebug("InterfacePPP::refresh()"); |
41 | QMessageBox::information(0,"Not Implemented","This feature is not yet implemneted... ;-("); | 41 | QMessageBox::information(0,"Not Implemented","This feature is not yet implemneted... ;-("); |
42 | return false; | 42 | return false; |
43 | } | 43 | } |
44 | 44 | ||
45 | void InterfacePPP::start() | 45 | void InterfacePPP::start() |
46 | { | 46 | { |
47 | qDebug("InterfacePPP::start"); | 47 | qDebug("InterfacePPP::start"); |
48 | if (data()->password().isEmpty() ){ | 48 | // should work... |
49 | //FIXME: ask for password | 49 | // if (data()->password().isEmpty() ){ |
50 | qDebug("using dummy password"); | 50 | // //FIXME: ask for password |
51 | QMessageBox::critical( 0, "no password", "you should be prompted for a password, but you are not! ;-)"); | 51 | // qDebug("using dummy password"); |
52 | } | 52 | // QMessageBox::critical( 0, "no password", "you should be prompted for a password, but you are not! ;-)"); |
53 | // } | ||
53 | 54 | ||
54 | 55 | ||
55 | QFileInfo info(pppdPath()); | 56 | QFileInfo info(pppdPath()); |
56 | 57 | ||
57 | if(!info.exists()){ | 58 | if(!info.exists()){ |
58 | QMessageBox::warning(0, tr("Error"), | 59 | QMessageBox::warning(0, tr("Error"), |
59 | i18n("<qt>Cannot find the PPP daemon!<br>" | 60 | i18n("<qt>Cannot find the PPP daemon!<br>" |
60 | "Make sure that pppd is installed and " | 61 | "Make sure that pppd is installed and " |
61 | "that you have entered the correct path.</qt>")); | 62 | "that you have entered the correct path.</qt>")); |
62 | return; | 63 | return; |
63 | } | 64 | } |
64 | //#if 0 | 65 | //#if 0 |
65 | if(!info.isExecutable()){ | 66 | if(!info.isExecutable()){ |
66 | 67 | ||
67 | QString string; | 68 | QString string; |
68 | string = i18n( "<qt>Cannot execute:<br> %1<br>" | 69 | string = i18n( "<qt>Cannot execute:<br> %1<br>" |
69 | "Please make sure that you have given " | 70 | "Please make sure that you have given " |
70 | "setuid permission and that " | 71 | "setuid permission and that " |
71 | "pppd is executable.<br>").arg(pppdPath()); | 72 | "pppd is executable.<br>").arg(pppdPath()); |
72 | QMessageBox::warning(0, tr("Error"), string); | 73 | QMessageBox::warning(0, tr("Error"), string); |
73 | return; | 74 | return; |
74 | 75 | ||
75 | } | 76 | } |
76 | //#endif | 77 | //#endif |
77 | 78 | ||
78 | QFileInfo info2(data()->modemDevice()); | 79 | QFileInfo info2(data()->modemDevice()); |
79 | 80 | ||
80 | if(!info2.exists()){ | 81 | if(!info2.exists()){ |
81 | QString string; | 82 | QString string; |
82 | string = i18n( "<qt>Cannot find:<br> %1<br>" | 83 | string = i18n( "<qt>Cannot find:<br> %1<br>" |
83 | "Please make sure you have setup " | 84 | "Please make sure you have setup " |
84 | "your modem device properly " | 85 | "your modem device properly " |
85 | "and/or adjust the location of the modem device on " | 86 | "and/or adjust the location of the modem device on " |
86 | "the modem tab of " | 87 | "the modem tab of " |
87 | "the setup dialog.</qt>").arg(data()->modemDevice()); | 88 | "the setup dialog.</qt>").arg(data()->modemDevice()); |
88 | QMessageBox::warning(0, tr("Error"), string); | 89 | QMessageBox::warning(0, tr("Error"), string); |
89 | return; | 90 | return; |
90 | } | 91 | } |
91 | 92 | ||
92 | // if this is a PAP or CHAP account, ensure that username is | 93 | // if this is a PAP or CHAP account, ensure that username is |
93 | // supplied | 94 | // supplied |
94 | if(data()->authMethod() == AUTH_PAP || | 95 | if(data()->authMethod() == AUTH_PAP || |
95 | data()->authMethod() == AUTH_CHAP || | 96 | data()->authMethod() == AUTH_CHAP || |
96 | data()->authMethod() == AUTH_PAPCHAP ) { | 97 | data()->authMethod() == AUTH_PAPCHAP ) { |
97 | if(false){ //FIXME: ID_Edit->text().isEmpty()) { | 98 | if(false){ //FIXME: ID_Edit->text().isEmpty()) { |
98 | QMessageBox::warning(0,tr("Error"), | 99 | QMessageBox::warning(0,tr("Error"), |
99 | i18n("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); | 100 | i18n("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); |
100 | // FIXME: return; | 101 | // FIXME: return; |
101 | } else { | 102 | } else { |
102 | if(!modem()->setSecret(data()->authMethod(), | 103 | if(!modem()->setSecret(data()->authMethod(), |
103 | PPPData::encodeWord(data()->storedUsername()), | 104 | PPPData::encodeWord(data()->storedUsername()), |
104 | PPPData::encodeWord(data()->password())) | 105 | PPPData::encodeWord(data()->password())) |
105 | ) { | 106 | ) { |
106 | QString s; | 107 | QString s; |
107 | s = i18n("<qt>Cannot create PAP/CHAP authentication<br>" | 108 | s = i18n("<qt>Cannot create PAP/CHAP authentication<br>" |
108 | "file \"%1\"</qt>").arg(PAP_AUTH_FILE); | 109 | "file \"%1\"</qt>").arg(PAP_AUTH_FILE); |
109 | QMessageBox::warning(0, tr("Error"), s); | 110 | QMessageBox::warning(0, tr("Error"), s); |
110 | return; | 111 | return; |
111 | } | 112 | } |
112 | } | 113 | } |
113 | } | 114 | } |
114 | 115 | ||
115 | if (data()->phonenumber().isEmpty()) { | 116 | if (data()->phonenumber().isEmpty()) { |
116 | QString s = i18n("You must specify a telephone number!"); | 117 | QString s = i18n("You must specify a telephone number!"); |
117 | QMessageBox::warning(0, tr("Error"), s); | 118 | QMessageBox::warning(0, tr("Error"), s); |
118 | return; | 119 | return; |
119 | } | 120 | } |
120 | 121 | ||
121 | // SEGFAULTS: | 122 | // SEGFAULTS: |
122 | // setStatus( true ); | 123 | // setStatus( true ); |
123 | // emit updateInterface((Interface*) this); | 124 | // emit updateInterface((Interface*) this); |
124 | 125 | ||
125 | emit begin_connect(); | 126 | emit begin_connect(); |
126 | 127 | ||
127 | qDebug("InterfacePPP::start END"); | 128 | qDebug("InterfacePPP::start END"); |
128 | } | 129 | } |
129 | 130 | ||
130 | void InterfacePPP::stop() | 131 | void InterfacePPP::stop() |
131 | { | 132 | { |
132 | qDebug("InterfacePPP::stop"); | 133 | qDebug("InterfacePPP::stop"); |
133 | 134 | ||
134 | } | 135 | } |
135 | 136 | ||
136 | void InterfacePPP::save() | 137 | void InterfacePPP::save() |
137 | { | 138 | { |
138 | data()->save(); | 139 | data()->save(); |
139 | emit updateInterface((Interface*) this); | 140 | emit updateInterface((Interface*) this); |
140 | } | 141 | } |