// Token: 0x060007D2 RID: 2002 RVA: 0x0003D744 File Offset: 0x0003B944 private bool SendZDOs(ZDOMan.ZDOPeer peer, bool flush) { int sendQueueSize = peer.m_peer.m_socket.GetSendQueueSize(); if (!flush && sendQueueSize > 10240) { return(false); } int num = 10240 - sendQueueSize; if (num < 2048) { return(false); } this.m_tempToSync.Clear(); this.CreateSyncList(peer, this.m_tempToSync); if (this.m_tempToSync.Count == 0 && peer.m_invalidSector.Count == 0) { return(false); } ZPackage zpackage = new ZPackage(); bool flag = false; if (peer.m_invalidSector.Count > 0) { flag = true; zpackage.Write(peer.m_invalidSector.Count); foreach (ZDOID id in peer.m_invalidSector) { zpackage.Write(id); } peer.m_invalidSector.Clear(); } else { zpackage.Write(0); } float time = Time.time; ZPackage zpackage2 = new ZPackage(); bool flag2 = false; int num2 = 0; while (num2 < this.m_tempToSync.Count && zpackage.Size() <= num) { ZDO zdo = this.m_tempToSync[num2]; peer.m_forceSend.Remove(zdo.m_uid); if (!ZNet.instance.IsServer()) { this.m_clientChangeQueue.Remove(zdo.m_uid); } if (peer.ShouldSend(zdo)) { zpackage.Write(zdo.m_uid); zpackage.Write(zdo.m_ownerRevision); zpackage.Write(zdo.m_dataRevision); zpackage.Write(zdo.m_owner); zpackage.Write(zdo.GetPosition()); zpackage2.Clear(); zdo.Serialize(zpackage2); zpackage.Write(zpackage2); peer.m_zdos[zdo.m_uid] = new ZDOMan.ZDOPeer.PeerZDOInfo(zdo.m_dataRevision, zdo.m_ownerRevision, time); flag2 = true; this.m_zdosSent++; } num2++; } zpackage.Write(ZDOID.None); if (flag2 || flag) { peer.m_peer.m_rpc.Invoke("ZDOData", new object[] { zpackage }); } return(flag2 || flag); }