Disassembled CarotDav v1.14.7 with dotPeek 2017.2
This commit is contained in:
115
Rei.Fs/UriParserFixer.cs
Normal file
115
Rei.Fs/UriParserFixer.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Rei.Fs.UriParserFixer
|
||||
// Assembly: Rei.Fs, Version=1.13.2.8796, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: D8B08A8B-697C-4439-9CFF-1BE4EE46F7B0
|
||||
// Assembly location: F:\Eigene Dateien\Dropbox\portable Collection\Progs\CarotDAV\Rei.Fs.dll
|
||||
|
||||
using Microsoft.VisualBasic.CompilerServices;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Security.Permissions;
|
||||
using System.Threading;
|
||||
|
||||
namespace Rei.Fs
|
||||
{
|
||||
public class UriParserFixer
|
||||
{
|
||||
private static object @lock = RuntimeHelpers.GetObjectValue(new object());
|
||||
private static bool m_registered;
|
||||
private const int ConvertPathSlashes = 4194304;
|
||||
private const int UnEscapeDotsAndSlashes = 33554432;
|
||||
|
||||
public static void Register()
|
||||
{
|
||||
try
|
||||
{
|
||||
object Expression = UriParserFixer.@lock;
|
||||
ObjectFlowControl.CheckForSyncLockOnValueType(Expression);
|
||||
Monitor.Enter(Expression);
|
||||
try
|
||||
{
|
||||
if (UriParserFixer.m_registered)
|
||||
return;
|
||||
ReflectionPermission reflectionPermission = new ReflectionPermission(ReflectionPermissionFlag.AllFlags);
|
||||
SecurityPermission securityPermission = new SecurityPermission(SecurityPermissionFlag.AllFlags);
|
||||
reflectionPermission.Demand();
|
||||
securityPermission.Demand();
|
||||
FieldInfo field1 = typeof (UriParser).GetField("HttpUri", BindingFlags.Static | BindingFlags.NonPublic);
|
||||
FieldInfo field2 = typeof (UriParser).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
UriParser uriParser1 = (UriParser) field1.GetValue((object) null);
|
||||
int num1 = Conversions.ToInteger(field2.GetValue((object) uriParser1)) & -4194305 & -33554433;
|
||||
field2.SetValue((object) uriParser1, (object) num1);
|
||||
FieldInfo field3 = typeof (UriParser).GetField("HttpsUri", BindingFlags.Static | BindingFlags.NonPublic);
|
||||
FieldInfo field4 = typeof (UriParser).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
UriParser uriParser2 = (UriParser) field3.GetValue((object) null);
|
||||
int num2 = Conversions.ToInteger(field4.GetValue((object) uriParser2)) & -4194305 & -33554433;
|
||||
field4.SetValue((object) uriParser2, (object) num2);
|
||||
UriParserFixer.m_registered = true;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(Expression);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ProjectData.SetProjectError(ex);
|
||||
ProjectData.ClearProjectError();
|
||||
}
|
||||
}
|
||||
|
||||
public static void UnRegister()
|
||||
{
|
||||
try
|
||||
{
|
||||
object Expression = UriParserFixer.@lock;
|
||||
ObjectFlowControl.CheckForSyncLockOnValueType(Expression);
|
||||
Monitor.Enter(Expression);
|
||||
try
|
||||
{
|
||||
if (!UriParserFixer.m_registered)
|
||||
return;
|
||||
FieldInfo field1 = typeof (UriParser).GetField("HttpUri", BindingFlags.Static | BindingFlags.NonPublic);
|
||||
FieldInfo field2 = typeof (UriParser).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
UriParser uriParser1 = (UriParser) field1.GetValue((object) null);
|
||||
int num1 = Conversions.ToInteger(field2.GetValue((object) uriParser1)) | 4194304 | 33554432;
|
||||
field2.SetValue((object) uriParser1, (object) num1);
|
||||
FieldInfo field3 = typeof (UriParser).GetField("HttpsUri", BindingFlags.Static | BindingFlags.NonPublic);
|
||||
FieldInfo field4 = typeof (UriParser).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
UriParser uriParser2 = (UriParser) field3.GetValue((object) null);
|
||||
int num2 = Conversions.ToInteger(field4.GetValue((object) uriParser2)) | 4194304 | 33554432;
|
||||
field4.SetValue((object) uriParser2, (object) num2);
|
||||
UriParserFixer.m_registered = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(Expression);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ProjectData.SetProjectError(ex);
|
||||
ProjectData.ClearProjectError();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsRegister
|
||||
{
|
||||
get
|
||||
{
|
||||
object Expression = UriParserFixer.@lock;
|
||||
ObjectFlowControl.CheckForSyncLockOnValueType(Expression);
|
||||
Monitor.Enter(Expression);
|
||||
try
|
||||
{
|
||||
return UriParserFixer.m_registered;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(Expression);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user