summaryrefslogtreecommitdiff
authorzecke <zecke>2004-10-14 01:44:27 (UTC)
committer zecke <zecke>2004-10-14 01:44:27 (UTC)
commit474150327729d63706b89a54414ead68acd83fc9 (patch) (unidiff)
tree633f60754361699393e484c4ef774947f46aafa8
parenta1aed5edd5ccef77d79ccdd2d74f5c029d037617 (diff)
downloadopie-474150327729d63706b89a54414ead68acd83fc9.zip
opie-474150327729d63706b89a54414ead68acd83fc9.tar.gz
opie-474150327729d63706b89a54414ead68acd83fc9.tar.bz2
-FlowControl and LineTermination are saved and activated by numerical
value now. This makes it work across different translations -Switch code to use new PPPData::enter() and PPPData::flowcontrol()
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/ppp/connect.cpp4
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp34
-rw-r--r--noncore/settings/networksettings/ppp/general.h4
-rw-r--r--noncore/settings/networksettings/ppp/modem.cpp16
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.cpp12
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.h19
6 files changed, 45 insertions, 44 deletions
diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp
index 128877a..8981e01 100644
--- a/noncore/settings/networksettings/ppp/connect.cpp
+++ b/noncore/settings/networksettings/ppp/connect.cpp
@@ -1170,98 +1170,98 @@ void ConnectWidget::if_waiting_slot() {
1170 _ifaceppp->modem()->closetty(); 1170 _ifaceppp->modem()->closetty();
1171} 1171}
1172 1172
1173void ConnectWidget::refresh() { 1173void ConnectWidget::refresh() {
1174 _ifaceppp->refresh(); 1174 _ifaceppp->refresh();
1175 if ( _ifaceppp->getStatus() ) { 1175 if ( _ifaceppp->getStatus() ) {
1176 messg->setText(QObject::tr("Online")); 1176 messg->setText(QObject::tr("Online"));
1177 } else { 1177 } else {
1178 messg->setText(QObject::tr("Offline")); 1178 messg->setText(QObject::tr("Offline"));
1179 } 1179 }
1180} 1180}
1181 1181
1182 1182
1183bool ConnectWidget::execppp() { 1183bool ConnectWidget::execppp() {
1184 QString command; 1184 QString command;
1185 1185
1186 command = "pppd"; 1186 command = "pppd";
1187 1187
1188 // as of version 2.3.6 pppd falls back to the real user rights when 1188 // as of version 2.3.6 pppd falls back to the real user rights when
1189 // opening a device given in a command line. To avoid permission conflicts 1189 // opening a device given in a command line. To avoid permission conflicts
1190 // we'll simply leave this argument away. pppd will then use the default tty 1190 // we'll simply leave this argument away. pppd will then use the default tty
1191 // which is the serial port we connected stdin/stdout to in opener.cpp. 1191 // which is the serial port we connected stdin/stdout to in opener.cpp.
1192 // command += " "; 1192 // command += " ";
1193 // command += _ifaceppp->data()->modemDevice(); 1193 // command += _ifaceppp->data()->modemDevice();
1194 1194
1195 command += " " + _ifaceppp->data()->speed(); 1195 command += " " + _ifaceppp->data()->speed();
1196 1196
1197 command += " -detach"; 1197 command += " -detach";
1198 1198
1199 if(_ifaceppp->data()->ipaddr() != "0.0.0.0" || 1199 if(_ifaceppp->data()->ipaddr() != "0.0.0.0" ||
1200 _ifaceppp->data()->gateway() != "0.0.0.0") { 1200 _ifaceppp->data()->gateway() != "0.0.0.0") {
1201 if(_ifaceppp->data()->ipaddr() != "0.0.0.0") { 1201 if(_ifaceppp->data()->ipaddr() != "0.0.0.0") {
1202 command += " "; 1202 command += " ";
1203 command += _ifaceppp->data()->ipaddr(); 1203 command += _ifaceppp->data()->ipaddr();
1204 command += ":"; 1204 command += ":";
1205 } 1205 }
1206 else { 1206 else {
1207 command += " "; 1207 command += " ";
1208 command += ":"; 1208 command += ":";
1209 } 1209 }
1210 1210
1211 if(_ifaceppp->data()->gateway() != "0.0.0.0") 1211 if(_ifaceppp->data()->gateway() != "0.0.0.0")
1212 command += _ifaceppp->data()->gateway(); 1212 command += _ifaceppp->data()->gateway();
1213 } 1213 }
1214 1214
1215 if(_ifaceppp->data()->subnetmask() != "0.0.0.0") 1215 if(_ifaceppp->data()->subnetmask() != "0.0.0.0")
1216 command += " netmask " + _ifaceppp->data()->subnetmask(); 1216 command += " netmask " + _ifaceppp->data()->subnetmask();
1217 1217
1218 if(_ifaceppp->data()->flowcontrol() != "None") { 1218 if(_ifaceppp->data()->flowcontrol() != PPPData::FlowNone) {
1219 if(_ifaceppp->data()->flowcontrol() == "CRTSCTS") 1219 if(_ifaceppp->data()->flowcontrol() == PPPData::FlowHardware)
1220 command += " crtscts"; 1220 command += " crtscts";
1221 else 1221 else
1222 command += " xonxoff"; 1222 command += " xonxoff";
1223 } 1223 }
1224 1224
1225 if(_ifaceppp->data()->defaultroute()) 1225 if(_ifaceppp->data()->defaultroute())
1226 command += " defaultroute"; 1226 command += " defaultroute";
1227 1227
1228 if(_ifaceppp->data()->autoDNS()) 1228 if(_ifaceppp->data()->autoDNS())
1229 command += " usepeerdns"; 1229 command += " usepeerdns";
1230 1230
1231 1231
1232 // PAP settings 1232 // PAP settings
1233 if(_ifaceppp->data()->authMethod() == AUTH_PAP) { 1233 if(_ifaceppp->data()->authMethod() == AUTH_PAP) {
1234 command += " -chap user "; 1234 command += " -chap user ";
1235 command = command + _ifaceppp->data()->storedUsername(); 1235 command = command + _ifaceppp->data()->storedUsername();
1236 } 1236 }
1237 1237
1238 // CHAP settings 1238 // CHAP settings
1239 if(_ifaceppp->data()->authMethod() == AUTH_CHAP) { 1239 if(_ifaceppp->data()->authMethod() == AUTH_CHAP) {
1240 command += " -pap user "; 1240 command += " -pap user ";
1241 command = command + _ifaceppp->data()->storedUsername(); 1241 command = command + _ifaceppp->data()->storedUsername();
1242 } 1242 }
1243 1243
1244 // PAP/CHAP settings 1244 // PAP/CHAP settings
1245 if(_ifaceppp->data()->authMethod() == AUTH_PAPCHAP) { 1245 if(_ifaceppp->data()->authMethod() == AUTH_PAPCHAP) {
1246 QString tmpName = _ifaceppp->data()->storedUsername(); 1246 QString tmpName = _ifaceppp->data()->storedUsername();
1247 if ( !tmpName.isEmpty() ) { 1247 if ( !tmpName.isEmpty() ) {
1248 command += " user "; 1248 command += " user ";
1249 command = command + tmpName; 1249 command = command + tmpName;
1250 } 1250 }
1251 } 1251 }
1252 1252
1253 // check for debug 1253 // check for debug
1254 if(_ifaceppp->data()->getPPPDebug()) 1254 if(_ifaceppp->data()->getPPPDebug())
1255 command += " debug"; 1255 command += " debug";
1256 1256
1257 QStringList &arglist = _ifaceppp->data()->pppdArgument(); 1257 QStringList &arglist = _ifaceppp->data()->pppdArgument();
1258 for ( QStringList::Iterator it = arglist.begin(); 1258 for ( QStringList::Iterator it = arglist.begin();
1259 it != arglist.end(); 1259 it != arglist.end();
1260 ++it ) 1260 ++it )
1261 { 1261 {
1262 command += " " + *it; 1262 command += " " + *it;
1263 } 1263 }
1264 1264
1265 command += " call opie-kppp logfd 11"; 1265 command += " call opie-kppp logfd 11";
1266 1266
1267 if (command.length() > MAX_CMDLEN) { 1267 if (command.length() > MAX_CMDLEN) {
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index 5e2a04f..9457173 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -147,273 +147,259 @@ ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
147 tl->addWidget(baud_label, 4, 0); 147 tl->addWidget(baud_label, 4, 0);
148 baud_c = new QComboBox(this); 148 baud_c = new QComboBox(this);
149 baud_label->setBuddy(baud_c); 149 baud_label->setBuddy(baud_c);
150 150
151 static const char *baudrates[] = 151 static const char *baudrates[] =
152 { 152 {
153 153
154#ifdef B460800 154#ifdef B460800
155 "460800", 155 "460800",
156#endif 156#endif
157 157
158#ifdef B230400 158#ifdef B230400
159 "230400", 159 "230400",
160#endif 160#endif
161 161
162#ifdef B115200 162#ifdef B115200
163 "115200", 163 "115200",
164#endif 164#endif
165 165
166#ifdef B57600 166#ifdef B57600
167 "57600", 167 "57600",
168#endif 168#endif
169 169
170 "38400", 170 "38400",
171 "19200", 171 "19200",
172 "9600", 172 "9600",
173 "2400", 173 "2400",
174 0 174 0
175 }; 175 };
176 176
177 for(k = 0; baudrates[k]; k++) 177 for(k = 0; baudrates[k]; k++)
178 baud_c->insertItem(baudrates[k]); 178 baud_c->insertItem(baudrates[k]);
179 179
180 baud_c->setCurrentItem(3); 180 baud_c->setCurrentItem(3);
181 // connect(baud_c, SIGNAL(activated(int)), 181 // connect(baud_c, SIGNAL(activated(int)),
182 // this, SLOT(speed_selection(int))); 182 // this, SLOT(speed_selection(int)));
183 tl->addWidget(baud_c, 4, 1); 183 tl->addWidget(baud_c, 4, 1);
184 184
185 tmp = tr("Specifies the speed your modem and the serial\n" 185 tmp = tr("Specifies the speed your modem and the serial\n"
186 "port talk to each other. You should begin with\n" 186 "port talk to each other. You should begin with\n"
187 "the default of 38400 bits/sec. If everything\n" 187 "the default of 38400 bits/sec. If everything\n"
188 "works you can try to increase this value, but to\n" 188 "works you can try to increase this value, but to\n"
189 "no more than 115200 bits/sec (unless you know\n" 189 "no more than 115200 bits/sec (unless you know\n"
190 "that your serial port supports higher speeds)."); 190 "that your serial port supports higher speeds).");
191 191
192 QWhatsThis::add(baud_label,tmp); 192 QWhatsThis::add(baud_label,tmp);
193 QWhatsThis::add(baud_c,tmp); 193 QWhatsThis::add(baud_c,tmp);
194 194
195 for(int i=0; i <= enter->count()-1; i++)
196 {
197 if(_pppdata->enter() == enter->text(i))
198 enter->setCurrentItem(i);
199 }
200
201 tl->addRowSpacing(5, 10); 195 tl->addRowSpacing(5, 10);
202 196
203 //Modem Lock File 197 //Modem Lock File
204 modemlockfile = new QCheckBox(tr("&Use lock file"), this); 198 modemlockfile = new QCheckBox(tr("&Use lock file"), this);
205
206 modemlockfile->setChecked(_pppdata->modemLockFile()); 199 modemlockfile->setChecked(_pppdata->modemLockFile());
207 // connect(modemlockfile, SIGNAL(toggled(bool)), 200 // connect(modemlockfile, SIGNAL(toggled(bool)),
208 // SLOT(modemlockfilechanged(bool))); 201 // SLOT(modemlockfilechanged(bool)));
209 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); 202 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
210 // l12->addStretch(1); 203 // l12->addStretch(1);
211 QWhatsThis::add(modemlockfile, 204 QWhatsThis::add(modemlockfile,
212 tr("<p>To prevent other programs from accessing the\n" 205 tr("<p>To prevent other programs from accessing the\n"
213 "modem while a connection is established, a\n" 206 "modem while a connection is established, a\n"
214 "file can be created to indicate that the modem\n" 207 "file can be created to indicate that the modem\n"
215 "is in use. On Linux an example file would be\n" 208 "is in use. On Linux an example file would be\n"
216 "<tt>/var/lock/LCK..ttyS1</tt>\n" 209 "<tt>/var/lock/LCK..ttyS1</tt>\n"
217 "Here you can select whether this locking will\n" 210 "Here you can select whether this locking will\n"
218 "be done.\n" 211 "be done.\n"
219 "\n" 212 "\n"
220 "<b>Default</b>: On")); 213 "<b>Default</b>: On"));
221 214
222 // Modem Timeout Line Edit Box 215 // Modem Timeout Line Edit Box
223 QHBoxLayout *timeoutLayout = new QHBoxLayout( this ); 216 QHBoxLayout *timeoutLayout = new QHBoxLayout( this );
224 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); 217 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" );
225 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); 218 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" );
226 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); 219 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this);
227 // modemtimeout->setLabel(tr("Modem &timeout:")); 220 // modemtimeout->setLabel(tr("Modem &timeout:"));
228 // modemtimeout->setRange(1, 120, 1); 221 // modemtimeout->setRange(1, 120, 1);
229 modemtimeout->setSuffix(tr(" sec")); 222 modemtimeout->setSuffix(tr(" sec"));
230 modemtimeout->setValue( _pppdata->modemTimeout() ); 223 modemtimeout->setValue( _pppdata->modemTimeout() );
231 // connect(modemtimeout, SIGNAL(valueChanged(int)), 224 // connect(modemtimeout, SIGNAL(valueChanged(int)),
232 // SLOT(modemtimeoutchanged(int))); 225 // SLOT(modemtimeoutchanged(int)));
233 timeoutLayout->addWidget(timeoutlabel); 226 timeoutLayout->addWidget(timeoutlabel);
234 timeoutLayout->addWidget(modemtimeout); 227 timeoutLayout->addWidget(modemtimeout);
235 tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1); 228 tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1);
236 229
237 QWhatsThis::add(modemtimeout, 230 QWhatsThis::add(modemtimeout,
238 tr("This specifies how long <i>kppp</i> waits for a\n" 231 tr("This specifies how long <i>kppp</i> waits for a\n"
239 "<i>CONNECT</i> response from your modem. The\n" 232 "<i>CONNECT</i> response from your modem. The\n"
240 "recommended value is 30 seconds.")); 233 "recommended value is 30 seconds."));
241 234
242 //set stuff from gpppdata 235 //set stuff from gpppdata
243 for(int i=0; i <= enter->count()-1; i++) 236 enter->setCurrentItem( static_cast<int>(_pppdata->enter()) );
244 { 237 flowcontrol->setCurrentItem( static_cast<int>( _pppdata->flowcontrol() ) );
245 if(_pppdata->enter() == enter->text(i))
246 enter->setCurrentItem(i);
247 }
248 238
249 for(int i=0; i <= modemdevice->count()-1; i++) 239 for(int i=0; i <= modemdevice->count()-1; i++)
250 { 240 {
251 if(_pppdata->modemDevice() == modemdevice->text(i)) 241 if(_pppdata->modemDevice() == modemdevice->text(i))
252 modemdevice->setCurrentItem(i); 242 modemdevice->setCurrentItem(i);
253 } 243 }
254 244
255 for(int i=0; i <= flowcontrol->count()-1; i++)
256 {
257 if(_pppdata->flowcontrol() == flowcontrol->text(i))
258 flowcontrol->setCurrentItem(i);
259 }
260
261 //set the modem speed 245 //set the modem speed
262 for(int i=0; i < baud_c->count(); i++) 246 for(int i=0; i < baud_c->count(); i++)
263 if(baud_c->text(i) == _pppdata->speed()) 247 if(baud_c->text(i) == _pppdata->speed())
264 baud_c->setCurrentItem(i); 248 baud_c->setCurrentItem(i);
265 249
266 tl->setRowStretch(1, 1); 250 tl->setRowStretch(1, 1);
267} 251}
268 252
269ModemWidget::~ModemWidget() 253ModemWidget::~ModemWidget()
270{ 254{
271 QStringList devs; 255 QStringList devs;
272 256
273 for (int i=0;i<modemdevice->count();i++) 257 for (int i=0;i<modemdevice->count();i++)
274 { 258 {
275 QString s = modemdevice->text(i); 259 QString s = modemdevice->text(i);
276 s.simplifyWhiteSpace(); 260 s.simplifyWhiteSpace();
277 if (! s.isEmpty() ) devs << s; 261 if (! s.isEmpty() ) devs << s;
278 } 262 }
279 263
280 264
281 QString edited = modemdevice->currentText(); 265 QString edited = modemdevice->currentText();
282 if ( !( edited ).isEmpty() ) 266 if ( !( edited ).isEmpty() )
283 { 267 {
284 edited.simplifyWhiteSpace(); 268 edited.simplifyWhiteSpace();
285 if ( devs.contains( edited ) == 0 ) 269 if ( devs.contains( edited ) == 0 )
286 { 270 {
287 devs << edited; 271 devs << edited;
288 } 272 }
289 } 273 }
290 274
291 275
292 Config cfg("NetworkSetupPPP"); 276 Config cfg("NetworkSetupPPP");
293 cfg.setGroup("Devices_General"); 277 cfg.setGroup("Devices_General");
294 cfg.writeEntry("devices",devs,','); 278 cfg.writeEntry("devices",devs,',');
295 279
296} 280}
297 281
298// void ModemWidget::speed_selection(int) { 282// void ModemWidget::speed_selection(int) {
299// _pppdata->setSpeed(baud_c->text(baud_c->currentItem())); 283// _pppdata->setSpeed(baud_c->text(baud_c->currentItem()));
300// } 284// }
301 285
302 286
303// void ModemWidget::setenter(int ) { 287// void ModemWidget::setenter(int ) {
304// _pppdata->setEnter(enter->text(enter->currentItem())); 288// _pppdata->setEnter(enter->text(enter->currentItem()));
305// } 289// }
306 290
307 291
308// void ModemWidget::setmodemdc(int i) { 292// void ModemWidget::setmodemdc(int i) {
309// _pppdata->setModemDevice(modemdevice->text(i)); 293// _pppdata->setModemDevice(modemdevice->text(i));
310// } 294// }
311 295
312// void ModemWidget::setmodemdc( const QString &string ) { 296// void ModemWidget::setmodemdc( const QString &string ) {
313// _pppdata->setModemDevice( string ); 297// _pppdata->setModemDevice( string );
314// } 298// }
315 299
316// void ModemWidget::setflowcontrol(int i) { 300// void ModemWidget::setflowcontrol(int i) {
317// _pppdata->setFlowcontrol(flowcontrol->text(i)); 301// _pppdata->setFlowcontrol(flowcontrol->text(i));
318// } 302// }
319 303
320 304
321// void ModemWidget::modemlockfilechanged(bool set) { 305// void ModemWidget::modemlockfilechanged(bool set) {
322// _pppdata->setModemLockFile(set); 306// _pppdata->setModemLockFile(set);
323// } 307// }
324 308
325 309
326// void ModemWidget::modemtimeoutchanged(int n) { 310// void ModemWidget::modemtimeoutchanged(int n) {
327// _pppdata->setModemTimeout(n); 311// _pppdata->setModemTimeout(n);
328// } 312// }
329 313
330 314
331 315
332bool ModemWidget::save() 316bool ModemWidget::save()
333{ 317{
334 //first check to make sure that the device name is unique! 318 //first check to make sure that the device name is unique!
335 if(modemname->text().isEmpty() || 319 if(modemname->text().isEmpty() ||
336 !_pppdata->isUniqueDevname(modemname->text())) 320 !_pppdata->isUniqueDevname(modemname->text()))
337 return false; 321 return false;
338 322
339 _pppdata->setDevname( modemname->text() ); 323 _pppdata->setDevname( modemname->text() );
340 _pppdata->setModemDevice( modemdevice->currentText() ); 324 _pppdata->setModemDevice( modemdevice->currentText() );
341 _pppdata->setFlowcontrol(flowcontrol->currentText()); 325 _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
342 _pppdata->setFlowcontrol(flowcontrol->currentText()); 326 _pppdata->setEnter( static_cast<PPPData::LineTermination>(enter->currentItem()));
343 _pppdata->setSpeed(baud_c->currentText()); 327 _pppdata->setSpeed(baud_c->currentText());
344 _pppdata->setModemLockFile( modemlockfile->isChecked()); 328 _pppdata->setModemLockFile( modemlockfile->isChecked());
345 _pppdata->setModemTimeout( modemtimeout->value() ); 329 _pppdata->setModemTimeout( modemtimeout->value() );
346 return true; 330 return true;
347 331
348} 332}
349 333
350void ModemWidget::slotBeforeModemQuery() 334void ModemWidget::slotBeforeModemQuery()
351{ 335{
352 m_oldModemDev = _pppdata->modemDevice(); 336 m_oldModemDev = _pppdata->modemDevice();
353 m_oldFlowControl = _pppdata->flowcontrol(); 337 m_oldFlowControl = static_cast<int>( _pppdata->flowcontrol() );
354 m_oldSpeed = _pppdata->speed(); 338 m_oldSpeed = _pppdata->speed();
355 m_oldModemLock = _pppdata->modemLockFile(); 339 m_oldModemLock = _pppdata->modemLockFile();
356 m_oldModemTimeout = _pppdata->modemTimeout(); 340 m_oldModemTimeout = _pppdata->modemTimeout();
341 m_oldLineEnd = static_cast<int>( _pppdata->enter() );
357 342
358 343
359 _pppdata->setModemDevice( modemdevice->currentText() ); 344 _pppdata->setModemDevice( modemdevice->currentText() );
360 _pppdata->setFlowcontrol(flowcontrol->currentText()); 345 _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
361 _pppdata->setFlowcontrol(flowcontrol->currentText()); 346 _pppdata->setEnter(static_cast<PPPData::LineTermination>(enter->currentItem()));
362 _pppdata->setSpeed(baud_c->currentText()); 347 _pppdata->setSpeed(baud_c->currentText());
363 _pppdata->setModemLockFile( modemlockfile->isChecked()); 348 _pppdata->setModemLockFile( modemlockfile->isChecked());
364 _pppdata->setModemTimeout( modemtimeout->value() ); 349 _pppdata->setModemTimeout( modemtimeout->value() );
365} 350}
366 351
367 352
368void ModemWidget::slotAfterModemQuery() 353void ModemWidget::slotAfterModemQuery()
369{ 354{
370 _pppdata->setModemDevice( m_oldModemDev ); 355 _pppdata->setModemDevice( m_oldModemDev );
371 _pppdata->setFlowcontrol( m_oldFlowControl ); 356 _pppdata->setFlowcontrol( static_cast<PPPData::FlowControl>(m_oldFlowControl) );
357 _pppdata->setEnter( static_cast<PPPData::LineTermination>(m_oldLineEnd) );
372 _pppdata->setSpeed( m_oldSpeed ); 358 _pppdata->setSpeed( m_oldSpeed );
373 _pppdata->setModemLockFile( m_oldModemLock ); 359 _pppdata->setModemLockFile( m_oldModemLock );
374 _pppdata->setModemTimeout( m_oldModemTimeout ); 360 _pppdata->setModemTimeout( m_oldModemTimeout );
375} 361}
376 362
377 363
378ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent, 364ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent,
379 const char *name) 365 const char *name)
380 : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip) 366 : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip)
381{ 367{
382 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); 368 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint());
383 369
384 370
385 waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this); 371 waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this);
386 waitfordt->setChecked(_pppdata->waitForDialTone()); 372 waitfordt->setChecked(_pppdata->waitForDialTone());
387 // connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool))); 373 // connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool)));
388 l1->addWidget(waitfordt); 374 l1->addWidget(waitfordt);
389 QWhatsThis::add(waitfordt, 375 QWhatsThis::add(waitfordt,
390 tr("<p>Normally the modem waits for a dial tone\n" 376 tr("<p>Normally the modem waits for a dial tone\n"
391 "from your phone line, indicating that it can\n" 377 "from your phone line, indicating that it can\n"
392 "start to dial a number. If your modem does not\n" 378 "start to dial a number. If your modem does not\n"
393 "recognize this sound, or your local phone system\n" 379 "recognize this sound, or your local phone system\n"
394 "does not emit such a tone, uncheck this option\n" 380 "does not emit such a tone, uncheck this option\n"
395 "\n" 381 "\n"
396 "<b>Default:</b>: On")); 382 "<b>Default:</b>: On"));
397 383
398 QHBoxLayout *waitLayout = new QHBoxLayout( this ); 384 QHBoxLayout *waitLayout = new QHBoxLayout( this );
399 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" ); 385 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" );
400 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" ); 386 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" );
401 // busywait = new KIntNumInput(_pppdata->busyWait(), this); 387 // busywait = new KIntNumInput(_pppdata->busyWait(), this);
402 // busywait->setLabel(tr("B&usy wait:")); 388 // busywait->setLabel(tr("B&usy wait:"));
403 // busywait->setRange(0, 300, 5, true); 389 // busywait->setRange(0, 300, 5, true);
404 busywait->setSuffix(tr(" sec")); 390 busywait->setSuffix(tr(" sec"));
405 // connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int))); 391 // connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int)));
406 waitLayout->addWidget(waitLabel); 392 waitLayout->addWidget(waitLabel);
407 waitLayout->addWidget(busywait); 393 waitLayout->addWidget(busywait);
408 l1->addLayout( waitLayout ); 394 l1->addLayout( waitLayout );
409 395
410 QWhatsThis::add(busywait, 396 QWhatsThis::add(busywait,
411 tr("Specifies the number of seconds to wait before\n" 397 tr("Specifies the number of seconds to wait before\n"
412 "redial if all dialed numbers are busy. This is\n" 398 "redial if all dialed numbers are busy. This is\n"
413 "necessary because some modems get stuck if the\n" 399 "necessary because some modems get stuck if the\n"
414 "same number is busy too often.\n" 400 "same number is busy too often.\n"
415 "\n" 401 "\n"
416 "The default is 0 seconds, you should not change\n" 402 "The default is 0 seconds, you should not change\n"
417 "this unless you need to.")); 403 "this unless you need to."));
418 404
419 l1->addSpacing(10); 405 l1->addSpacing(10);
diff --git a/noncore/settings/networksettings/ppp/general.h b/noncore/settings/networksettings/ppp/general.h
index a4dece4..0bb3136 100644
--- a/noncore/settings/networksettings/ppp/general.h
+++ b/noncore/settings/networksettings/ppp/general.h
@@ -36,90 +36,90 @@ class QCheckBox;
36class QComboBox; 36class QComboBox;
37class PPPData; 37class PPPData;
38class InterfacePPP; 38class InterfacePPP;
39class QLineEdit; 39class QLineEdit;
40 40
41class ModemWidget : public QWidget { 41class ModemWidget : public QWidget {
42 Q_OBJECT 42 Q_OBJECT
43public: 43public:
44 ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 ); 44 ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 );
45 ~ModemWidget(); 45 ~ModemWidget();
46 46
47 bool save(); 47 bool save();
48 48
49private slots: 49private slots:
50 /* 50 /*
51 * temporarily commit configuration so queryModem 51 * temporarily commit configuration so queryModem
52 * will use 'current' settings 52 * will use 'current' settings
53 */ 53 */
54 void slotBeforeModemQuery(); 54 void slotBeforeModemQuery();
55 void slotAfterModemQuery(); 55 void slotAfterModemQuery();
56 56
57/* private slots: */ 57/* private slots: */
58 /* void setmodemdc(int); */ 58 /* void setmodemdc(int); */
59/* void setmodemdc(const QString &); */ 59/* void setmodemdc(const QString &); */
60 /* void setflowcontrol(int); */ 60 /* void setflowcontrol(int); */
61 /* void modemtimeoutchanged(int); */ 61 /* void modemtimeoutchanged(int); */
62 /* void modemlockfilechanged(bool); */ 62 /* void modemlockfilechanged(bool); */
63 /* void setenter(int); */ 63 /* void setenter(int); */
64/* void speed_selection(int); */ 64/* void speed_selection(int); */
65 65
66private: 66private:
67 QComboBox *enter; 67 QComboBox *enter;
68 /* QLabel *label1; */ 68 /* QLabel *label1; */
69 /* QLabel *label2; */ 69 /* QLabel *label2; */
70 /* QLabel *labeltmp; */ 70 /* QLabel *labeltmp; */
71 /* QLabel *labelenter; */ 71 /* QLabel *labelenter; */
72 QLineEdit *modemname; 72 QLineEdit *modemname;
73 QComboBox *modemdevice; 73 QComboBox *modemdevice;
74 QComboBox *flowcontrol; 74 QComboBox *flowcontrol;
75 75
76 QComboBox *baud_c; 76 QComboBox *baud_c;
77 QLabel *baud_label; 77 QLabel *baud_label;
78 78
79 QSpinBox *modemtimeout; 79 QSpinBox *modemtimeout;
80 QCheckBox *modemlockfile; 80 QCheckBox *modemlockfile;
81 PPPData *_pppdata; 81 PPPData *_pppdata;
82 82
83private: 83private:
84 QString m_oldModemDev, m_oldFlowControl, m_oldSpeed; 84 QString m_oldModemDev, m_oldSpeed;
85 bool m_oldModemLock; 85 bool m_oldModemLock;
86 int m_oldModemTimeout; 86 int m_oldModemTimeout, m_oldFlowControl, m_oldLineEnd;
87}; 87};
88 88
89 89
90class ModemWidget2 : public QWidget { 90class ModemWidget2 : public QWidget {
91 Q_OBJECT 91 Q_OBJECT
92public: 92public:
93 ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 ); 93 ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 );
94 bool save(); 94 bool save();
95 95
96signals: 96signals:
97 void sig_beforeQueryModem(); 97 void sig_beforeQueryModem();
98 void sig_afterQueryModem(); 98 void sig_afterQueryModem();
99 99
100private slots: 100private slots:
101/* void waitfordtchanged(bool); */ 101/* void waitfordtchanged(bool); */
102 /* void busywaitchanged(int); */ 102 /* void busywaitchanged(int); */
103 // void use_cdline_toggled(bool); 103 // void use_cdline_toggled(bool);
104 void modemcmdsbutton(); 104 void modemcmdsbutton();
105 // void terminal(); 105 // void terminal();
106 void query_modem(); 106 void query_modem();
107 // void volumeChanged(int); 107 // void volumeChanged(int);
108 108
109private: 109private:
110 QLabel *labeltmp; 110 QLabel *labeltmp;
111 QPushButton *modemcmds; 111 QPushButton *modemcmds;
112 QPushButton *modeminfo_button; 112 QPushButton *modeminfo_button;
113 // QPushButton *terminal_button; 113 // QPushButton *terminal_button;
114 // QFrame *fline; 114 // QFrame *fline;
115 QCheckBox *waitfordt; 115 QCheckBox *waitfordt;
116 QSpinBox *busywait; 116 QSpinBox *busywait;
117 QCheckBox *chkbox1; 117 QCheckBox *chkbox1;
118 QSlider *volume; 118 QSlider *volume;
119 PPPData *_pppdata; 119 PPPData *_pppdata;
120 InterfacePPP *_ifaceppp; 120 InterfacePPP *_ifaceppp;
121}; 121};
122 122
123#endif 123#endif
124 124
125 125
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp
index 79f015b..7b2e2a3 100644
--- a/noncore/settings/networksettings/ppp/modem.cpp
+++ b/noncore/settings/networksettings/ppp/modem.cpp
@@ -180,98 +180,98 @@ bool Modem::opentty() {
180 if(_pppdata->UseCDLine()) { 180 if(_pppdata->UseCDLine()) {
181 if(ioctl(modemfd, TIOCMGET, &flags) == -1) { 181 if(ioctl(modemfd, TIOCMGET, &flags) == -1) {
182 errmsg = QObject::tr("Unable to detect state of CD line."); 182 errmsg = QObject::tr("Unable to detect state of CD line.");
183 ::close(modemfd); 183 ::close(modemfd);
184 modemfd = -1; 184 modemfd = -1;
185 return false; 185 return false;
186 } 186 }
187 if ((flags&TIOCM_CD) == 0) { 187 if ((flags&TIOCM_CD) == 0) {
188 errmsg = QObject::tr("The modem is not ready."); 188 errmsg = QObject::tr("The modem is not ready.");
189 ::close(modemfd); 189 ::close(modemfd);
190 modemfd = -1; 190 modemfd = -1;
191 return false; 191 return false;
192 } 192 }
193 } 193 }
194#endif 194#endif
195 195
196 tcdrain (modemfd); 196 tcdrain (modemfd);
197 tcflush (modemfd, TCIOFLUSH); 197 tcflush (modemfd, TCIOFLUSH);
198 198
199 if(tcgetattr(modemfd, &tty) < 0){ 199 if(tcgetattr(modemfd, &tty) < 0){
200 // this helps in some cases 200 // this helps in some cases
201 tcsendbreak(modemfd, 0); 201 tcsendbreak(modemfd, 0);
202 sleep(1); 202 sleep(1);
203 if(tcgetattr(modemfd, &tty) < 0){ 203 if(tcgetattr(modemfd, &tty) < 0){
204 errmsg = QObject::tr("The modem is busy."); 204 errmsg = QObject::tr("The modem is busy.");
205 ::close(modemfd); 205 ::close(modemfd);
206 modemfd = -1; 206 modemfd = -1;
207 return false; 207 return false;
208 } 208 }
209 } 209 }
210 210
211 memset(&initial_tty,'\0',sizeof(initial_tty)); 211 memset(&initial_tty,'\0',sizeof(initial_tty));
212 212
213 initial_tty = tty; 213 initial_tty = tty;
214 214
215 tty.c_cc[VMIN] = 0; // nonblocking 215 tty.c_cc[VMIN] = 0; // nonblocking
216 tty.c_cc[VTIME] = 0; 216 tty.c_cc[VTIME] = 0;
217 tty.c_oflag = 0; 217 tty.c_oflag = 0;
218 tty.c_lflag = 0; 218 tty.c_lflag = 0;
219 219
220 tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); 220 tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB);
221 tty.c_cflag |= CS8 | CREAD; 221 tty.c_cflag |= CS8 | CREAD;
222 tty.c_cflag |= CLOCAL; // ignore modem status lines 222 tty.c_cflag |= CLOCAL; // ignore modem status lines
223 tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ; 223 tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ;
224 tty.c_lflag &= ~ICANON; // non-canonical mode 224 tty.c_lflag &= ~ICANON; // non-canonical mode
225 tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE); 225 tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE);
226 226
227 227
228 if(_pppdata->flowcontrol() != "None") { 228 if(_pppdata->flowcontrol() != PPPData::FlowNone) {
229 if(_pppdata->flowcontrol() == "CRTSCTS") { 229 if(_pppdata->flowcontrol() == PPPData::FlowHardware) {
230 tty.c_cflag |= CRTSCTS; 230 tty.c_cflag |= CRTSCTS;
231 } 231 }
232 else { 232 else {
233 tty.c_iflag |= IXON | IXOFF; 233 tty.c_iflag |= IXON | IXOFF;
234 tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */ 234 tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
235 tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */ 235 tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
236 } 236 }
237 } 237 }
238 else { 238 else {
239 tty.c_cflag &= ~CRTSCTS; 239 tty.c_cflag &= ~CRTSCTS;
240 tty.c_iflag &= ~(IXON | IXOFF); 240 tty.c_iflag &= ~(IXON | IXOFF);
241 } 241 }
242 242
243 cfsetospeed(&tty, modemspeed()); 243 cfsetospeed(&tty, modemspeed());
244 cfsetispeed(&tty, modemspeed()); 244 cfsetispeed(&tty, modemspeed());
245 245
246 tcdrain(modemfd); 246 tcdrain(modemfd);
247 247
248 if(tcsetattr(modemfd, TCSANOW, &tty) < 0){ 248 if(tcsetattr(modemfd, TCSANOW, &tty) < 0){
249 errmsg = QObject::tr("The modem is busy."); 249 errmsg = QObject::tr("The modem is busy.");
250 ::close(modemfd); 250 ::close(modemfd);
251 modemfd=-1; 251 modemfd=-1;
252 return false; 252 return false;
253 } 253 }
254 254
255 errmsg = QObject::tr("Modem Ready."); 255 errmsg = QObject::tr("Modem Ready.");
256 return true; 256 return true;
257} 257}
258 258
259 259
260bool Modem::closetty() { 260bool Modem::closetty() {
261 if(modemfd >=0 ) { 261 if(modemfd >=0 ) {
262 stop(); 262 stop();
263 /* discard data not read or transmitted */ 263 /* discard data not read or transmitted */
264 tcflush(modemfd, TCIOFLUSH); 264 tcflush(modemfd, TCIOFLUSH);
265 265
266 if(tcsetattr(modemfd, TCSANOW, &initial_tty) < 0){ 266 if(tcsetattr(modemfd, TCSANOW, &initial_tty) < 0){
267 errmsg = QObject::tr("Can't restore tty settings: tcsetattr()\n"); 267 errmsg = QObject::tr("Can't restore tty settings: tcsetattr()\n");
268 ::close(modemfd); 268 ::close(modemfd);
269 modemfd = -1; 269 modemfd = -1;
270 return false; 270 return false;
271 } 271 }
272 ::close(modemfd); 272 ::close(modemfd);
273 modemfd = -1; 273 modemfd = -1;
274 } 274 }
275 275
276 return true; 276 return true;
277} 277}
@@ -310,105 +310,109 @@ void Modem::startNotifier() {
310 if(sn == 0) { 310 if(sn == 0) {
311 sn = new QSocketNotifier(modemfd, QSocketNotifier::Read, this); 311 sn = new QSocketNotifier(modemfd, QSocketNotifier::Read, this);
312 connect(sn, SIGNAL(activated(int)), SLOT(readtty(int))); 312 connect(sn, SIGNAL(activated(int)), SLOT(readtty(int)));
313 odebug << "QSocketNotifier started!" << oendl; 313 odebug << "QSocketNotifier started!" << oendl;
314 } else { 314 } else {
315 odebug << "QSocketNotifier re-enabled!" << oendl; 315 odebug << "QSocketNotifier re-enabled!" << oendl;
316 sn->setEnabled(true); 316 sn->setEnabled(true);
317 } 317 }
318 } 318 }
319} 319}
320 320
321 321
322void Modem::stopNotifier() { 322void Modem::stopNotifier() {
323 if(sn != 0) { 323 if(sn != 0) {
324 sn->setEnabled(false); 324 sn->setEnabled(false);
325 disconnect(sn); 325 disconnect(sn);
326 delete sn; 326 delete sn;
327 sn = 0; 327 sn = 0;
328 odebug << "QSocketNotifier stopped!" << oendl; 328 odebug << "QSocketNotifier stopped!" << oendl;
329 } 329 }
330} 330}
331 331
332 332
333void Modem::flush() { 333void Modem::flush() {
334 char c; 334 char c;
335 while(read(modemfd, &c, 1) == 1); 335 while(read(modemfd, &c, 1) == 1);
336} 336}
337 337
338 338
339bool Modem::writeChar(unsigned char c) { 339bool Modem::writeChar(unsigned char c) {
340 int s; 340 int s;
341 do { 341 do {
342 s = write(modemfd, &c, 1); 342 s = write(modemfd, &c, 1);
343 if (s < 0) { 343 if (s < 0) {
344 oerr << "write() in Modem::writeChar failed" << oendl; 344 oerr << "write() in Modem::writeChar failed" << oendl;
345 return false; 345 return false;
346 } 346 }
347 } while(s == 0); 347 } while(s == 0);
348 348
349 return true; 349 return true;
350} 350}
351 351
352 352
353bool Modem::writeLine(const char *buf) { 353bool Modem::writeLine(const char *buf) {
354 int len = strlen(buf); 354 int len = strlen(buf);
355 char *b = new char[len+2]; 355 char *b = new char[len+2];
356 memcpy(b, buf, len); 356 memcpy(b, buf, len);
357 // different modems seem to need different line terminations 357 // different modems seem to need different line terminations
358 QString term = _pppdata->enter(); 358 switch( _pppdata->enter() ) {
359 if(term == "LF") 359 case PPPData::EndLF:
360 b[len++]='\n'; 360 b[len++]='\n';
361 else if(term == "CR") 361 break;
362 case PPPData::EndCR:
362 b[len++]='\r'; 363 b[len++]='\r';
363 else if(term == "CR/LF") { 364 break;
365 case PPPData::EndCRLF:
364 b[len++]='\r'; 366 b[len++]='\r';
365 b[len++]='\n'; 367 b[len++]='\n';
368 break;
366 } 369 }
370
367 int l = len; 371 int l = len;
368 while(l) { 372 while(l) {
369 int wr = write(modemfd, &b[len-l], l); 373 int wr = write(modemfd, &b[len-l], l);
370 if(wr < 0) { 374 if(wr < 0) {
371 // TODO do something meaningful with the error code (or ignore it 375 // TODO do something meaningful with the error code (or ignore it
372 oerr << "write() in Modem::writeLine failed" << oendl; 376 oerr << "write() in Modem::writeLine failed" << oendl;
373 delete[] b; 377 delete[] b;
374 return false; 378 return false;
375 } 379 }
376 l -= wr; 380 l -= wr;
377 } 381 }
378 delete[] b; 382 delete[] b;
379 return true; 383 return true;
380} 384}
381 385
382 386
383bool Modem::hangup() { 387bool Modem::hangup() {
384 // this should really get the modem to hang up and go into command mode 388 // this should really get the modem to hang up and go into command mode
385 // If anyone sees a fault in the following please let me know, since 389 // If anyone sees a fault in the following please let me know, since
386 // this is probably the most imporant snippet of code in the whole of 390 // this is probably the most imporant snippet of code in the whole of
387 // kppp. If people complain about kppp being stuck, this piece of code 391 // kppp. If people complain about kppp being stuck, this piece of code
388 // is most likely the reason. 392 // is most likely the reason.
389 struct termios temptty; 393 struct termios temptty;
390 394
391 if(modemfd >= 0) { 395 if(modemfd >= 0) {
392 396
393 // is this Escape & HangupStr stuff really necessary ? (Harri) 397 // is this Escape & HangupStr stuff really necessary ? (Harri)
394 398
395 if (data_mode) escape_to_command_mode(); 399 if (data_mode) escape_to_command_mode();
396 400
397 // Then hangup command 401 // Then hangup command
398 writeLine(_pppdata->modemHangupStr().local8Bit()); 402 writeLine(_pppdata->modemHangupStr().local8Bit());
399 403
400 usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 sec 404 usleep(_pppdata->modemInitDelay() * 10000); // 0.01 - 3.0 sec
401 405
402#ifndef DEBUG_WO_DIALING 406#ifndef DEBUG_WO_DIALING
403 if (sigsetjmp(jmp_buffer, 1) == 0) { 407 if (sigsetjmp(jmp_buffer, 1) == 0) {
404 // set alarm in case tcsendbreak() hangs 408 // set alarm in case tcsendbreak() hangs
405 signal(SIGALRM, alarm_handler); 409 signal(SIGALRM, alarm_handler);
406 alarm(2); 410 alarm(2);
407 411
408 tcsendbreak(modemfd, 0); 412 tcsendbreak(modemfd, 0);
409 413
410 alarm(0); 414 alarm(0);
411 signal(SIGALRM, SIG_IGN); 415 signal(SIGALRM, SIG_IGN);
412 } else { 416 } else {
413 // we reach this point if the alarm handler got called 417 // we reach this point if the alarm handler got called
414 closetty(); 418 closetty();
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp
index eb03ef4..1491ea2 100644
--- a/noncore/settings/networksettings/ppp/pppdata.cpp
+++ b/noncore/settings/networksettings/ppp/pppdata.cpp
@@ -342,102 +342,102 @@ QString PPPData::pppdVersion() {
342bool PPPData::pppdVersionMin(int ver, int mod, int patch) { 342bool PPPData::pppdVersionMin(int ver, int mod, int patch) {
343 // check if pppd version fulfills minimum requirement 343 // check if pppd version fulfills minimum requirement
344 return (pppdVer > ver 344 return (pppdVer > ver
345 || (pppdVer == ver && pppdMod > mod) 345 || (pppdVer == ver && pppdMod > mod)
346 || (pppdVer == ver && pppdMod == mod && pppdPatch >= patch)); 346 || (pppdVer == ver && pppdMod == mod && pppdPatch >= patch));
347} 347}
348 348
349int PPPData::pppdTimeout() { 349int PPPData::pppdTimeout() {
350 return readNumConfig(GENERAL_GRP, PPPDTIMEOUT_KEY, PPPD_TIMEOUT); 350 return readNumConfig(GENERAL_GRP, PPPDTIMEOUT_KEY, PPPD_TIMEOUT);
351} 351}
352 352
353 353
354void PPPData::setpppdTimeout(int n) { 354void PPPData::setpppdTimeout(int n) {
355 writeConfig(GENERAL_GRP, PPPDTIMEOUT_KEY, n); 355 writeConfig(GENERAL_GRP, PPPDTIMEOUT_KEY, n);
356} 356}
357 357
358 358
359const QString PPPData::modemDevice() { 359const QString PPPData::modemDevice() {
360 return readConfig (modemGroup(), MODEMDEV_KEY, "/dev/modem" ); 360 return readConfig (modemGroup(), MODEMDEV_KEY, "/dev/modem" );
361} 361}
362 362
363 363
364// const QString PPPData::modemName() 364// const QString PPPData::modemName()
365// { 365// {
366// return readConfig(modemGroup(), MODEMNAME_KEY); 366// return readConfig(modemGroup(), MODEMNAME_KEY);
367// } 367// }
368 368
369// bool PPPData::setModemName(const QString &n) { 369// bool PPPData::setModemName(const QString &n) {
370// odebug << "Setting modem name to >" << n.latin1() << "<" << oendl; 370// odebug << "Setting modem name to >" << n.latin1() << "<" << oendl;
371// _modemName = n; 371// _modemName = n;
372// writeConfig(cgroup, MODEMNAME_KEY, n); 372// writeConfig(cgroup, MODEMNAME_KEY, n);
373// return true; //FIXME 373// return true; //FIXME
374// } 374// }
375 375
376// bool PPPData::changeModemName(const QString &n) { 376// bool PPPData::changeModemName(const QString &n) {
377// odebug << "Setting modem name to >" << n.latin1() << "<" << oendl; 377// odebug << "Setting modem name to >" << n.latin1() << "<" << oendl;
378// _modemName = n; 378// _modemName = n;
379// writeConfig(modemGroup(), MODEMNAME_KEY, n); 379// writeConfig(modemGroup(), MODEMNAME_KEY, n);
380// return true; //FIXME 380// return true; //FIXME
381// } 381// }
382 382
383bool PPPData::setModemDevice(const QString &n) { 383bool PPPData::setModemDevice(const QString &n) {
384 odebug << "Setting modem dev to >" << n.latin1() << "<" << oendl; 384 odebug << "Setting modem dev to >" << n.latin1() << "<" << oendl;
385 writeConfig(modemGroup(), MODEMDEV_KEY, n); 385 writeConfig(modemGroup(), MODEMDEV_KEY, n);
386 return true; //FIXME 386 return true; //FIXME
387} 387}
388 388
389 389
390const QString PPPData::flowcontrol() { 390enum PPPData::FlowControl PPPData::flowcontrol() {
391 return readConfig(modemGroup(), FLOWCONTROL_KEY, "CRTSCTS"); 391 return static_cast<FlowControl>(readNumConfig(modemGroup(), FLOWCONTROL_KEY, FlowHardware));
392} 392}
393 393
394 394
395void PPPData::setFlowcontrol(const QString &n) { 395void PPPData::setFlowcontrol(enum FlowControl n) {
396 writeConfig(modemGroup(), FLOWCONTROL_KEY, n); 396 writeConfig(modemGroup(), FLOWCONTROL_KEY, n);
397} 397}
398 398
399 399
400const QString PPPData::speed() { 400const QString PPPData::speed() {
401 QString s = readConfig(modemGroup(), SPEED_KEY, "57600"); 401 QString s = readConfig(modemGroup(), SPEED_KEY, "57600");
402 // undo the damage of a bug in former versions. It left an empty Speed= 402 // undo the damage of a bug in former versions. It left an empty Speed=
403 // entry in kppprc. kppp did set the serial port to 57600 as default but 403 // entry in kppprc. kppp did set the serial port to 57600 as default but
404 // pppd wouldn't receive the speed via the command line. 404 // pppd wouldn't receive the speed via the command line.
405 if(s.toUInt() == 0) 405 if(s.toUInt() == 0)
406 s = "57600"; 406 s = "57600";
407 return s; 407 return s;
408} 408}
409 409
410 410
411void PPPData::setSpeed(const QString &n) { 411void PPPData::setSpeed(const QString &n) {
412 writeConfig(modemGroup(), SPEED_KEY, n); 412 writeConfig(modemGroup(), SPEED_KEY, n);
413} 413}
414 414
415 415
416#if 0 416#if 0
417void PPPData::setUseCDLine(const int n) { 417void PPPData::setUseCDLine(const int n) {
418 writeConfig(modemGroup(),USECDLINE_KEY,n); 418 writeConfig(modemGroup(),USECDLINE_KEY,n);
419} 419}
420 420
421 421
422int PPPData::UseCDLine() { 422int PPPData::UseCDLine() {
423 return readNumConfig(modemGroup(),USECDLINE_KEY,0); 423 return readNumConfig(modemGroup(),USECDLINE_KEY,0);
424} 424}
425#endif 425#endif
426 426
427const QString PPPData::modemEscapeStr() { 427const QString PPPData::modemEscapeStr() {
428 return readConfig(modemGroup(),ESCAPESTR_KEY,"+++"); 428 return readConfig(modemGroup(),ESCAPESTR_KEY,"+++");
429} 429}
430 430
431 431
432void PPPData::setModemEscapeStr(const QString &n) { 432void PPPData::setModemEscapeStr(const QString &n) {
433 writeConfig(modemGroup(),ESCAPESTR_KEY,n); 433 writeConfig(modemGroup(),ESCAPESTR_KEY,n);
434} 434}
435 435
436 436
437const QString PPPData::modemEscapeResp() { 437const QString PPPData::modemEscapeResp() {
438 return readConfig(modemGroup(),ESCAPERESP_KEY,"OK"); 438 return readConfig(modemGroup(),ESCAPERESP_KEY,"OK");
439} 439}
440 440
441 441
442void PPPData::setModemEscapeResp(const QString &n) { 442void PPPData::setModemEscapeResp(const QString &n) {
443 writeConfig(modemGroup(),ESCAPERESP_KEY,n); 443 writeConfig(modemGroup(),ESCAPERESP_KEY,n);
@@ -675,102 +675,102 @@ QString PPPData::volumeInitString() {
675 } 675 }
676 676
677 return s; 677 return s;
678} 678}
679 679
680 680
681int PPPData::volume() { 681int PPPData::volume() {
682 return readNumConfig(modemGroup(), VOLUME_KEY, 1); 682 return readNumConfig(modemGroup(), VOLUME_KEY, 1);
683} 683}
684 684
685 685
686void PPPData::setVolume(int i) { 686void PPPData::setVolume(int i) {
687 writeConfig(modemGroup(), VOLUME_KEY, i); 687 writeConfig(modemGroup(), VOLUME_KEY, i);
688} 688}
689 689
690int PPPData::waitForDialTone() { 690int PPPData::waitForDialTone() {
691 return readNumConfig(modemGroup(), DIALTONEWAIT_KEY, 1); 691 return readNumConfig(modemGroup(), DIALTONEWAIT_KEY, 1);
692} 692}
693 693
694void PPPData::setWaitForDialTone(int i) { 694void PPPData::setWaitForDialTone(int i) {
695 writeConfig(modemGroup(), DIALTONEWAIT_KEY, i); 695 writeConfig(modemGroup(), DIALTONEWAIT_KEY, i);
696} 696}
697 697
698void PPPData::setModemAnswerStr(const QString &n) { 698void PPPData::setModemAnswerStr(const QString &n) {
699 writeConfig(modemGroup(), ANSWERSTR_KEY, n); 699 writeConfig(modemGroup(), ANSWERSTR_KEY, n);
700} 700}
701 701
702 702
703const QString PPPData::modemRingResp() { 703const QString PPPData::modemRingResp() {
704 return readConfig(modemGroup(), RINGRESP_KEY, "RING"); 704 return readConfig(modemGroup(), RINGRESP_KEY, "RING");
705} 705}
706 706
707 707
708void PPPData::setModemRingResp(const QString &n) { 708void PPPData::setModemRingResp(const QString &n) {
709 writeConfig(modemGroup(), RINGRESP_KEY, n); 709 writeConfig(modemGroup(), RINGRESP_KEY, n);
710} 710}
711 711
712 712
713const QString PPPData::modemAnswerResp() { 713const QString PPPData::modemAnswerResp() {
714 return readConfig(modemGroup(), ANSWERRESP_KEY, "CONNECT"); 714 return readConfig(modemGroup(), ANSWERRESP_KEY, "CONNECT");
715} 715}
716 716
717 717
718void PPPData::setModemAnswerResp(const QString &n) { 718void PPPData::setModemAnswerResp(const QString &n) {
719 writeConfig(modemGroup(), ANSWERRESP_KEY, n); 719 writeConfig(modemGroup(), ANSWERRESP_KEY, n);
720} 720}
721 721
722 722
723const QString PPPData::enter() { 723enum PPPData::LineTermination PPPData::enter(){
724 return readConfig(modemGroup(), ENTER_KEY, "CR"); 724 return static_cast<PPPData::LineTermination>(readNumConfig(modemGroup(), ENTER_KEY, EndCR));
725} 725}
726 726
727 727
728void PPPData::setEnter(const QString &n) { 728void PPPData::setEnter(enum PPPData::LineTermination n) {
729 writeConfig(modemGroup(), ENTER_KEY, n); 729 writeConfig(modemGroup(), ENTER_KEY, n);
730} 730}
731 731
732 732
733// 733//
734// functions to set/return account information 734// functions to set/return account information
735// 735//
736 736
737//returns number of accounts 737//returns number of accounts
738int PPPData::count() const { 738int PPPData::count() const {
739 return highcount + 1; 739 return highcount + 1;
740} 740}
741 741
742 742
743bool PPPData::setAccount(const QString &aname) { 743bool PPPData::setAccount(const QString &aname) {
744 odebug << "setting account to >" << aname.latin1() << "<" << oendl; 744 odebug << "setting account to >" << aname.latin1() << "<" << oendl;
745 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { 745 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) {
746 cgroup = *it; 746 cgroup = *it;
747 odebug << "PPPData::setAccount " << cgroup.latin1() << "" << oendl; 747 odebug << "PPPData::setAccount " << cgroup.latin1() << "" << oendl;
748 odebug << "iterator " << (*it).latin1() << "" << oendl; 748 odebug << "iterator " << (*it).latin1() << "" << oendl;
749 if(accname() == aname) { 749 if(accname() == aname) {
750 odebug << "SUCCESS" << oendl; 750 odebug << "SUCCESS" << oendl;
751 return true; 751 return true;
752 } 752 }
753 753
754 } 754 }
755 odebug << "FAILURE" << oendl; 755 odebug << "FAILURE" << oendl;
756 return false; 756 return false;
757} 757}
758 758
759/* 759/*
760bool PPPData::setAccountbyIndex(int i) { 760bool PPPData::setAccountbyIndex(int i) {
761 if(i >= 0 && i <= highcount) { 761 if(i >= 0 && i <= highcount) {
762 QString tmp; 762 QString tmp;
763 tmp.sprintf("%s%i", ACCOUNT_GRP, i); 763 tmp.sprintf("%s%i", ACCOUNT_GRP, i);
764 if (_deleted.find(tmp)!=_deleted.end()) return false; 764 if (_deleted.find(tmp)!=_deleted.end()) return false;
765 caccount = i; 765 caccount = i;
766 cgroup = tmp; 766 cgroup = tmp;
767 return true; 767 return true;
768 } 768 }
769 return false; 769 return false;
770} 770}
771*/ 771*/
772 772
773bool PPPData::isUniqueAccname(const QString &n) { 773bool PPPData::isUniqueAccname(const QString &n) {
774 QString save_cgroup = cgroup; 774 QString save_cgroup = cgroup;
775 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { 775 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) {
776 cgroup = *it; 776 cgroup = *it;
diff --git a/noncore/settings/networksettings/ppp/pppdata.h b/noncore/settings/networksettings/ppp/pppdata.h
index d1cbeb5..d731b62 100644
--- a/noncore/settings/networksettings/ppp/pppdata.h
+++ b/noncore/settings/networksettings/ppp/pppdata.h
@@ -120,186 +120,197 @@ class Config;
120#define AUTH_KEY "Authentication" 120#define AUTH_KEY "Authentication"
121#define STORED_PASSWORD_KEY "Password" 121#define STORED_PASSWORD_KEY "Password"
122#define STORED_USERNAME_KEY "Username" 122#define STORED_USERNAME_KEY "Username"
123#define STORE_PASSWORD_KEY "StorePassword" 123#define STORE_PASSWORD_KEY "StorePassword"
124#define BEFORE_CONNECT_KEY "BeforeConnect" 124#define BEFORE_CONNECT_KEY "BeforeConnect"
125#define COMMAND_KEY "Command" 125#define COMMAND_KEY "Command"
126#define DISCONNECT_COMMAND_KEY "DisconnectCommand" 126#define DISCONNECT_COMMAND_KEY "DisconnectCommand"
127#define BEFORE_DISCONNECT_KEY "BeforeDisconnect" 127#define BEFORE_DISCONNECT_KEY "BeforeDisconnect"
128#define IPADDR_KEY "IPAddr" 128#define IPADDR_KEY "IPAddr"
129#define SUBNETMASK_KEY "SubnetMask" 129#define SUBNETMASK_KEY "SubnetMask"
130#define ACCTENABLED_KEY "AccountingEnabled" 130#define ACCTENABLED_KEY "AccountingEnabled"
131#define VOLACCTENABLED_KEY "VolumeAccountingEnabled" 131#define VOLACCTENABLED_KEY "VolumeAccountingEnabled"
132#define ACCTFILE_KEY "AccountingFile" 132#define ACCTFILE_KEY "AccountingFile"
133#define AUTONAME_KEY "AutoName" 133#define AUTONAME_KEY "AutoName"
134#define GATEWAY_KEY "Gateway" 134#define GATEWAY_KEY "Gateway"
135#define DEFAULTROUTE_KEY "DefaultRoute" 135#define DEFAULTROUTE_KEY "DefaultRoute"
136#define DOMAIN_KEY "Domain" 136#define DOMAIN_KEY "Domain"
137#define DNS_KEY "DNS" 137#define DNS_KEY "DNS"
138#define AUTODNS_KEY "AutoDNS" 138#define AUTODNS_KEY "AutoDNS"
139#define EXDNSDISABLED_KEY "ExDNSDisabled" 139#define EXDNSDISABLED_KEY "ExDNSDisabled"
140#define SCRIPTCOM_KEY "ScriptCommands" 140#define SCRIPTCOM_KEY "ScriptCommands"
141#define SCRIPTARG_KEY "ScriptArguments" 141#define SCRIPTARG_KEY "ScriptArguments"
142#define PPPDARG_KEY "pppdArguments" 142#define PPPDARG_KEY "pppdArguments"
143#define PPP_DEBUG_OPTION "PPPDebug" 143#define PPP_DEBUG_OPTION "PPPDebug"
144#define ICONIFY_ON_CONNECT_KEY "iconifyOnConnect" 144#define ICONIFY_ON_CONNECT_KEY "iconifyOnConnect"
145#define DOCKING_KEY "DockIntoPanel" 145#define DOCKING_KEY "DockIntoPanel"
146#define TOTALCOSTS_KEY "TotalCosts" 146#define TOTALCOSTS_KEY "TotalCosts"
147#define TOTALBYTES_KEY "TotalBytes" 147#define TOTALBYTES_KEY "TotalBytes"
148 148
149// pppd errors 149// pppd errors
150#define E_IF_TIMEOUT 1 150#define E_IF_TIMEOUT 1
151#define E_PPPD_DIED 2 151#define E_PPPD_DIED 2
152 152
153// account list 153// account list
154#define ACCOUNTS_COUNT "Accounts_Count" 154#define ACCOUNTS_COUNT "Accounts_Count"
155#define ACOUNTS_DEV "Accounts_Modem" 155#define ACOUNTS_DEV "Accounts_Modem"
156#define ACOUNTS_ACC "Accounts_Account" 156#define ACOUNTS_ACC "Accounts_Account"
157 157
158#define DEVICESNAMES_LIST "DevicesNames_List" 158#define DEVICESNAMES_LIST "DevicesNames_List"
159#define DEVICES_LIST "Devices_List" 159#define DEVICES_LIST "Devices_List"
160#define DEVICES_LIST_SEP ',' 160#define DEVICES_LIST_SEP ','
161 161
162class PPPData { 162class PPPData {
163public: 163public:
164 PPPData(); 164 PPPData();
165 ~PPPData() {}; 165 ~PPPData() {};
166 166
167 enum { NumInitStrings = 2 }; 167 enum { NumInitStrings = 2 };
168 enum LineTermination {
169 EndCR,
170 EndLF,
171 EndCRLF
172 };
173
174 enum FlowControl {
175 FlowHardware,
176 FlowSoftware,
177 FlowNone
178 };
168 179
169 // general functions 180 // general functions
170 void save(); 181 void save();
171 void cancel(); 182 void cancel();
172 183
173 QStringList getAccountList(); 184 QStringList getAccountList();
174 185
175 static QMap<QString,QString> getConfiguredInterfaces(); 186 static QMap<QString,QString> getConfiguredInterfaces();
176 static void setConfiguredInterfaces( QMap<QString,QString> ); 187 static void setConfiguredInterfaces( QMap<QString,QString> );
177 188
178 // function to read/write date to configuration file 189 // function to read/write date to configuration file
179 static Config config(); 190 static Config config();
180 QString readConfig(const QString &, const QString &, const QString &); 191 QString readConfig(const QString &, const QString &, const QString &);
181 int readNumConfig(const QString &, const QString &, int); 192 int readNumConfig(const QString &, const QString &, int);
182 bool readListConfig(const QString &, const QString &, 193 bool readListConfig(const QString &, const QString &,
183 QStringList &, char sep = ','); 194 QStringList &, char sep = ',');
184 void writeConfig(const QString &, const QString &, const QString &); 195 void writeConfig(const QString &, const QString &, const QString &);
185 void writeConfig(const QString &, const QString &, int); 196 void writeConfig(const QString &, const QString &, int);
186 void writeListConfig(const QString &, const QString &, 197 void writeListConfig(const QString &, const QString &,
187 QStringList &, char sep = ','); 198 QStringList &, char sep = ',');
188 199
189 // return the current account group 200 // return the current account group
190 QString currentGroup() { return cgroup; } 201 QString currentGroup() { return cgroup; }
191 QString modemGroup(); 202 QString modemGroup();
192 203
193 // functions to set/get general kppp info 204 // functions to set/get general kppp info
194 QString password(); 205 QString password();
195 void setPassword(const QString &); 206 void setPassword(const QString &);
196 207
197// int currentAccountID() { return caccount; }; 208// int currentAccountID() { return caccount; };
198 const QString defaultAccount(); 209 const QString defaultAccount();
199 void setDefaultAccount(const QString &); 210 void setDefaultAccount(const QString &);
200 211
201 void set_xserver_exit_disconnect(bool set); 212 void set_xserver_exit_disconnect(bool set);
202 bool get_xserver_exit_disconnect(); 213 bool get_xserver_exit_disconnect();
203 214
204 void setPPPDebug(bool set); 215 void setPPPDebug(bool set);
205 bool getPPPDebug(); 216 bool getPPPDebug();
206 217
207 void set_quit_on_disconnect(bool); 218 void set_quit_on_disconnect(bool);
208 bool quit_on_disconnect(); 219 bool quit_on_disconnect();
209 220
210 void set_show_clock_on_caption(bool set); 221 void set_show_clock_on_caption(bool set);
211 bool get_show_clock_on_caption(); 222 bool get_show_clock_on_caption();
212 223
213 void set_show_log_window(bool set); 224 void set_show_log_window(bool set);
214 bool get_show_log_window(); 225 bool get_show_log_window();
215 226
216 void set_automatic_redial(bool set); 227 void set_automatic_redial(bool set);
217 bool automatic_redial(); 228 bool automatic_redial();
218 229
219// void set_iconify_on_connect(bool set); 230// void set_iconify_on_connect(bool set);
220// bool get_iconify_on_connect(); 231// bool get_iconify_on_connect();
221 232
222// void set_dock_into_panel(bool set); 233// void set_dock_into_panel(bool set);
223// bool get_dock_into_panel(); 234// bool get_dock_into_panel();
224 235
225 const QString enter(); 236 enum LineTermination enter();
226 void setEnter(const QString &); 237 void setEnter(enum LineTermination);
227 238
228 QString pppdVersion(); 239 QString pppdVersion();
229 bool pppdVersionMin(int ver, int mod, int patch); 240 bool pppdVersionMin(int ver, int mod, int patch);
230 241
231 int pppdTimeout(); 242 int pppdTimeout();
232 void setpppdTimeout(int); 243 void setpppdTimeout(int);
233 244
234 int busyWait(); 245 int busyWait();
235 void setbusyWait(int); 246 void setbusyWait(int);
236 247
237 bool modemLockFile(); 248 bool modemLockFile();
238 void setModemLockFile(bool set); 249 void setModemLockFile(bool set);
239 250
240 int modemEscapeGuardTime(); 251 int modemEscapeGuardTime();
241 void setModemEscapeGuardTime(int i); 252 void setModemEscapeGuardTime(int i);
242 253
243 void setModemEscapeStr(const QString &); 254 void setModemEscapeStr(const QString &);
244 const QString modemEscapeStr(); 255 const QString modemEscapeStr();
245 256
246 void setModemEscapeResp(const QString &); 257 void setModemEscapeResp(const QString &);
247 const QString modemEscapeResp(); 258 const QString modemEscapeResp();
248 259
249// const QString modemName(); 260// const QString modemName();
250// bool setModemName(const QString &); 261// bool setModemName(const QString &);
251// bool changeModemName(const QString &); 262// bool changeModemName(const QString &);
252 263
253 const QString modemDevice(); 264 const QString modemDevice();
254 bool setModemDevice(const QString &); 265 bool setModemDevice(const QString &);
255 266
256 const QString flowcontrol(); 267 enum FlowControl flowcontrol();
257 void setFlowcontrol(const QString &); 268 void setFlowcontrol(enum FlowControl);
258 269
259 int modemTimeout(); 270 int modemTimeout();
260 void setModemTimeout(int); 271 void setModemTimeout(int);
261 272
262 int modemToneDuration(); 273 int modemToneDuration();
263 void setModemToneDuration(int); 274 void setModemToneDuration(int);
264 275
265 QString volumeInitString(); 276 QString volumeInitString();
266 int volume(); 277 int volume();
267 void setVolume(int); 278 void setVolume(int);
268 279
269 int waitForDialTone(); 280 int waitForDialTone();
270 void setWaitForDialTone(int i); 281 void setWaitForDialTone(int i);
271 282
272 // modem command strings/responses 283 // modem command strings/responses
273 const QString modemInitStr(int i); 284 const QString modemInitStr(int i);
274 void setModemInitStr(int i, const QString &); 285 void setModemInitStr(int i, const QString &);
275 286
276 const QString modemInitResp(); 287 const QString modemInitResp();
277 void setModemInitResp(const QString &); 288 void setModemInitResp(const QString &);
278 289
279 int modemPreInitDelay(); 290 int modemPreInitDelay();
280 void setModemPreInitDelay(int); 291 void setModemPreInitDelay(int);
281 292
282 int modemInitDelay(); 293 int modemInitDelay();
283 void setModemInitDelay(int); 294 void setModemInitDelay(int);
284 295
285 QString modemNoDialToneDetectionStr(); 296 QString modemNoDialToneDetectionStr();
286 void setModemNoDialToneDetectionStr(const QString &); 297 void setModemNoDialToneDetectionStr(const QString &);
287 298
288 const QString modemDialStr(); 299 const QString modemDialStr();
289 void setModemDialStr(const QString &); 300 void setModemDialStr(const QString &);
290 301
291 const QString modemConnectResp(); 302 const QString modemConnectResp();
292 void setModemConnectResp(const QString &); 303 void setModemConnectResp(const QString &);
293 304
294 const QString modemBusyResp(); 305 const QString modemBusyResp();
295 void setModemBusyResp(const QString &); 306 void setModemBusyResp(const QString &);
296 307
297 const QString modemNoCarrierResp(); 308 const QString modemNoCarrierResp();
298 void setModemNoCarrierResp(const QString &); 309 void setModemNoCarrierResp(const QString &);
299 310
300 const QString modemNoDialtoneResp(); 311 const QString modemNoDialtoneResp();
301 void setModemNoDialtoneResp(const QString &); 312 void setModemNoDialtoneResp(const QString &);
302 313
303 const QString modemHangupStr(); 314 const QString modemHangupStr();
304 void setModemHangupStr(const QString &); 315 void setModemHangupStr(const QString &);
305 316