// Token: 0x0600227E RID: 8830 RVA: 0x000A0868 File Offset: 0x0009EA68 internal static GranularLogDataMsg ReadFromNet(NetworkChannel ch, byte[] workingBuf, int startOffset) { int len = 52; ch.Read(workingBuf, startOffset, len); GranularLogDataMsg granularLogDataMsg = new GranularLogDataMsg(); BufDeserializer bufDeserializer = new BufDeserializer(workingBuf, startOffset); granularLogDataMsg.FlagsUsed = (GranularLogDataMsg.Flags)bufDeserializer.ExtractInt64(); granularLogDataMsg.RequestAckCounter = bufDeserializer.ExtractInt64(); granularLogDataMsg.LogDataLength = bufDeserializer.ExtractInt32(); if (granularLogDataMsg.LogDataLength > 1048576) { throw new NetworkCorruptDataException(ch.PartnerNodeName); } granularLogDataMsg.EmitContext = new JET_EMITDATACTX(); granularLogDataMsg.EmitContext.cbLogData = (long)granularLogDataMsg.LogDataLength; granularLogDataMsg.EmitContext.dwVersion = bufDeserializer.ExtractInt32(); granularLogDataMsg.EmitContext.qwSequenceNum = bufDeserializer.ExtractUInt64(); granularLogDataMsg.EmitContext.grbitOperationalFlags = (ShadowLogEmitGrbit)bufDeserializer.ExtractUInt32(); granularLogDataMsg.EmitContext.logtimeEmit = bufDeserializer.ExtractDateTime(); JET_LGPOS lgposLogData = default(JET_LGPOS); lgposLogData.lGeneration = bufDeserializer.ExtractInt32(); lgposLogData.isec = (int)bufDeserializer.ExtractUInt16(); lgposLogData.ib = (int)bufDeserializer.ExtractUInt16(); granularLogDataMsg.EmitContext.lgposLogData = lgposLogData; return(granularLogDataMsg); }
internal static BlockModeCompressedDataMsg ReadFromNet(NetworkChannel ch, byte[] workingBuf, int startOffset) { int len = 52; ch.Read(workingBuf, startOffset, len); BlockModeCompressedDataMsg blockModeCompressedDataMsg = new BlockModeCompressedDataMsg(); BufDeserializer bufDeserializer = new BufDeserializer(workingBuf, startOffset); blockModeCompressedDataMsg.FlagsUsed = (BlockModeCompressedDataMsg.Flags)bufDeserializer.ExtractInt64(); blockModeCompressedDataMsg.RequestAckCounter = bufDeserializer.ExtractInt64(); blockModeCompressedDataMsg.LogDataLength = bufDeserializer.ExtractInt32(); if (blockModeCompressedDataMsg.LogDataLength > 1048576) { throw new NetworkCorruptDataException(ch.PartnerNodeName); } blockModeCompressedDataMsg.EmitContext = new JET_EMITDATACTX(); blockModeCompressedDataMsg.EmitContext.cbLogData = (long)blockModeCompressedDataMsg.LogDataLength; blockModeCompressedDataMsg.EmitContext.dwVersion = bufDeserializer.ExtractInt32(); blockModeCompressedDataMsg.EmitContext.qwSequenceNum = bufDeserializer.ExtractUInt64(); blockModeCompressedDataMsg.EmitContext.grbitOperationalFlags = (ShadowLogEmitGrbit)bufDeserializer.ExtractUInt32(); blockModeCompressedDataMsg.EmitContext.logtimeEmit = bufDeserializer.ExtractDateTime(); JET_LGPOS lgposLogData = default(JET_LGPOS); lgposLogData.lGeneration = bufDeserializer.ExtractInt32(); lgposLogData.isec = (int)bufDeserializer.ExtractUInt16(); lgposLogData.ib = (int)bufDeserializer.ExtractUInt16(); blockModeCompressedDataMsg.EmitContext.lgposLogData = lgposLogData; if (blockModeCompressedDataMsg.LogDataLength > 0) { int num = BlockModeCompressedDataMsg.CalculateBlockCount(blockModeCompressedDataMsg.LogDataLength); blockModeCompressedDataMsg.CompressedLengths = new int[num]; len = num * 4; ch.Read(workingBuf, startOffset, len); bufDeserializer.Reset(workingBuf, startOffset); for (int i = 0; i < num; i++) { int num2 = bufDeserializer.ExtractInt32(); if (num2 <= 0 || num2 > 65536) { throw new NetworkCorruptDataException(ch.PartnerNodeName); } blockModeCompressedDataMsg.CompressedLengths[i] = num2; } } return(blockModeCompressedDataMsg); }
public static NetworkChannelMessageHeader ReadHeaderFromNet(NetworkChannel netChan, byte[] workingBuf, int startOffset) { netChan.Read(workingBuf, startOffset, 16); BufDeserializer bufDeserializer = new BufDeserializer(workingBuf, 0); NetworkChannelMessageHeader result; result.MessageType = (NetworkChannelMessage.MessageType)bufDeserializer.ExtractUInt32(); result.MessageLength = bufDeserializer.ExtractInt32(); result.MessageUtc = bufDeserializer.ExtractDateTime(); return(result); }
// Token: 0x0600229D RID: 8861 RVA: 0x000A13AC File Offset: 0x0009F5AC internal static PingMessage ReadFromNet(NetworkChannel ch, byte[] workingBuf, int startOffset) { int len = 24; ch.Read(workingBuf, startOffset, len); PingMessage pingMessage = new PingMessage(); BufDeserializer bufDeserializer = new BufDeserializer(workingBuf, startOffset); pingMessage.FlagsUsed = (PingMessage.Flags)bufDeserializer.ExtractInt64(); pingMessage.RequestAckCounter = bufDeserializer.ExtractInt64(); pingMessage.ReplyAckCounter = bufDeserializer.ExtractInt64(); return(pingMessage); }
private QueuedBlockMsg ReadUncompressedMsg(NetworkChannel netChan) { byte[] networkReadWorkingBuf = this.m_networkReadWorkingBuf; GranularLogDataMsg granularLogDataMsg = GranularLogDataMsg.ReadFromNet(netChan, networkReadWorkingBuf, 0); byte[] array = null; int num = 0; if (granularLogDataMsg.LogDataLength > 0) { this.GetAppendSpace(granularLogDataMsg.LogDataLength); array = this.m_currentBuffer.Buffer; num = this.m_currentBuffer.AppendOffset; netChan.Read(array, num, granularLogDataMsg.LogDataLength); this.m_currentBuffer.AppendOffset = num + granularLogDataMsg.LogDataLength; } return(new QueuedBlockMsg(granularLogDataMsg.EmitContext, array, num, 0) { RequestAckCounter = granularLogDataMsg.RequestAckCounter, IOBuffer = this.m_currentBuffer }); }
private QueuedBlockMsg ReadCompressedMsg(NetworkChannel netChan, NetworkChannelMessageHeader msgHdr) { byte[] networkReadWorkingBuf = this.m_networkReadWorkingBuf; BlockModeCompressedDataMsg blockModeCompressedDataMsg = BlockModeCompressedDataMsg.ReadFromNet(netChan, networkReadWorkingBuf, 0); byte[] array = null; int num = 0; int num2 = 0; if (blockModeCompressedDataMsg.LogDataLength > 0) { this.GetAppendSpace(blockModeCompressedDataMsg.LogDataLength); array = this.m_currentBuffer.Buffer; num = this.m_currentBuffer.AppendOffset; int num3 = blockModeCompressedDataMsg.LogDataLength; int num4 = num; foreach (int num5 in blockModeCompressedDataMsg.CompressedLengths) { num2 += num5; netChan.Read(networkReadWorkingBuf, 0, num5); int num6 = Math.Min(num3, 65536); if (!Xpress.Decompress(networkReadWorkingBuf, 0, num5, array, num4, num6)) { throw new NetworkCorruptDataException(this.m_netChannel.PartnerNodeName); } num3 -= num6; num4 += num6; } this.m_currentBuffer.AppendOffset = num + blockModeCompressedDataMsg.LogDataLength; } return(new QueuedBlockMsg(blockModeCompressedDataMsg.EmitContext, array, num, num2) { RequestAckCounter = blockModeCompressedDataMsg.RequestAckCounter, IOBuffer = this.m_currentBuffer }); }
internal static NetworkChannelMessage ReadMessage(NetworkChannel channel, byte[] headerBuf) { int num = 0; NetworkChannelMessage.MessageType messageType = (NetworkChannelMessage.MessageType)Serialization.DeserializeUInt32(headerBuf, ref num); if (!NetworkChannelMessage.IsValidType(messageType)) { throw new NetworkUnexpectedMessageException(channel.PartnerNodeName, string.Format("Unknown Type{0}", messageType)); } int num2 = (int)Serialization.DeserializeUInt32(headerBuf, ref num); if (num2 < 16 || num2 > 1052672) { throw new NetworkUnexpectedMessageException(channel.PartnerNodeName, string.Format("Invalid msgLen: {0}", num2)); } ExTraceGlobals.NetworkChannelTracer.TraceDebug <NetworkChannelMessage.MessageType, string, string>((long)channel.GetHashCode(), "ReadMessage: Received {0} from {1} on {2}", messageType, channel.RemoteEndPointString, channel.LocalEndPointString); byte[] array = new byte[num2]; Array.Copy(headerBuf, 0, array, 0, 16); int len = num2 - 16; channel.Read(array, 16, len); NetworkChannelMessage.MessageType messageType2 = messageType; if (messageType2 <= NetworkChannelMessage.MessageType.CompressionRequest) { if (messageType2 <= NetworkChannelMessage.MessageType.SeedLogCopyRequest) { if (messageType2 <= NetworkChannelMessage.MessageType.Ping) { if (messageType2 <= NetworkChannelMessage.MessageType.PassiveStatus) { if (messageType2 == NetworkChannelMessage.MessageType.TestNetwork0) { return(new TestNetwork0Request(channel, array)); } if (messageType2 != NetworkChannelMessage.MessageType.PassiveStatus) { goto IL_51C; } return(new PassiveStatusMsg(channel, array)); } else { if (messageType2 == NetworkChannelMessage.MessageType.CompressionConfig) { return(new NetworkChannelCompressionConfigMsg(channel, array)); } if (messageType2 != NetworkChannelMessage.MessageType.BlockModeCompressedData) { if (messageType2 != NetworkChannelMessage.MessageType.Ping) { goto IL_51C; } return(new PingMessage(channel, array)); } } } else if (messageType2 <= NetworkChannelMessage.MessageType.EnterBlockMode) { if (messageType2 == NetworkChannelMessage.MessageType.GranularTermination) { return(new GranularTerminationMsg(channel, array)); } if (messageType2 != NetworkChannelMessage.MessageType.GranularLogData) { if (messageType2 != NetworkChannelMessage.MessageType.EnterBlockMode) { goto IL_51C; } return(new EnterBlockModeMsg(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.GetE00GenerationRequest) { return(new GetE00GenerationRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.CancelCiFileRequest) { return(new CancelCiFileRequest(channel, array)); } if (messageType2 != NetworkChannelMessage.MessageType.SeedLogCopyRequest) { goto IL_51C; } return(new SeedLogCopyRequest(channel, array)); } throw new NetworkUnexpectedMessageException(channel.PartnerNodeName, string.Format("ReadMessage() does not support message type: {0}.", messageType)); } if (messageType2 <= NetworkChannelMessage.MessageType.CopyLogRequest) { if (messageType2 <= NetworkChannelMessage.MessageType.SeedDatabaseFileRequest) { if (messageType2 == NetworkChannelMessage.MessageType.PassiveDatabaseFileRequest) { return(new PassiveSeedDatabaseFileRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedDatabaseFileRequest) { return(new SeedDatabaseFileRequest(channel, array)); } } else { switch (messageType2) { case NetworkChannelMessage.MessageType.ContinuousLogCopyRequest: return(new ContinuousLogCopyRequest(channel, array)); case (NetworkChannelMessage.MessageType) 1363627076: break; case NetworkChannelMessage.MessageType.NotifyEndOfLogRequest: return(new NotifyEndOfLogRequest(channel, array)); default: if (messageType2 == NetworkChannelMessage.MessageType.TestLogExistenceRequest) { return(new TestLogExistenceRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.CopyLogRequest) { return(new CopyLogRequest(channel, array)); } break; } } } else if (messageType2 <= NetworkChannelMessage.MessageType.SeedPageReaderRollLogFileRequest) { if (messageType2 == NetworkChannelMessage.MessageType.QueryLogRangeRequest) { return(new QueryLogRangeRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.TestHealthRequest) { return(new TestHealthRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderRollLogFileRequest) { return(new SeedPageReaderRollLogFileRequest(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderMultiplePageRequest) { return(new SeedPageReaderMultiplePageRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.ProgressCiFileRequest) { return(new ProgressCiFileRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.CompressionRequest) { return(new NetworkChannelCompressionRequest(channel, array)); } } } else if (messageType2 <= NetworkChannelMessage.MessageType.SeedDatabaseFileReply) { if (messageType2 <= NetworkChannelMessage.MessageType.ContinuousLogCopyRequest2) { if (messageType2 <= NetworkChannelMessage.MessageType.SeedCiFileRequest) { if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderSinglePageRequest) { return(new SeedPageReaderSinglePageRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedCiFileRequest) { return(new SeedCiFileRequest(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.SeedCiFileRequest2) { return(new SeedCiFileRequest2(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderPageSizeRequest) { return(new SeedPageReaderPageSizeRequest(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.ContinuousLogCopyRequest2) { return(new ContinuousLogCopyRequest2(channel, array)); } } } else if (messageType2 <= NetworkChannelMessage.MessageType.GetE00GenerationReply) { if (messageType2 == NetworkChannelMessage.MessageType.LogCopyServerStatus) { return(new LogCopyServerStatusMsg(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.GranularLogComplete) { return(new GranularLogCompleteMsg(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.GetE00GenerationReply) { return(new GetE00GenerationReply(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.NotifyEndOfLogAsyncReply) { return(new NotifyEndOfLogAsyncReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.CancelCiFileReply) { return(new CancelCiFileReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedDatabaseFileReply) { return(new SeedDatabaseFileReply(channel, array)); } } } else if (messageType2 <= NetworkChannelMessage.MessageType.TestHealthReply) { if (messageType2 <= NetworkChannelMessage.MessageType.TestLogExistenceReply) { if (messageType2 == NetworkChannelMessage.MessageType.NotifyEndOfLogReply) { return(new NotifyEndOfLogReply(channel, messageType, array)); } if (messageType2 == NetworkChannelMessage.MessageType.TestLogExistenceReply) { return(new TestLogExistenceReply(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.CopyLogReply) { return(new CopyLogReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.QueryLogRangeReply) { return(new QueryLogRangeReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.TestHealthReply) { return(new TestHealthReply(channel, array)); } } } else if (messageType2 <= NetworkChannelMessage.MessageType.CompressionReply) { if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderRollLogFileReply) { return(new SeedPageReaderRollLogFileReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.ProgressCiFileReply) { return(new ProgressCiFileReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.CompressionReply) { return(new NetworkChannelCompressionReply(channel, array)); } } else { if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderSinglePageReply) { return(new SeedPageReaderSinglePageReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedCiFileReply) { return(new SeedCiFileReply(channel, array)); } if (messageType2 == NetworkChannelMessage.MessageType.SeedPageReaderPageSizeReply) { return(new SeedPageReaderPageSizeReply(channel, array)); } } IL_51C: throw new NetworkUnexpectedMessageException(channel.PartnerNodeName, string.Format("Unknown message type: 0x{0:X}", (int)messageType)); }