mirror of
https://github.com/moparisthebest/keepass2android
synced 2025-01-10 21:18:18 -05:00
Fixed bug in IOConnection.cs: Errors when uploading data to http(s) were not handled correctly
Improved logging in CachingFileStorage
This commit is contained in:
parent
6391a00548
commit
3159af19cb
@ -506,11 +506,12 @@ namespace KeePassLib.Serialization
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
if ((ex.Response is HttpWebResponse) && (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.Unauthorized))
|
||||
if ((ex.Response is HttpWebResponse) && (((HttpWebResponse) ex.Response).StatusCode == HttpStatusCode.Unauthorized))
|
||||
{
|
||||
req = CreateWebRequest(ioc, true);
|
||||
f(req);
|
||||
}
|
||||
else throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,10 +146,12 @@ namespace keepass2android.Io
|
||||
if (!IsCached(ioc)
|
||||
|| GetLocalVersionHash(ioc) == GetBaseVersionHash(ioc))
|
||||
{
|
||||
Kp2aLog.Log("CFS: OpenWhenNoLocalChanges");
|
||||
return OpenFileForReadWhenNoLocalChanges(ioc, cachedFilePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
Kp2aLog.Log("CFS: OpenWhenLocalChanges");
|
||||
return OpenFileForReadWhenLocalChanges(ioc, cachedFilePath);
|
||||
}
|
||||
}
|
||||
@ -174,16 +176,21 @@ namespace keepass2android.Io
|
||||
|
||||
if (File.ReadAllText(BaseVersionFilePath(ioc)) == hash)
|
||||
{
|
||||
Kp2aLog.Log("CFS: No changes in remote");
|
||||
//no changes in remote file -> upload
|
||||
using (Stream localData = File.OpenRead(CachedFilePath(ioc)))
|
||||
{
|
||||
if (TryUpdateRemoteFile(localData, ioc, true, hash))
|
||||
{
|
||||
_cacheSupervisor.UpdatedRemoteFileOnLoad(ioc);
|
||||
Kp2aLog.Log("CFS: Updated remote file");
|
||||
}
|
||||
return File.OpenRead(cachedFilePath);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Kp2aLog.Log("CFS: Files in conflict");
|
||||
//conflict: both files changed.
|
||||
return OpenFileForReadWithConflict(ioc, cachedFilePath);
|
||||
}
|
||||
@ -232,18 +239,25 @@ namespace keepass2android.Io
|
||||
string previousHash = null;
|
||||
string baseVersionFilePath = BaseVersionFilePath(ioc);
|
||||
if (File.Exists(baseVersionFilePath))
|
||||
{
|
||||
Kp2aLog.Log("CFS: hashing cached version");
|
||||
previousHash = File.ReadAllText(baseVersionFilePath);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//copy to cache:
|
||||
var fileHash = UpdateCacheFromRemote(ioc, cachedFilePath);
|
||||
|
||||
//notify supervisor what we did:
|
||||
if (previousHash != fileHash)
|
||||
{
|
||||
Kp2aLog.Log("CFS: Updated Cache");
|
||||
_cacheSupervisor.UpdatedCachedFileOnLoad(ioc);
|
||||
}
|
||||
else
|
||||
{
|
||||
Kp2aLog.Log("CFS: Files in Sync");
|
||||
_cacheSupervisor.LoadedFromRemoteInSync(ioc);
|
||||
}
|
||||
|
||||
return File.OpenRead(cachedFilePath);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user