Exemple #1
0
 private static void WriteParameter(ref BinarySpanWriter writer, ReadOnlySpan <byte> parameterName, ReadOnlySpan <byte> parameterValue)
 {
     if (parameterValue != null)
     {
         writer.WriteSpan(parameterName);
         writer.WriteSpan(parameterValue);
     }
 }
Exemple #2
0
 private static void WriteParameter(ref BinarySpanWriter writer, ReadOnlySpan <byte> parameterName, string parameterValue)
 {
     if (parameterValue != null)
     {
         writer.WriteSpan(parameterName);
         writer.WriteNullTerminateUtf8String(parameterValue);
     }
 }
Exemple #3
0
        public void Write(Memory <byte> buffer)
        {
            var w = new BinarySpanWriter(buffer.Span);

            w.WriteInt32(16);
            w.WriteInt32(CancelRequestCode);
            w.WriteInt32(m_processId);
            w.WriteInt32(m_secretKey);
        }
        private int EncodePayload(Span <byte> span, ReadOnlySpan <char> securityToken, DateTime leaseEnd)
        {
            var writer = new BinarySpanWriter(span);

            writer.Write(securityToken, lengthPrefix: true);
            writer.WriteInt64(leaseEnd.Ticks);

            return(writer.Length);
        }
Exemple #5
0
        private void Encode(Span <byte> memory)
        {
            var writer = new BinarySpanWriter(memory, ByteOrder.LittleEndian);

            writer.Write(EndPoint.Utf8EncodedValue.Span, lengthPrefix: true);
            writer.Write(Module.Name.AsSpan(), lengthPrefix: true);
            writer.WriteInt32(Version.MajorVersion);
            writer.WriteInt32(Version.MinorVersion);
            writer.WriteInt32(Version.Revision);
            writer.WriteBool(Version.IsPreRelease);

            Assert(memory.Length == writer.Length);
        }
Exemple #6
0
        public void Write(Memory <byte> buffer)
        {
            Span <byte> hash = stackalloc byte[PgMD5Helper.PasswordHashLength];

            PgMD5Helper.ComputePassword(m_user, m_password, m_salt.Span, hash);

            var binaryWriter = new BinarySpanWriter(buffer.Span);

            binaryWriter.WriteByte(FrontendMessageCode.Password);
            binaryWriter.WriteInt32(sizeof(int) + PgMD5Helper.PasswordHashLength + 1);
            hash.CopyTo(binaryWriter.Span);
            binaryWriter.Advance(PgMD5Helper.PasswordHashLength);
            binaryWriter.WriteByte(0);
        }
Exemple #7
0
        public void Write(Memory <byte> buffer)
        {
            var w    = new BinarySpanWriter(buffer.Span);
            var size = buffer.Length;

            w.WriteInt32(size);
            w.WriteInt32(ProtocolVersion3);

            WriteParameter(ref w, s_databaseParameterName, m_database);
            WriteParameter(ref w, s_userParameterName, m_user);
            WriteParameter(ref w, s_clientEncodingParameterName, s_clientEncodingDefaultParameterValue);

            WriteParameter(ref w, s_applicationNameParameterName, m_applicationName);
            WriteParameter(ref w, s_fallbackApplicationNameParameterName, m_fallbackApplicationName);
            WriteParameter(ref w, s_searchPathParameterName, m_searchPath);
            WriteParameter(ref w, s_timeZoneParameterName, m_timeZone);

            w.WriteByte(0);
        }