summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/opie-login/loginapplication.cpp5
-rw-r--r--core/opie-login/loginapplication.h5
-rw-r--r--core/opie-login/main.cpp11
3 files changed, 14 insertions, 7 deletions
diff --git a/core/opie-login/loginapplication.cpp b/core/opie-login/loginapplication.cpp
index 103d63b..8d86a71 100644
--- a/core/opie-login/loginapplication.cpp
+++ b/core/opie-login/loginapplication.cpp
@@ -45,8 +45,9 @@ extern "C" {
45LoginApplication *lApp; 45LoginApplication *lApp;
46 46
47LoginApplication::LoginApplication ( int &argc, char **argv ) 47LoginApplication::LoginApplication ( int &argc, char **argv, pid_t parentpid )
48 : QPEApplication ( argc, argv, GuiServer ) 48 : QPEApplication ( argc, argv, GuiServer )
49{ 49{
50 lApp = this; 50 lApp = this;
51 m_parentpid = parentpid;
51} 52}
52 53
@@ -217,4 +218,4 @@ void LoginApplication::quitToConsole ( )
217{ 218{
218 QPEApplication::quit ( ); 219 QPEApplication::quit ( );
219 ::kill ( ::getppid ( ), SIGTERM ); 220 ::kill ( m_parentpid, SIGTERM );
220} 221}
diff --git a/core/opie-login/loginapplication.h b/core/opie-login/loginapplication.h
index 062c088..4e7cf79 100644
--- a/core/opie-login/loginapplication.h
+++ b/core/opie-login/loginapplication.h
@@ -40,5 +40,5 @@ struct pam_response;
40class LoginApplication : public QPEApplication { 40class LoginApplication : public QPEApplication {
41public: 41public:
42 LoginApplication ( int &argc, char **argv ); 42 LoginApplication ( int &argc, char **argv, pid_t parentpid );
43 43
44 static bool checkPassword ( const char *user, const char *password ); 44 static bool checkPassword ( const char *user, const char *password );
@@ -61,4 +61,7 @@ private:
61 static const char *s_pam_password; 61 static const char *s_pam_password;
62#endif 62#endif
63
64private:
65 pid_t m_parentpid;
63}; 66};
64 67
diff --git a/core/opie-login/main.cpp b/core/opie-login/main.cpp
index 579a93a..674829d 100644
--- a/core/opie-login/main.cpp
+++ b/core/opie-login/main.cpp
@@ -61,5 +61,5 @@
61using namespace Opie; 61using namespace Opie;
62 62
63int login_main ( int argc, char **argv ); 63int login_main ( int argc, char **argv, pid_t ppid );
64void sigterm ( int sig ); 64void sigterm ( int sig );
65void exit_closelog ( ); 65void exit_closelog ( );
@@ -73,4 +73,7 @@ static struct option long_options [] = {
73int main ( int argc, char **argv ) 73int main ( int argc, char **argv )
74{ 74{
75 pid_t ppid = ::getpid ( );
76
77
75 if ( ::geteuid ( ) != 0 ) { 78 if ( ::geteuid ( ) != 0 ) {
76 ::fprintf ( stderr, "%s can only be executed by root. (or chmod +s)", argv [0] ); 79 ::fprintf ( stderr, "%s can only be executed by root. (or chmod +s)", argv [0] );
@@ -184,5 +187,5 @@ int main ( int argc, char **argv )
184 } 187 }
185 else 188 else
186 ::exit ( login_main ( argc, argv )); 189 ::exit ( login_main ( argc, argv, ppid ));
187 } 190 }
188 } 191 }
@@ -303,8 +306,8 @@ private:
303 306
304 307
305int login_main ( int argc, char **argv ) 308int login_main ( int argc, char **argv, pid_t ppid )
306{ 309{
307 QWSServer::setDesktopBackground( QImage() ); 310 QWSServer::setDesktopBackground( QImage() );
308 LoginApplication *app = new LoginApplication ( argc, argv ); 311 LoginApplication *app = new LoginApplication ( argc, argv, ppid );
309 312
310 app-> setFont ( QFont ( "Helvetica", 10 )); 313 app-> setFont ( QFont ( "Helvetica", 10 ));