public static void WriteGossipMsg(List <string> msg, Random RNG) { byte[] msgheader = new byte[] { 2, 0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; for (int i = GossipStart; i < GossipEnd; i++) { if (GossipExclude.Contains(i)) { continue; } ; MMMsg m = FindMsg(i); if (m == null) { continue; } ; int j; int l = m.Size + 1; do { j = RNG.Next(msg.Count); if (IsBadMsg(msg[j])) { if (RNG.Next(8) != 0) { continue; } ; } ; l = msg[j].Length + msgheader.Length; } while (l > m.Size); byte[] data = new byte[l]; Arr_Insert(msgheader, 0, msgheader.Length, data, 0); for (int k = 0; k < msg[j].Length; k++) { data[k + msgheader.Length] = (byte)msg[j][k]; } ; WriteMsg(m.Addr, data); msg.RemoveAt(j); } ; }
public static void WriteGossipMessage(List <string> messages, Random RNG) { for (int i = GossipStart; i < GossipEnd; i++) { if (GossipExclude.Contains(i)) { continue; } MMMesssage message = FindMesssage(i); if (message == null) { continue; } int randomMessageIndex; int length = message.Size + 1; do { randomMessageIndex = RNG.Next(messages.Count); if (IsBadMesssage(messages[randomMessageIndex]) && RNG.Next(8) != 0) { continue; } length = messages[randomMessageIndex].Length + Values.MessageHeader.Count; } while (length > message.Size); byte[] data = new byte[length]; Arr_Insert(Values.MessageHeader.ToArray(), 0, Values.MessageHeader.Count, data, 0); for (int k = 0; k < messages[randomMessageIndex].Length; k++) { data[k + Values.MessageHeader.Count] = (byte)messages[randomMessageIndex][k]; } WriteMessage(message.Address, data); messages.RemoveAt(randomMessageIndex); } ; }