Bug 176460. Added a filewatcher on file in question
This commit is contained in:
parent
1b5e320313
commit
8ff56b0a12
@ -1,3 +1,7 @@
|
||||
--------------------------------------------------------------------
|
||||
Mon Jul 05 12:22:53 MST 2006 - jnorman@novell.com
|
||||
- Bug 176460. Added a filewatcher on file in question
|
||||
|
||||
--------------------------------------------------------------------
|
||||
Mon Jul 03 13:01:53 MST 2006 - jnorman@novell.com
|
||||
- Bug 164181. Prevent multiple instances of CASAManager on windows.
|
||||
|
@ -1479,7 +1479,7 @@ namespace Novell.CASA.GUI
|
||||
// check Current MP
|
||||
if (entryOldMP.Text != "")
|
||||
{
|
||||
int rcode = miCASA.SetMasterPassword(1, entryOldMP.Text);
|
||||
int rcode = miCASA.SetMasterPassword(0, entryOldMP.Text);
|
||||
if (rcode != 0)
|
||||
{
|
||||
DisplayError("Current Master Password is not correct");
|
||||
|
127
CASA/micasad/cache/MPFileWatcher.cs
vendored
Normal file
127
CASA/micasad/cache/MPFileWatcher.cs
vendored
Normal file
@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
using sscs.common;
|
||||
|
||||
namespace sscs.cache
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for MPFileWatcher.
|
||||
/// </summary>
|
||||
public class MPFileWatcher
|
||||
{
|
||||
FileSystemWatcher fwatcher;
|
||||
private string m_dir = null;
|
||||
private string m_filename = null;
|
||||
private byte[] m_baMP = new byte[32];
|
||||
private byte[] m_baMPIV = new byte[32];
|
||||
private bool m_bIgnoreFileDeletes = false;
|
||||
|
||||
public MPFileWatcher(string MPFilePath, string MPFileName)
|
||||
{
|
||||
m_dir = MPFilePath;
|
||||
m_filename = MPFileName;
|
||||
|
||||
if ((MPFilePath != null) && (MPFileName != null))
|
||||
{
|
||||
LogMessage("Starting MPFile watcher on " + MPFilePath + "/" + MPFileName.Substring(1));
|
||||
fwatcher = new FileSystemWatcher(MPFilePath);
|
||||
fwatcher.Filter = MPFileName.Substring(1)+"*";
|
||||
fwatcher.Deleted += new FileSystemEventHandler(fwatcher_Deleted);
|
||||
fwatcher.Renamed += new RenamedEventHandler(fwatcher_Renamed);
|
||||
fwatcher.Changed += new FileSystemEventHandler(fwatcher_Changed);
|
||||
fwatcher.EnableRaisingEvents = true;
|
||||
}
|
||||
|
||||
if (File.Exists(MPFilePath + MPFileName))
|
||||
{
|
||||
LoadAndCacheMPFiles();
|
||||
}
|
||||
}
|
||||
|
||||
~MPFileWatcher()
|
||||
{
|
||||
if (fwatcher != null)
|
||||
fwatcher.EnableRaisingEvents = false;
|
||||
fwatcher = null;
|
||||
}
|
||||
internal void pauseWatcher()
|
||||
{
|
||||
m_bIgnoreFileDeletes = true;
|
||||
}
|
||||
|
||||
internal void resumeWatcher()
|
||||
{
|
||||
m_bIgnoreFileDeletes = false;
|
||||
}
|
||||
|
||||
private void fwatcher_Deleted(object sender, FileSystemEventArgs e)
|
||||
{
|
||||
if (!m_bIgnoreFileDeletes)
|
||||
{
|
||||
LogMessage("MP file deleted");
|
||||
ReWriteFiles();
|
||||
}
|
||||
}
|
||||
|
||||
private void fwatcher_Changed(object sender, FileSystemEventArgs e)
|
||||
{
|
||||
LogMessage("MP file Changed");
|
||||
LoadAndCacheMPFiles();
|
||||
}
|
||||
|
||||
private void fwatcher_Renamed(object sender, RenamedEventArgs e)
|
||||
{
|
||||
LogMessage("MP file renamed");
|
||||
fwatcher_Deleted(sender, e);
|
||||
}
|
||||
|
||||
private void LoadAndCacheMPFiles()
|
||||
{
|
||||
LogMessage("Loading and caching MP files");
|
||||
|
||||
try
|
||||
{
|
||||
FileStream fs = new FileStream(m_dir + m_filename, FileMode.Open);
|
||||
fs.Read(m_baMP, 0, m_baMP.Length);
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
|
||||
fs = new FileStream(m_dir + m_filename + ".IV", FileMode.Open);
|
||||
fs.Read(m_baMPIV, 0, m_baMPIV.Length);
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogMessage(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void ReWriteFiles()
|
||||
{
|
||||
try
|
||||
{
|
||||
FileStream fs = new FileStream(m_dir + m_filename, FileMode.Create);
|
||||
fs.Write(m_baMP, 0, m_baMP.Length);
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
|
||||
fs = new FileStream(m_dir + m_filename + ".IV", FileMode.Create);
|
||||
fs.Write(m_baMPIV, 0, m_baMPIV.Length);
|
||||
fs.Flush();
|
||||
fs.Close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogMessage(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void LogMessage(string message)
|
||||
{
|
||||
Console.WriteLine(message);
|
||||
CSSSLogger.DbgLog("MPFileWatcher:" + message);
|
||||
}
|
||||
}
|
||||
}
|
11
CASA/micasad/cache/SecretStore.cs
vendored
11
CASA/micasad/cache/SecretStore.cs
vendored
@ -54,6 +54,8 @@ namespace sscs.cache
|
||||
|
||||
private LocalStorage lss = null;
|
||||
bool bIsStorePersistent = false;
|
||||
|
||||
private MPFileWatcher mpWatcher = null;
|
||||
|
||||
private DateTime createTime;
|
||||
public DateTime CreateTime
|
||||
@ -83,6 +85,13 @@ namespace sscs.cache
|
||||
keyChainList = Hashtable.Synchronized(tKeyChainList);
|
||||
|
||||
ssMutex = new Mutex();
|
||||
|
||||
// start a MPFileWatcher if necessary
|
||||
if (mpWatcher == null)
|
||||
{
|
||||
mpWatcher = new MPFileWatcher(GetUserHomeDirectory(), ConstStrings.MICASA_PASSCODE_BY_MASTERPASSWD_FILE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
internal bool IsStorePersistent()
|
||||
@ -721,7 +730,9 @@ namespace sscs.cache
|
||||
byte[] baPasscode = CASACrypto.GetMasterPasscodeUsingMasterPasswd(sCurrentPWD, sMasterFilePath, false);
|
||||
if (baPasscode != null)
|
||||
{
|
||||
mpWatcher.pauseWatcher();
|
||||
CASACrypto.EncryptAndStoreMasterPasscodeUsingString(baPasscode, sNewPWD, sMasterFilePath);
|
||||
mpWatcher.resumeWatcher();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -158,6 +158,11 @@
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "cache\MPFileWatcher.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "cache\Secret.cs"
|
||||
SubType = "Code"
|
||||
@ -260,7 +265,7 @@
|
||||
/>
|
||||
<File
|
||||
RelPath = "init\ProjectInstaller.cs"
|
||||
SubType = "Code"
|
||||
SubType = "Component"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
@ -270,7 +275,7 @@
|
||||
/>
|
||||
<File
|
||||
RelPath = "init\WinSecretStoreClientService.cs"
|
||||
SubType = "Code"
|
||||
SubType = "Component"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
@ -359,6 +364,11 @@
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "verbs\RemoveKey.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "verbs\RemoveKeyChain.cs"
|
||||
SubType = "Code"
|
||||
|
Loading…
Reference in New Issue
Block a user