author | wimpie <wimpie> | 2004-08-19 21:48:46 (UTC) |
---|---|---|
committer | wimpie <wimpie> | 2004-08-19 21:48:46 (UTC) |
commit | 45616f57d3871827a247c1962e7c88699d111002 (patch) (unidiff) | |
tree | 7ad9cbe10eb624cb08a7a41944e59f0371547517 | |
parent | f58fb0a08321b6d8a9ce1bac2ce4b7eb67c27347 (diff) | |
download | opie-45616f57d3871827a247c1962e7c88699d111002.zip opie-45616f57d3871827a247c1962e7c88699d111002.tar.gz opie-45616f57d3871827a247c1962e7c88699d111002.tar.bz2 |
Network_NN.cpp : had to generate full path to networksettings since
ifup (when run from hotplug) does not know about QPEDIR ...
main.cpp : a bit more logging
nsdata.cpp resources : optimized user detection code, report error
when user could not be detected (instead of gracefull crash)
5 files changed, 77 insertions, 58 deletions
diff --git a/noncore/settings/networksettings2/main.cpp b/noncore/settings/networksettings2/main.cpp index 200e31b..9004d19 100644 --- a/noncore/settings/networksettings2/main.cpp +++ b/noncore/settings/networksettings2/main.cpp | |||
@@ -97,2 +97,3 @@ int main( int argc, char * argv[] ) { | |||
97 | NSResources->system().execAsUser( S, MyArgv ); | 97 | NSResources->system().execAsUser( S, MyArgv ); |
98 | Log(("FAILED %s-cNN-allowed\n", argv[1] )); | ||
98 | // if we come here , failed | 99 | // if we come here , failed |
@@ -111,4 +112,7 @@ int main( int argc, char * argv[] ) { | |||
111 | if( AP.exec() == QDialog::Accepted ) { | 112 | if( AP.exec() == QDialog::Accepted ) { |
113 | Log(("%s-c%ld-allowed\n", | ||
114 | argv[1], AP.selectedProfile() )); | ||
112 | printf( "%s-c%ld-allowed", argv[1], AP.selectedProfile() ); | 115 | printf( "%s-c%ld-allowed", argv[1], AP.selectedProfile() ); |
113 | } else { | 116 | } else { |
117 | Log(("%s-c%NN-disallowed\n", argv[1] )); | ||
114 | printf( "%s-cNN-disallowed", argv[1] ); | 118 | printf( "%s-cNN-disallowed", argv[1] ); |
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp index 1feffdb..b5c41bf 100644 --- a/noncore/settings/networksettings2/network/network_NN.cpp +++ b/noncore/settings/networksettings2/network/network_NN.cpp | |||
@@ -1 +1,2 @@ | |||
1 | #include <qpe/qpeapplication.h> | ||
1 | #include <asdevice.h> | 2 | #include <asdevice.h> |
@@ -55,3 +56,5 @@ short NetworkNetNode::generateFile( const QString & ID, | |||
55 | << endl; | 56 | << endl; |
56 | TS << " script networksettings2-request" | 57 | TS << " script " |
58 | << QPEApplication::qpeDir() | ||
59 | << "/bin/networksettings2-request" | ||
57 | << endl | 60 | << endl |
diff --git a/noncore/settings/networksettings2/networksettings2/resources.cpp b/noncore/settings/networksettings2/networksettings2/resources.cpp index 7ece817..2f17693 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.cpp +++ b/noncore/settings/networksettings2/networksettings2/resources.cpp | |||
@@ -296,10 +296,10 @@ typedef struct EnvVars { | |||
296 | static EnvVar_t EV[] = { | 296 | static EnvVar_t EV[] = { |
297 | // AnEV( "HOME=" ), -> SPECIAL | 297 | AnEV( "HOME" ), |
298 | // AnEV( "LOGNAME=" ), -> SPECIAL | 298 | AnEV( "LOGNAME" ), |
299 | AnEV( "USER=" ), | 299 | AnEV( "USER" ), |
300 | AnEV( "LD_LIBRARY_PATH=" ), | 300 | AnEV( "LD_LIBRARY_PATH" ), |
301 | AnEV( "PATH=" ), | 301 | AnEV( "PATH" ), |
302 | AnEV( "QTDIR=" ), | 302 | AnEV( "QTDIR" ), |
303 | AnEV( "OPIEDIR=" ), | 303 | AnEV( "OPIEDIR" ), |
304 | AnEV( "SHELL=" ), | 304 | AnEV( "SHELL" ), |
305 | { NULL, 0 } | 305 | { NULL, 0 } |
@@ -311,2 +311,5 @@ void TheNSResources::detectCurrentUser( void ) { | |||
311 | 311 | ||
312 | CurrentUser.UserName = ""; | ||
313 | CurrentUser.HomeDir = ""; | ||
314 | |||
312 | if( getenv( "OPIEDIR" ) == 0 ) { | 315 | if( getenv( "OPIEDIR" ) == 0 ) { |
@@ -369,28 +372,23 @@ void TheNSResources::detectCurrentUser( void ) { | |||
369 | while( Data < DataEnd ) { | 372 | while( Data < DataEnd ) { |
370 | if( strncmp( Data, "LOGNAME=", 8 ) == 0 ) { | ||
371 | CurrentUser.UserName = Data+8; | ||
372 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | ||
373 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | ||
374 | strdup( Data ); | ||
375 | } else if( strncmp( Data, "HOME=", 5 ) == 0 ) { | ||
376 | CurrentUser.HomeDir = Data+5; | ||
377 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | ||
378 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | ||
379 | strdup( Data ); | ||
380 | } else { | ||
381 | EnvVar_t * Run = EV; | ||
382 | while( Run->Name ) { | ||
383 | if( strncmp( Data, Run->Name, Run->Len ) == 0 ) { | ||
384 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | ||
385 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | ||
386 | strdup( Data ); | ||
387 | // put OPIEDIR in env | ||
388 | if( strcmp( Run->Name, "OPIEDIR=" ) == 0 ) { | ||
389 | putenv( CurrentUser.EnvList[CurrentUser.EnvList.size()-1] ); | ||
390 | 373 | ||
391 | } | 374 | EnvVar_t * Run = EV; |
392 | break; | 375 | while( Run->Name ) { |
376 | if( strncmp( Data, Run->Name, Run->Len ) == 0 && | ||
377 | Data[Run->Len] == '=' | ||
378 | ) { | ||
379 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | ||
380 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | ||
381 | strdup( Data ); | ||
382 | |||
383 | if( strcmp( Run->Name, "OPIEDIR" ) == 0 ) { | ||
384 | // put OPIEDIR in env | ||
385 | putenv( CurrentUser.EnvList[CurrentUser.EnvList.size()-1] ); | ||
386 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { | ||
387 | CurrentUser.HomeDir = Data+5; | ||
388 | } else if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { | ||
389 | CurrentUser.UserName = Data+8; | ||
393 | } | 390 | } |
394 | Run ++; | 391 | break; |
395 | } | 392 | } |
393 | Run ++; | ||
396 | } | 394 | } |
@@ -423,27 +421,26 @@ void TheNSResources::detectCurrentUser( void ) { | |||
423 | } else { | 421 | } else { |
424 | CurrentUser.UserName = getenv( "LOGNAME" ); | 422 | char * X; |
425 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 423 | QString S; |
426 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | 424 | |
427 | strdup( CurrentUser.UserName ); | 425 | EnvVar_t * Run = EV; |
428 | 426 | while( Run->Name ) { | |
429 | CurrentUser.HomeDir = getenv( "HOME" ); | 427 | |
430 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 428 | if( ( X = getenv( Run->Name ) ) ) { |
431 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = | 429 | Log(( "Env : %s = %s\n", Run->Name, X )); |
432 | strdup( CurrentUser.HomeDir ); | 430 | |
433 | 431 | S.sprintf( "%s=%s", Run->Name, X ); | |
434 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 432 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); |
435 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("USER"); | 433 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = |
436 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 434 | strdup( S.latin1() ); |
437 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("LD_LIBRARY_PATH"); | 435 | |
438 | 436 | if( strcmp( Run->Name, "LOGNAME" ) == 0 ) { | |
439 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 437 | CurrentUser.UserName = X; |
440 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("PATH"); | 438 | } else if( strcmp( Run->Name, "HOME" ) == 0 ) { |
441 | 439 | CurrentUser.HomeDir = X; | |
442 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 440 | } // regulare env var |
443 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("QTDIR"); | 441 | } else { |
444 | 442 | Log(("Could not determine %s\n", Run->Name )); | |
445 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 443 | } |
446 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("OPIEDIR"); | 444 | Run ++; |
447 | CurrentUser.EnvList.resize( CurrentUser.EnvList.size()+1 ); | 445 | } |
448 | CurrentUser.EnvList[CurrentUser.EnvList.size()-1] = getenv("SHELL"); | ||
449 | 446 | ||
diff --git a/noncore/settings/networksettings2/networksettings2/resources.h b/noncore/settings/networksettings2/networksettings2/resources.h index 16355ba..23b120e 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.h +++ b/noncore/settings/networksettings2/networksettings2/resources.h | |||
@@ -29,2 +29,5 @@ public : | |||
29 | 29 | ||
30 | inline bool known( void ) | ||
31 | { return ! HomeDir.isEmpty() && ! UserName.isEmpty(); } | ||
32 | |||
30 | QString UserName; | 33 | QString UserName; |
@@ -101,2 +104,4 @@ public : | |||
101 | 104 | ||
105 | inline bool userKnown( void ) | ||
106 | { return CurrentUser.known(); } | ||
102 | CurrentQPEUser & currentUser( void ) | 107 | CurrentQPEUser & currentUser( void ) |
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp index d709c0a..e2dd5b5 100644 --- a/noncore/settings/networksettings2/nsdata.cpp +++ b/noncore/settings/networksettings2/nsdata.cpp | |||
@@ -17,2 +17,9 @@ NetworkSettingsData::NetworkSettingsData( void ) { | |||
17 | 17 | ||
18 | if( ! NSResources->userKnown() ) { | ||
19 | Log(( "Cannot detect qpe user HOME=\"%s\" USER=\"%s\"\n", | ||
20 | NSResources->currentUser().HomeDir.latin1(), | ||
21 | NSResources->currentUser().UserName.latin1() )); | ||
22 | return; | ||
23 | } | ||
24 | |||
18 | CfgFile.sprintf( "%s/Settings/NS2.conf", | 25 | CfgFile.sprintf( "%s/Settings/NS2.conf", |
@@ -541,3 +548,4 @@ bool NetworkSettingsData::canStart( const char * Interface ) { | |||
541 | 548 | ||
542 | Log( ( "Possiblilies %d\n", PossibleConnections.count() )); | 549 | Log( ( "for %s : Possiblilies %d\n", |
550 | Interface, PossibleConnections.count() )); | ||
543 | switch( PossibleConnections.count() ) { | 551 | switch( PossibleConnections.count() ) { |
@@ -571,2 +579,3 @@ bool NetworkSettingsData::canStart( const char * Interface ) { | |||
571 | // device is ready -> done | 579 | // device is ready -> done |
580 | Log(( "%s-c%d-allowed\n", Interface, NC->number() )); | ||
572 | printf( "%s-c%d-allowed\n", Interface, NC->number() ); | 581 | printf( "%s-c%d-allowed\n", Interface, NC->number() ); |
@@ -577,2 +586,3 @@ bool NetworkSettingsData::canStart( const char * Interface ) { | |||
577 | // if we come here no alternatives are possible | 586 | // if we come here no alternatives are possible |
587 | Log(( "%s-cnn-disallowed\n", Interface )); | ||
578 | printf( "%s-cnn-disallowed\n", Interface ); | 588 | printf( "%s-cnn-disallowed\n", Interface ); |