scripts
This commit is contained in:
@@ -0,0 +1,855 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
namespace ICSharpCode.SharpZipLib.Tar
|
||||
{
|
||||
// Token: 0x02000037 RID: 55
|
||||
public class TarHeader : ICloneable
|
||||
{
|
||||
// Token: 0x060001DE RID: 478 RVA: 0x0000AE4C File Offset: 0x00009E4C
|
||||
public TarHeader()
|
||||
{
|
||||
this.Magic = "ustar ";
|
||||
this.Version = " ";
|
||||
this.Name = "";
|
||||
this.LinkName = "";
|
||||
this.UserId = TarHeader.defaultUserId;
|
||||
this.GroupId = TarHeader.defaultGroupId;
|
||||
this.UserName = TarHeader.defaultUser;
|
||||
this.GroupName = TarHeader.defaultGroupName;
|
||||
this.Size = 0L;
|
||||
}
|
||||
|
||||
// Token: 0x17000062 RID: 98
|
||||
// (get) Token: 0x060001DF RID: 479 RVA: 0x0000AEBF File Offset: 0x00009EBF
|
||||
// (set) Token: 0x060001E0 RID: 480 RVA: 0x0000AEC7 File Offset: 0x00009EC7
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
this.name = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001E1 RID: 481 RVA: 0x0000AEDE File Offset: 0x00009EDE
|
||||
[Obsolete("Use the Name property instead", true)]
|
||||
public string GetName()
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
|
||||
// Token: 0x17000063 RID: 99
|
||||
// (get) Token: 0x060001E2 RID: 482 RVA: 0x0000AEE6 File Offset: 0x00009EE6
|
||||
// (set) Token: 0x060001E3 RID: 483 RVA: 0x0000AEEE File Offset: 0x00009EEE
|
||||
public int Mode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.mode;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.mode = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000064 RID: 100
|
||||
// (get) Token: 0x060001E4 RID: 484 RVA: 0x0000AEF7 File Offset: 0x00009EF7
|
||||
// (set) Token: 0x060001E5 RID: 485 RVA: 0x0000AEFF File Offset: 0x00009EFF
|
||||
public int UserId
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.userId;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.userId = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000065 RID: 101
|
||||
// (get) Token: 0x060001E6 RID: 486 RVA: 0x0000AF08 File Offset: 0x00009F08
|
||||
// (set) Token: 0x060001E7 RID: 487 RVA: 0x0000AF10 File Offset: 0x00009F10
|
||||
public int GroupId
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.groupId;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.groupId = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000066 RID: 102
|
||||
// (get) Token: 0x060001E8 RID: 488 RVA: 0x0000AF19 File Offset: 0x00009F19
|
||||
// (set) Token: 0x060001E9 RID: 489 RVA: 0x0000AF21 File Offset: 0x00009F21
|
||||
public long Size
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.size;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 0L)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("value", "Cannot be less than zero");
|
||||
}
|
||||
this.size = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000067 RID: 103
|
||||
// (get) Token: 0x060001EA RID: 490 RVA: 0x0000AF3F File Offset: 0x00009F3F
|
||||
// (set) Token: 0x060001EB RID: 491 RVA: 0x0000AF48 File Offset: 0x00009F48
|
||||
public DateTime ModTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.modTime;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < TarHeader.dateTime1970)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("value", "ModTime cannot be before Jan 1st 1970");
|
||||
}
|
||||
this.modTime = new DateTime(value.Year, value.Month, value.Day, value.Hour, value.Minute, value.Second);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000068 RID: 104
|
||||
// (get) Token: 0x060001EC RID: 492 RVA: 0x0000AFA7 File Offset: 0x00009FA7
|
||||
public int Checksum
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.checksum;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000069 RID: 105
|
||||
// (get) Token: 0x060001ED RID: 493 RVA: 0x0000AFAF File Offset: 0x00009FAF
|
||||
public bool IsChecksumValid
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.isChecksumValid;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006A RID: 106
|
||||
// (get) Token: 0x060001EE RID: 494 RVA: 0x0000AFB7 File Offset: 0x00009FB7
|
||||
// (set) Token: 0x060001EF RID: 495 RVA: 0x0000AFBF File Offset: 0x00009FBF
|
||||
public byte TypeFlag
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.typeFlag;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.typeFlag = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006B RID: 107
|
||||
// (get) Token: 0x060001F0 RID: 496 RVA: 0x0000AFC8 File Offset: 0x00009FC8
|
||||
// (set) Token: 0x060001F1 RID: 497 RVA: 0x0000AFD0 File Offset: 0x00009FD0
|
||||
public string LinkName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.linkName;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
this.linkName = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006C RID: 108
|
||||
// (get) Token: 0x060001F2 RID: 498 RVA: 0x0000AFE7 File Offset: 0x00009FE7
|
||||
// (set) Token: 0x060001F3 RID: 499 RVA: 0x0000AFEF File Offset: 0x00009FEF
|
||||
public string Magic
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.magic;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
this.magic = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006D RID: 109
|
||||
// (get) Token: 0x060001F4 RID: 500 RVA: 0x0000B006 File Offset: 0x0000A006
|
||||
// (set) Token: 0x060001F5 RID: 501 RVA: 0x0000B00E File Offset: 0x0000A00E
|
||||
public string Version
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.version;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
this.version = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006E RID: 110
|
||||
// (get) Token: 0x060001F6 RID: 502 RVA: 0x0000B025 File Offset: 0x0000A025
|
||||
// (set) Token: 0x060001F7 RID: 503 RVA: 0x0000B030 File Offset: 0x0000A030
|
||||
public string UserName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.userName;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
this.userName = value.Substring(0, Math.Min(32, value.Length));
|
||||
return;
|
||||
}
|
||||
string text = Environment.UserName;
|
||||
if (text.Length > 32)
|
||||
{
|
||||
text = text.Substring(0, 32);
|
||||
}
|
||||
this.userName = text;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700006F RID: 111
|
||||
// (get) Token: 0x060001F8 RID: 504 RVA: 0x0000B07C File Offset: 0x0000A07C
|
||||
// (set) Token: 0x060001F9 RID: 505 RVA: 0x0000B084 File Offset: 0x0000A084
|
||||
public string GroupName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.groupName;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
this.groupName = "None";
|
||||
return;
|
||||
}
|
||||
this.groupName = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000070 RID: 112
|
||||
// (get) Token: 0x060001FA RID: 506 RVA: 0x0000B09C File Offset: 0x0000A09C
|
||||
// (set) Token: 0x060001FB RID: 507 RVA: 0x0000B0A4 File Offset: 0x0000A0A4
|
||||
public int DevMajor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.devMajor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.devMajor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000071 RID: 113
|
||||
// (get) Token: 0x060001FC RID: 508 RVA: 0x0000B0AD File Offset: 0x0000A0AD
|
||||
// (set) Token: 0x060001FD RID: 509 RVA: 0x0000B0B5 File Offset: 0x0000A0B5
|
||||
public int DevMinor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.devMinor;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.devMinor = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060001FE RID: 510 RVA: 0x0000B0BE File Offset: 0x0000A0BE
|
||||
public object Clone()
|
||||
{
|
||||
return base.MemberwiseClone();
|
||||
}
|
||||
|
||||
// Token: 0x060001FF RID: 511 RVA: 0x0000B0C8 File Offset: 0x0000A0C8
|
||||
public void ParseBuffer(byte[] header)
|
||||
{
|
||||
if (header == null)
|
||||
{
|
||||
throw new ArgumentNullException("header");
|
||||
}
|
||||
int num = 0;
|
||||
this.name = TarHeader.ParseName(header, num, 100).ToString();
|
||||
num += 100;
|
||||
this.mode = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
num += 8;
|
||||
this.UserId = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
num += 8;
|
||||
this.GroupId = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
num += 8;
|
||||
this.Size = TarHeader.ParseOctal(header, num, 12);
|
||||
num += 12;
|
||||
this.ModTime = TarHeader.GetDateTimeFromCTime(TarHeader.ParseOctal(header, num, 12));
|
||||
num += 12;
|
||||
this.checksum = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
num += 8;
|
||||
this.TypeFlag = header[num++];
|
||||
this.LinkName = TarHeader.ParseName(header, num, 100).ToString();
|
||||
num += 100;
|
||||
this.Magic = TarHeader.ParseName(header, num, 6).ToString();
|
||||
num += 6;
|
||||
this.Version = TarHeader.ParseName(header, num, 2).ToString();
|
||||
num += 2;
|
||||
this.UserName = TarHeader.ParseName(header, num, 32).ToString();
|
||||
num += 32;
|
||||
this.GroupName = TarHeader.ParseName(header, num, 32).ToString();
|
||||
num += 32;
|
||||
this.DevMajor = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
num += 8;
|
||||
this.DevMinor = (int)TarHeader.ParseOctal(header, num, 8);
|
||||
this.isChecksumValid = this.Checksum == TarHeader.MakeCheckSum(header);
|
||||
}
|
||||
|
||||
// Token: 0x06000200 RID: 512 RVA: 0x0000B234 File Offset: 0x0000A234
|
||||
public void WriteHeader(byte[] outBuffer)
|
||||
{
|
||||
if (outBuffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("outBuffer");
|
||||
}
|
||||
int i = 0;
|
||||
i = TarHeader.GetNameBytes(this.Name, outBuffer, i, 100);
|
||||
i = TarHeader.GetOctalBytes((long)this.mode, outBuffer, i, 8);
|
||||
i = TarHeader.GetOctalBytes((long)this.UserId, outBuffer, i, 8);
|
||||
i = TarHeader.GetOctalBytes((long)this.GroupId, outBuffer, i, 8);
|
||||
i = TarHeader.GetLongOctalBytes(this.Size, outBuffer, i, 12);
|
||||
i = TarHeader.GetLongOctalBytes((long)TarHeader.GetCTime(this.ModTime), outBuffer, i, 12);
|
||||
int num = i;
|
||||
for (int j = 0; j < 8; j++)
|
||||
{
|
||||
outBuffer[i++] = 32;
|
||||
}
|
||||
outBuffer[i++] = this.TypeFlag;
|
||||
i = TarHeader.GetNameBytes(this.LinkName, outBuffer, i, 100);
|
||||
i = TarHeader.GetAsciiBytes(this.Magic, 0, outBuffer, i, 6);
|
||||
i = TarHeader.GetNameBytes(this.Version, outBuffer, i, 2);
|
||||
i = TarHeader.GetNameBytes(this.UserName, outBuffer, i, 32);
|
||||
i = TarHeader.GetNameBytes(this.GroupName, outBuffer, i, 32);
|
||||
if (this.TypeFlag == 51 || this.TypeFlag == 52)
|
||||
{
|
||||
i = TarHeader.GetOctalBytes((long)this.DevMajor, outBuffer, i, 8);
|
||||
i = TarHeader.GetOctalBytes((long)this.DevMinor, outBuffer, i, 8);
|
||||
}
|
||||
while (i < outBuffer.Length)
|
||||
{
|
||||
outBuffer[i++] = 0;
|
||||
}
|
||||
this.checksum = TarHeader.ComputeCheckSum(outBuffer);
|
||||
TarHeader.GetCheckSumOctalBytes((long)this.checksum, outBuffer, num, 8);
|
||||
this.isChecksumValid = true;
|
||||
}
|
||||
|
||||
// Token: 0x06000201 RID: 513 RVA: 0x0000B391 File Offset: 0x0000A391
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return this.Name.GetHashCode();
|
||||
}
|
||||
|
||||
// Token: 0x06000202 RID: 514 RVA: 0x0000B3A0 File Offset: 0x0000A3A0
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
TarHeader tarHeader = obj as TarHeader;
|
||||
return tarHeader != null && (this.name == tarHeader.name && this.mode == tarHeader.mode && this.UserId == tarHeader.UserId && this.GroupId == tarHeader.GroupId && this.Size == tarHeader.Size && this.ModTime == tarHeader.ModTime && this.Checksum == tarHeader.Checksum && this.TypeFlag == tarHeader.TypeFlag && this.LinkName == tarHeader.LinkName && this.Magic == tarHeader.Magic && this.Version == tarHeader.Version && this.UserName == tarHeader.UserName && this.GroupName == tarHeader.GroupName && this.DevMajor == tarHeader.DevMajor) && this.DevMinor == tarHeader.DevMinor;
|
||||
}
|
||||
|
||||
// Token: 0x06000203 RID: 515 RVA: 0x0000B4CD File Offset: 0x0000A4CD
|
||||
internal static void SetValueDefaults(int userId, string userName, int groupId, string groupName)
|
||||
{
|
||||
TarHeader.userIdAsSet = userId;
|
||||
TarHeader.defaultUserId = userId;
|
||||
TarHeader.userNameAsSet = userName;
|
||||
TarHeader.defaultUser = userName;
|
||||
TarHeader.groupIdAsSet = groupId;
|
||||
TarHeader.defaultGroupId = groupId;
|
||||
TarHeader.groupNameAsSet = groupName;
|
||||
TarHeader.defaultGroupName = groupName;
|
||||
}
|
||||
|
||||
// Token: 0x06000204 RID: 516 RVA: 0x0000B4FF File Offset: 0x0000A4FF
|
||||
internal static void RestoreSetValues()
|
||||
{
|
||||
TarHeader.defaultUserId = TarHeader.userIdAsSet;
|
||||
TarHeader.defaultUser = TarHeader.userNameAsSet;
|
||||
TarHeader.defaultGroupId = TarHeader.groupIdAsSet;
|
||||
TarHeader.defaultGroupName = TarHeader.groupNameAsSet;
|
||||
}
|
||||
|
||||
// Token: 0x06000205 RID: 517 RVA: 0x0000B52C File Offset: 0x0000A52C
|
||||
public static long ParseOctal(byte[] header, int offset, int length)
|
||||
{
|
||||
if (header == null)
|
||||
{
|
||||
throw new ArgumentNullException("header");
|
||||
}
|
||||
long num = 0L;
|
||||
bool flag = true;
|
||||
int num2 = offset + length;
|
||||
int num3 = offset;
|
||||
while (num3 < num2 && header[num3] != 0)
|
||||
{
|
||||
if (header[num3] != 32 && header[num3] != 48)
|
||||
{
|
||||
goto IL_38;
|
||||
}
|
||||
if (!flag)
|
||||
{
|
||||
if (header[num3] != 32)
|
||||
{
|
||||
goto IL_38;
|
||||
}
|
||||
break;
|
||||
}
|
||||
IL_46:
|
||||
num3++;
|
||||
continue;
|
||||
IL_38:
|
||||
flag = false;
|
||||
num = (num << 3) + (long)(header[num3] - 48);
|
||||
goto IL_46;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000206 RID: 518 RVA: 0x0000B588 File Offset: 0x0000A588
|
||||
public static StringBuilder ParseName(byte[] header, int offset, int length)
|
||||
{
|
||||
if (header == null)
|
||||
{
|
||||
throw new ArgumentNullException("header");
|
||||
}
|
||||
if (offset < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset", "Cannot be less than zero");
|
||||
}
|
||||
if (length < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("length", "Cannot be less than zero");
|
||||
}
|
||||
if (offset + length > header.Length)
|
||||
{
|
||||
throw new ArgumentException("Exceeds header size", "length");
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder(length);
|
||||
int num = offset;
|
||||
while (num < offset + length && header[num] != 0)
|
||||
{
|
||||
stringBuilder.Append((char)header[num]);
|
||||
num++;
|
||||
}
|
||||
return stringBuilder;
|
||||
}
|
||||
|
||||
// Token: 0x06000207 RID: 519 RVA: 0x0000B608 File Offset: 0x0000A608
|
||||
public static int GetNameBytes(StringBuilder name, int nameOffset, byte[] buffer, int bufferOffset, int length)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException("name");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
return TarHeader.GetNameBytes(name.ToString(), nameOffset, buffer, bufferOffset, length);
|
||||
}
|
||||
|
||||
// Token: 0x06000208 RID: 520 RVA: 0x0000B638 File Offset: 0x0000A638
|
||||
public static int GetNameBytes(string name, int nameOffset, byte[] buffer, int bufferOffset, int length)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException("name");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
int i;
|
||||
for (i = 0; i < length - 1; i++)
|
||||
{
|
||||
if (nameOffset + i >= name.Length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
buffer[bufferOffset + i] = (byte)name[nameOffset + i];
|
||||
}
|
||||
while (i < length)
|
||||
{
|
||||
buffer[bufferOffset + i] = 0;
|
||||
i++;
|
||||
}
|
||||
return bufferOffset + length;
|
||||
}
|
||||
|
||||
// Token: 0x06000209 RID: 521 RVA: 0x0000B69F File Offset: 0x0000A69F
|
||||
public static int GetNameBytes(StringBuilder name, byte[] buffer, int offset, int length)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException("name");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
return TarHeader.GetNameBytes(name.ToString(), 0, buffer, offset, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600020A RID: 522 RVA: 0x0000B6CC File Offset: 0x0000A6CC
|
||||
public static int GetNameBytes(string name, byte[] buffer, int offset, int length)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException("name");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
return TarHeader.GetNameBytes(name, 0, buffer, offset, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600020B RID: 523 RVA: 0x0000B6F4 File Offset: 0x0000A6F4
|
||||
public static int GetAsciiBytes(string toAdd, int nameOffset, byte[] buffer, int bufferOffset, int length)
|
||||
{
|
||||
if (toAdd == null)
|
||||
{
|
||||
throw new ArgumentNullException("toAdd");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
int num = 0;
|
||||
while (num < length && nameOffset + num < toAdd.Length)
|
||||
{
|
||||
buffer[bufferOffset + num] = (byte)toAdd[nameOffset + num];
|
||||
num++;
|
||||
}
|
||||
return bufferOffset + length;
|
||||
}
|
||||
|
||||
// Token: 0x0600020C RID: 524 RVA: 0x0000B748 File Offset: 0x0000A748
|
||||
public static int GetOctalBytes(long value, byte[] buffer, int offset, int length)
|
||||
{
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
int i = length - 1;
|
||||
buffer[offset + i] = 0;
|
||||
i--;
|
||||
if (value > 0L)
|
||||
{
|
||||
long num = value;
|
||||
while (i >= 0)
|
||||
{
|
||||
if (num <= 0L)
|
||||
{
|
||||
break;
|
||||
}
|
||||
buffer[offset + i] = 48 + (byte)(num & 7L);
|
||||
num >>= 3;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
while (i >= 0)
|
||||
{
|
||||
buffer[offset + i] = 48;
|
||||
i--;
|
||||
}
|
||||
return offset + length;
|
||||
}
|
||||
|
||||
// Token: 0x0600020D RID: 525 RVA: 0x0000B7AD File Offset: 0x0000A7AD
|
||||
public static int GetLongOctalBytes(long value, byte[] buffer, int offset, int length)
|
||||
{
|
||||
return TarHeader.GetOctalBytes(value, buffer, offset, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600020E RID: 526 RVA: 0x0000B7B8 File Offset: 0x0000A7B8
|
||||
private static int GetCheckSumOctalBytes(long value, byte[] buffer, int offset, int length)
|
||||
{
|
||||
TarHeader.GetOctalBytes(value, buffer, offset, length - 1);
|
||||
return offset + length;
|
||||
}
|
||||
|
||||
// Token: 0x0600020F RID: 527 RVA: 0x0000B7CC File Offset: 0x0000A7CC
|
||||
private static int ComputeCheckSum(byte[] buffer)
|
||||
{
|
||||
int num = 0;
|
||||
for (int i = 0; i < buffer.Length; i++)
|
||||
{
|
||||
num += (int)buffer[i];
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000210 RID: 528 RVA: 0x0000B7F0 File Offset: 0x0000A7F0
|
||||
private static int MakeCheckSum(byte[] buffer)
|
||||
{
|
||||
int num = 0;
|
||||
for (int i = 0; i < 148; i++)
|
||||
{
|
||||
num += (int)buffer[i];
|
||||
}
|
||||
for (int j = 0; j < 8; j++)
|
||||
{
|
||||
num += 32;
|
||||
}
|
||||
for (int k = 156; k < buffer.Length; k++)
|
||||
{
|
||||
num += (int)buffer[k];
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x06000211 RID: 529 RVA: 0x0000B840 File Offset: 0x0000A840
|
||||
private static int GetCTime(DateTime dateTime)
|
||||
{
|
||||
return (int)((dateTime.Ticks - TarHeader.dateTime1970.Ticks) / 10000000L);
|
||||
}
|
||||
|
||||
// Token: 0x06000212 RID: 530 RVA: 0x0000B86C File Offset: 0x0000A86C
|
||||
private static DateTime GetDateTimeFromCTime(long ticks)
|
||||
{
|
||||
DateTime dateTime;
|
||||
try
|
||||
{
|
||||
dateTime = new DateTime(TarHeader.dateTime1970.Ticks + ticks * 10000000L);
|
||||
}
|
||||
catch (ArgumentOutOfRangeException)
|
||||
{
|
||||
dateTime = TarHeader.dateTime1970;
|
||||
}
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
// Token: 0x040000FA RID: 250
|
||||
public const int NAMELEN = 100;
|
||||
|
||||
// Token: 0x040000FB RID: 251
|
||||
public const int MODELEN = 8;
|
||||
|
||||
// Token: 0x040000FC RID: 252
|
||||
public const int UIDLEN = 8;
|
||||
|
||||
// Token: 0x040000FD RID: 253
|
||||
public const int GIDLEN = 8;
|
||||
|
||||
// Token: 0x040000FE RID: 254
|
||||
public const int CHKSUMLEN = 8;
|
||||
|
||||
// Token: 0x040000FF RID: 255
|
||||
public const int CHKSUMOFS = 148;
|
||||
|
||||
// Token: 0x04000100 RID: 256
|
||||
public const int SIZELEN = 12;
|
||||
|
||||
// Token: 0x04000101 RID: 257
|
||||
public const int MAGICLEN = 6;
|
||||
|
||||
// Token: 0x04000102 RID: 258
|
||||
public const int VERSIONLEN = 2;
|
||||
|
||||
// Token: 0x04000103 RID: 259
|
||||
public const int MODTIMELEN = 12;
|
||||
|
||||
// Token: 0x04000104 RID: 260
|
||||
public const int UNAMELEN = 32;
|
||||
|
||||
// Token: 0x04000105 RID: 261
|
||||
public const int GNAMELEN = 32;
|
||||
|
||||
// Token: 0x04000106 RID: 262
|
||||
public const int DEVLEN = 8;
|
||||
|
||||
// Token: 0x04000107 RID: 263
|
||||
public const byte LF_OLDNORM = 0;
|
||||
|
||||
// Token: 0x04000108 RID: 264
|
||||
public const byte LF_NORMAL = 48;
|
||||
|
||||
// Token: 0x04000109 RID: 265
|
||||
public const byte LF_LINK = 49;
|
||||
|
||||
// Token: 0x0400010A RID: 266
|
||||
public const byte LF_SYMLINK = 50;
|
||||
|
||||
// Token: 0x0400010B RID: 267
|
||||
public const byte LF_CHR = 51;
|
||||
|
||||
// Token: 0x0400010C RID: 268
|
||||
public const byte LF_BLK = 52;
|
||||
|
||||
// Token: 0x0400010D RID: 269
|
||||
public const byte LF_DIR = 53;
|
||||
|
||||
// Token: 0x0400010E RID: 270
|
||||
public const byte LF_FIFO = 54;
|
||||
|
||||
// Token: 0x0400010F RID: 271
|
||||
public const byte LF_CONTIG = 55;
|
||||
|
||||
// Token: 0x04000110 RID: 272
|
||||
public const byte LF_GHDR = 103;
|
||||
|
||||
// Token: 0x04000111 RID: 273
|
||||
public const byte LF_XHDR = 120;
|
||||
|
||||
// Token: 0x04000112 RID: 274
|
||||
public const byte LF_ACL = 65;
|
||||
|
||||
// Token: 0x04000113 RID: 275
|
||||
public const byte LF_GNU_DUMPDIR = 68;
|
||||
|
||||
// Token: 0x04000114 RID: 276
|
||||
public const byte LF_EXTATTR = 69;
|
||||
|
||||
// Token: 0x04000115 RID: 277
|
||||
public const byte LF_META = 73;
|
||||
|
||||
// Token: 0x04000116 RID: 278
|
||||
public const byte LF_GNU_LONGLINK = 75;
|
||||
|
||||
// Token: 0x04000117 RID: 279
|
||||
public const byte LF_GNU_LONGNAME = 76;
|
||||
|
||||
// Token: 0x04000118 RID: 280
|
||||
public const byte LF_GNU_MULTIVOL = 77;
|
||||
|
||||
// Token: 0x04000119 RID: 281
|
||||
public const byte LF_GNU_NAMES = 78;
|
||||
|
||||
// Token: 0x0400011A RID: 282
|
||||
public const byte LF_GNU_SPARSE = 83;
|
||||
|
||||
// Token: 0x0400011B RID: 283
|
||||
public const byte LF_GNU_VOLHDR = 86;
|
||||
|
||||
// Token: 0x0400011C RID: 284
|
||||
public const string TMAGIC = "ustar ";
|
||||
|
||||
// Token: 0x0400011D RID: 285
|
||||
public const string GNU_TMAGIC = "ustar ";
|
||||
|
||||
// Token: 0x0400011E RID: 286
|
||||
private const long timeConversionFactor = 10000000L;
|
||||
|
||||
// Token: 0x0400011F RID: 287
|
||||
private static readonly DateTime dateTime1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
||||
|
||||
// Token: 0x04000120 RID: 288
|
||||
private string name;
|
||||
|
||||
// Token: 0x04000121 RID: 289
|
||||
private int mode;
|
||||
|
||||
// Token: 0x04000122 RID: 290
|
||||
private int userId;
|
||||
|
||||
// Token: 0x04000123 RID: 291
|
||||
private int groupId;
|
||||
|
||||
// Token: 0x04000124 RID: 292
|
||||
private long size;
|
||||
|
||||
// Token: 0x04000125 RID: 293
|
||||
private DateTime modTime;
|
||||
|
||||
// Token: 0x04000126 RID: 294
|
||||
private int checksum;
|
||||
|
||||
// Token: 0x04000127 RID: 295
|
||||
private bool isChecksumValid;
|
||||
|
||||
// Token: 0x04000128 RID: 296
|
||||
private byte typeFlag;
|
||||
|
||||
// Token: 0x04000129 RID: 297
|
||||
private string linkName;
|
||||
|
||||
// Token: 0x0400012A RID: 298
|
||||
private string magic;
|
||||
|
||||
// Token: 0x0400012B RID: 299
|
||||
private string version;
|
||||
|
||||
// Token: 0x0400012C RID: 300
|
||||
private string userName;
|
||||
|
||||
// Token: 0x0400012D RID: 301
|
||||
private string groupName;
|
||||
|
||||
// Token: 0x0400012E RID: 302
|
||||
private int devMajor;
|
||||
|
||||
// Token: 0x0400012F RID: 303
|
||||
private int devMinor;
|
||||
|
||||
// Token: 0x04000130 RID: 304
|
||||
internal static int userIdAsSet;
|
||||
|
||||
// Token: 0x04000131 RID: 305
|
||||
internal static int groupIdAsSet;
|
||||
|
||||
// Token: 0x04000132 RID: 306
|
||||
internal static string userNameAsSet;
|
||||
|
||||
// Token: 0x04000133 RID: 307
|
||||
internal static string groupNameAsSet = "None";
|
||||
|
||||
// Token: 0x04000134 RID: 308
|
||||
internal static int defaultUserId;
|
||||
|
||||
// Token: 0x04000135 RID: 309
|
||||
internal static int defaultGroupId;
|
||||
|
||||
// Token: 0x04000136 RID: 310
|
||||
internal static string defaultGroupName = "None";
|
||||
|
||||
// Token: 0x04000137 RID: 311
|
||||
internal static string defaultUser;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user