Browse Source

Fixed use of SAK in lock process when autologin is used in TDM.

This resolves bug 2945.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/30/head
Michele Calgaro 7 months ago
parent
commit
7aa9258f19
Signed by: Michele Calgaro <michele.calgaro@yahoo.it> GPG Key ID: 2A75B7CA8ADED5CF

+ 7
- 12
kcontrol/screensaver/scrnsave.cpp View File

@@ -46,20 +46,9 @@
#include <ksimpleconfig.h>

#include <X11/Xlib.h>

#include "scrnsave.h"

#include <fixx11h.h>

#define OPEN_TDMCONFIG_AND_SET_GROUP \
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) { \
mTDMConfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); \
} \
else { \
mTDMConfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); \
} \
mTDMConfig->setGroup("X-:*-Greeter");

template class TQPtrList<SaverConfig>;

const uint widgetEventMask = // X event mask
@@ -94,7 +83,13 @@ KScreenSaver::KScreenSaver(TQWidget *parent, const char *name, const TQStringLis
mTesting = false;

struct stat st;
OPEN_TDMCONFIG_AND_SET_GROUP
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) {
mTDMConfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" ));
}
else {
mTDMConfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" ));
}
mTDMConfig->setGroup("X-:*-Greeter");

// Add non-TDE path
TDEGlobal::dirs()->addResourceType("scrsav",

+ 7
- 9
kdesktop/lock/main.cc View File

@@ -54,14 +54,6 @@
# include <fixx11h.h>
#endif

#define OPEN_TDMCONFIG_AND_SET_GROUP \
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) { \
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); \
} \
else { \
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); \
} \
tdmconfig->setGroup("X-:*-Greeter");

TQXLibWindowList trinity_desktop_lock_hidden_window_list;

@@ -376,7 +368,13 @@ int main( int argc, char **argv )

struct stat st;
KSimpleConfig* tdmconfig;
OPEN_TDMCONFIG_AND_SET_GROUP
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) {
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" ));
}
else {
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" ));
}
tdmconfig->setGroup("X-:*-Greeter");

// Create new LockProcess, which also spawns threads inheriting the blocked signal mask
trinity_desktop_lock_process = new LockProcess;

+ 2
- 1
tdm/backend/CMakeLists.txt View File

@@ -15,6 +15,7 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}
${DBUS_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/tdm/kfrontend
)

link_directories(
@@ -27,7 +28,7 @@ add_custom_command( OUTPUT config.ci
COMMAND perl -w ${CMAKE_SOURCE_DIR}/tdm/confproc.pl ${CMAKE_SOURCE_DIR}/tdm/config.def config.ci
DEPENDS ${CMAKE_SOURCE_DIR}/tdm/confproc.pl ${CMAKE_SOURCE_DIR}/tdm/config.def )

set_property( SOURCE auth.c APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/config.ci )
set_property( SOURCE auth.c session.c APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/config.ci )

if( WITH_XDMCP )
set( XDMCP_LIBRARIES "Xdmcp" )

+ 2
- 2
tdm/backend/dm.c View File

@@ -576,12 +576,12 @@ StartRemoteLogin( struct display *d )
/* Let's try again with some standard paths */
argv[0] = (char *)realloc(argv[0], strlen("/usr/X11R6/bin/X") + 1);
if (argv[0] != NULL) {
argv[0] = "/usr/X11R6/bin/X";
strcpy(argv[0], "/usr/X11R6/bin/X");
Debug( "exec %\"[s\n", argv );
(void)execv( argv[0], argv );
LogError( "X server %\"s cannot be executed\n", argv[0] );
argv[0] = "/usr/bin/X"; /* Shorter than the previous file name */
strcpy(argv[0], "/usr/bin/X"); // Shorter than the previous file name
Debug( "exec %\"[s\n", argv );
(void)execv( argv[0], argv );
LogError( "X server %\"s cannot be executed\n", argv[0] );

+ 25
- 0
tdm/backend/session.c View File

@@ -34,6 +34,8 @@ from the copyright holder.
* subdaemon event loop, etc.
*/


#include "tdmconfig.h"
#include "dm.h"
#include "dm_error.h"

@@ -49,6 +51,8 @@ from the copyright holder.
#include "consolekit.h"
#endif

#define TSAK_FIFO_FILE "/tmp/tdesocket-global/tsak"

struct display *td;
const char *td_setup = "auto";

@@ -576,6 +580,27 @@ ManageSession( struct display *d )
goto regreet;
}

int start_tsak = 0;
#ifdef BUILD_TSAK
start_tsak = d->useSAK;
#endif
if (start_tsak) {
if (system(KDE_BINDIR "/tsak checkdeps") != 0) {
start_tsak = 0;
}
}
if (start_tsak) {
int ret_pid = fork();
if (ret_pid == 0) {
// Child process
system(KDE_BINDIR "/tsak");
exit(0);
}
}
else {
remove(TSAK_FIFO_FILE);
}

tdiff = time( 0 ) - td->hstent->lastExit - td->openDelay;
if (AutoLogon( tdiff )) {
if (!Verify( conv_auto, FALSE ))

+ 2
- 1
tdm/config.def View File

@@ -2011,10 +2011,11 @@ Description:
Key: UseSAK
Type: bool
Default: false
User: core
User: greeter
Instance: #:*/false
Comment:
SAK
Use SAK
Description:
If true then the SAK anti-spoofing dialog will be utilized


+ 0
- 22
tdm/kfrontend/kgapp.cpp View File

@@ -67,8 +67,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <pwd.h>

#define TSAK_FIFO_FILE "/tmp/tdesocket-global/tsak"

bool argb_visual_available = false;
bool has_twin = false;
bool is_themed = false;
@@ -217,7 +215,6 @@ kg_main( const char *argv0 )
TDEApplication::disableAutoDcopRegistration();
TDECrash::setSafer( true );

TDEProcess *tsak = 0;
TDEProcess *kbdl = 0;
TDEProcess *ccsm = 0;
TDEProcess *proc = 0;
@@ -230,25 +227,6 @@ kg_main( const char *argv0 )
#else
trinity_desktop_lock_use_sak = false;
#endif
if (trinity_desktop_lock_use_sak) {
if (system(KDE_BINDIR "/tsak checkdeps") != 0) {
trinity_desktop_lock_use_sak = false;
}
}
if (trinity_desktop_lock_use_sak) {
tsak = new TDEProcess;
*tsak << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + "tsak";
tsak->start(TDEProcess::Block, TDEProcess::AllOutput);
}
else {
remove(TSAK_FIFO_FILE);
}
if (tsak) {
tsak->closeStdin();
tsak->closeStdout();
tsak->detach();
delete tsak;
}

if (trinity_desktop_synchronize_keyboard_lights &&
TQString(getenv("DISPLAY")).startsWith(":")) {

Loading…
Cancel
Save