From 008b1d900818555cc69ced785769f49895a292c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 1 Sep 2005 15:04:18 +0000 Subject: [PATCH] fix for network password git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14099 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/screen_saver/ScreenSaverPrefs.h | 4 +--- src/bin/screen_blanker/ScreenSaverApp.cpp | 4 +--- src/kits/screensaver/ScreenSaverPrefs.cpp | 13 +++++++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/headers/private/screen_saver/ScreenSaverPrefs.h b/headers/private/screen_saver/ScreenSaverPrefs.h index 8348104951..97bf620e85 100644 --- a/headers/private/screen_saver/ScreenSaverPrefs.h +++ b/headers/private/screen_saver/ScreenSaverPrefs.h @@ -41,7 +41,7 @@ public: bigtime_t PasswordTime() {return fPasswordTime;} const char *Password() { return fPassword.String(); } const char *LockMethod() { return fLockMethod.String(); } - bool IsNetworkPassword() {return fIsNetworkPassword;} + bool IsNetworkPassword() {return (strcmp(fLockMethod.String(), "custom") != 0);} const char *ModuleName() {return fModuleName.String();} status_t GetState(const char *name, BMessage *stateMsg); @@ -78,8 +78,6 @@ private: BString fModuleName; BString fLockMethod; - bool fIsNetworkPassword; - BMessage fSettings; BPath fSSPath, fNetworkPath; }; diff --git a/src/bin/screen_blanker/ScreenSaverApp.cpp b/src/bin/screen_blanker/ScreenSaverApp.cpp index a9c784bc6a..156869394f 100755 --- a/src/bin/screen_blanker/ScreenSaverApp.cpp +++ b/src/bin/screen_blanker/ScreenSaverApp.cpp @@ -94,9 +94,7 @@ ScreenSaverApp::MessageReceived(BMessage *message) switch(message->what) { case UNLOCK_MESSAGE: { - char salt[3] = ""; - strncpy(salt, fPref.Password(), 2); - if (strcmp(crypt(fPww->GetPassword(), salt),fPref.Password()) != 0) { + if (strcmp(fPref.Password(), crypt(fPww->GetPassword(), fPref.Password())) != 0) { beep(); fPww->SetPassword(""); delete fRunner; diff --git a/src/kits/screensaver/ScreenSaverPrefs.cpp b/src/kits/screensaver/ScreenSaverPrefs.cpp index db82baaeb3..50b37f59f2 100644 --- a/src/kits/screensaver/ScreenSaverPrefs.cpp +++ b/src/kits/screensaver/ScreenSaverPrefs.cpp @@ -64,10 +64,12 @@ ScreenSaverPrefs::LoadSettings() // This ugly piece opens the networking file and reads the password, if it exists. if ((networkFile=fopen(fNetworkPath.Path(),"r"))) while (buffer==fgets(buffer,512,networkFile)) - if ((start=strstr(buffer,"PASSWORD ="))) { - char password[12]; - strncpy(password, start+10,strlen(start-11)); + if ((start=strstr(buffer,"PASSWORD = "))) { + char password[14]; + strncpy(password, start+11,strlen(start+11)-1); + password[strlen(start+11)-1] = 0; fPassword = password; + break; } } return true; @@ -124,7 +126,10 @@ ScreenSaverPrefs::GetSettings() fSettings.AddInt32("cornernever", fNeverBlankCorner); fSettings.AddBool("lockenable", fLockEnabled); fSettings.AddInt32("lockdelay", fPasswordTime/1000000); - fSettings.AddString("lockpassword", fPassword); + if (IsNetworkPassword()) + fSettings.AddString("lockpassword", ""); + else + fSettings.AddString("lockpassword", fPassword); fSettings.AddString("lockmethod", fLockMethod); fSettings.AddString("modulename", fModuleName);