Do not continue with symbolic links, not yet supported.

This commit is contained in:
2017-05-21 14:26:21 +01:00
parent 93a6d217c7
commit 01461176f3
3 changed files with 33 additions and 0 deletions

View File

@@ -345,11 +345,29 @@ namespace osrepodbmgr.Core
#endif
long counter = 0;
string format = null;
bool isLink = false;
JsonTextReader jsReader = new JsonTextReader(new StringReader(lsarOutput));
while(jsReader.Read())
{
if(jsReader.TokenType == JsonToken.PropertyName && jsReader.Value != null && jsReader.Value.ToString() == "XADFileName")
counter++;
else if(jsReader.TokenType == JsonToken.PropertyName && jsReader.Value != null && jsReader.Value.ToString() == "XADIsLink")
{
jsReader.Read();
if(jsReader.TokenType == JsonToken.Integer)
isLink = int.Parse(jsReader.Value.ToString()) > 0;
}
else if(jsReader.TokenType == JsonToken.PropertyName && jsReader.Value != null && jsReader.Value.ToString() == "XADIsHardLink")
{
jsReader.Read();
// TODO: Support symlinks, devices, hardlinks, whatever?
if(jsReader.TokenType == JsonToken.Integer && isLink && int.Parse(jsReader.Value.ToString()) == 0)
{
if(Failed != null)
Failed("Archive contains unsupported symbolic links, not continuing.");
return;
}
}
else if(jsReader.TokenType == JsonToken.PropertyName && jsReader.Value != null && jsReader.Value.ToString() == "lsarFormatName")
{
jsReader.Read();