summaryrefslogtreecommitdiff
path: root/core/opie-login/main.cpp
Side-by-side diff
Diffstat (limited to 'core/opie-login/main.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/opie-login/main.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/core/opie-login/main.cpp b/core/opie-login/main.cpp
index 674829d..81f4d1e 100644
--- a/core/opie-login/main.cpp
+++ b/core/opie-login/main.cpp
@@ -63,4 +63,5 @@ using namespace Opie;
int login_main ( int argc, char **argv, pid_t ppid );
void sigterm ( int sig );
+void sigint ( int sig );
void exit_closelog ( );
@@ -75,5 +76,4 @@ int main ( int argc, char **argv )
pid_t ppid = ::getpid ( );
-
if ( ::geteuid ( ) != 0 ) {
::fprintf ( stderr, "%s can only be executed by root. (or chmod +s)", argv [0] );
@@ -105,5 +105,6 @@ int main ( int argc, char **argv )
::setsid ( );
- ::signal ( SIGTERM, sigterm );
+ ::signal ( SIGTERM, sigterm );
+ ::signal ( SIGINT, sigterm );
::openlog ( "opie-login", LOG_CONS, LOG_AUTHPRIV );
@@ -123,4 +124,6 @@ int main ( int argc, char **argv )
while ( ::waitpid ( child, &status, 0 ) < 0 ) { }
+ LoginApplication::logout ( );
+
if (( ::time ( 0 ) - started ) < 3 ) {
if ( autolog ) {
@@ -149,4 +152,6 @@ int main ( int argc, char **argv )
if ( killedbysig ) { // qpe was killed by an uncaught signal
qApp = 0;
+
+ ::syslog ( LOG_ERR, "Opie was killed by a signal #%d", killedbysig );
QWSServer::setDesktopBackground ( QImage ( ));
@@ -304,4 +309,5 @@ private:
+namespace Opie { extern int force_appearance; } // HACK to get around the force-style setting
@@ -311,4 +317,6 @@ int login_main ( int argc, char **argv, pid_t ppid )
LoginApplication *app = new LoginApplication ( argc, argv, ppid );
+ Opie::force_appearance = 0;
+
app-> setFont ( QFont ( "Helvetica", 10 ));
app-> setStyle ( new QPEStyle ( ));