summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2012-04-27 13:26:04 -0500
committerTimothy Pearson <[email protected]>2012-04-27 13:26:04 -0500
commit22d0a673d7d6049d388847b476df1e5b6f3d6b70 (patch)
treeb6fc0fe18603cf23bfbcf480a169081b11a99beb
parente899b7beb6b0f2db8c08dfdc14c29efb99046086 (diff)
downloadtdebase-22d0a673d7d6049d388847b476df1e5b6f3d6b70.tar.gz
tdebase-22d0a673d7d6049d388847b476df1e5b6f3d6b70.zip
Check for tsak presence on lock engage
Fix tsak not exiting on request Clean up build warnings
-rw-r--r--kdesktop/lock/lockprocess.cc12
-rw-r--r--tdmlib/kgreet_pam.cpp1
-rw-r--r--tdmlib/kgreet_winbind.cpp6
-rw-r--r--tdmlib/tdmtsak.cpp14
-rw-r--r--tsak/main.cpp7
5 files changed, 30 insertions, 10 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index 2b47661db..f33040b85 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -1636,6 +1636,18 @@ bool LockProcess::checkPass()
return 0;
if (trinity_desktop_lock_use_sak) {
+ // Verify SAK operational status
+ KProcess* checkSAKProcess = new KProcess;
+ *checkSAKProcess << "tdmtsak" << "check";
+ checkSAKProcess->start(KProcess::Block, KProcess::NoCommunication);
+ int retcode = checkSAKProcess->exitStatus();
+ delete checkSAKProcess;
+ if (retcode != 0) {
+ trinity_desktop_lock_use_sak = false;
+ }
+ }
+
+ if (trinity_desktop_lock_use_sak) {
// Wait for SAK press before continuing...
SAKDlg inDlg( this );
execDialog( &inDlg );
diff --git a/tdmlib/kgreet_pam.cpp b/tdmlib/kgreet_pam.cpp
index 82506fb43..8e2946183 100644
--- a/tdmlib/kgreet_pam.cpp
+++ b/tdmlib/kgreet_pam.cpp
@@ -354,7 +354,6 @@ KPamGreeter::textPrompt( const char *prompt, bool echo, bool nonBlocking )
}
else if (m_themer) {
kg_debug("themer found!");
- KdmItem *pw_label = 0;
KdmLabel *tdmlabel = static_cast<KdmLabel*>(m_themer->findNode("pw-label"));
if (tdmlabel) {
diff --git a/tdmlib/kgreet_winbind.cpp b/tdmlib/kgreet_winbind.cpp
index d5626a3fd..85721dd45 100644
--- a/tdmlib/kgreet_winbind.cpp
+++ b/tdmlib/kgreet_winbind.cpp
@@ -607,14 +607,14 @@ KWinbindGreeter::slotEndDomainList()
TQString current = domainCombo->currentText();
- for (int i = 0; i < domainList.count(); ++i) {
- if (i < domainCombo->count())
+ for (unsigned int i = 0; i < domainList.count(); ++i) {
+ if (i < (uint)domainCombo->count())
domainCombo->changeItem(domainList[i], i);
else
domainCombo->insertItem(domainList[i], i);
}
- while (domainCombo->count() > domainList.count())
+ while ((uint)domainCombo->count() > domainList.count())
domainCombo->removeItem(domainCombo->count()-1);
domainCombo->setCurrentItem( current );
diff --git a/tdmlib/tdmtsak.cpp b/tdmlib/tdmtsak.cpp
index a7cc802f9..b3ff08cc1 100644
--- a/tdmlib/tdmtsak.cpp
+++ b/tdmlib/tdmtsak.cpp
@@ -121,10 +121,14 @@ int main (int argc, char *argv[])
int verifier_result = tde_sak_verify_calling_process();
bool isdm = false;
+ bool checkonly = false;
if (argc == 2) {
if (strcmp(argv[1], "dm") == 0) {
isdm = true;
}
+ if (strcmp(argv[1], "check") == 0) {
+ checkonly = true;
+ }
}
if (!isdm) {
@@ -139,6 +143,14 @@ int main (int argc, char *argv[])
// OK, the calling process is authorized to retrieve SAK data
// First, flush the buffer
mPipe_fd = open(FIFO_FILE, O_RDONLY | O_NONBLOCK);
+ if (checkonly) {
+ if (mPipe_fd < 0) {
+ return 6; // SAK not available
+ }
+ else {
+ return 0;
+ }
+ }
numread = 1;
while (numread > 0) {
numread = read(mPipe_fd, readbuf, 6);
@@ -177,4 +189,4 @@ int main (int argc, char *argv[])
else {
return verifier_result;
}
-} \ No newline at end of file
+}
diff --git a/tsak/main.cpp b/tsak/main.cpp
index f0fe3b1a3..38ecbcf0b 100644
--- a/tsak/main.cpp
+++ b/tsak/main.cpp
@@ -108,7 +108,6 @@ void signal_callback_handler(int signum)
{
// Terminate program
throw exit_exception(signum);
- exit(signum);
}
/* termination handler */
@@ -395,7 +394,7 @@ int main (int argc, char *argv[])
struct input_event event;
struct input_event revev;
struct uinput_user_dev devinfo={{0},{0}};
- int devout[MAX_KEYBOARDS], rd, i, value, size = sizeof (struct input_event);
+ int devout[MAX_KEYBOARDS], rd, i, size = sizeof (struct input_event);
char name[256] = "Unknown";
bool ctrl_down = false;
bool alt_down = false;
@@ -579,8 +578,6 @@ int main (int argc, char *argv[])
}
}
- value = ev[0].value;
-
if (ev[0].value == 0 && ev[0].type == 1) { // Read the key release event
if (keycode[(ev[0].code)]) {
if (strcmp(keycode[(ev[0].code)], "<control>") == 0) ctrl_down = false;
@@ -713,7 +710,7 @@ int main (int argc, char *argv[])
}
}
catch(exit_exception& e) {
- exit(e.c);
+ tsak_friendly_termination();
}
return 6;