private void ParcelAccessListRequestHandler(Packet packet, LLAgent agent) { ParcelAccessListRequestPacket request = (ParcelAccessListRequestPacket)packet; ParcelAccessFlags flags = (ParcelAccessFlags)request.Data.Flags; SceneParcel parcel; if (m_parcels.TryGetParcel(request.Data.LocalID, out parcel)) { ParcelAccessListReplyPacket reply = new ParcelAccessListReplyPacket(); reply.Data.AgentID = agent.ID; reply.Data.Flags = request.Data.Flags; reply.Data.LocalID = request.Data.LocalID; reply.Data.SequenceID = request.Data.SequenceID; List <ParcelAccessEntry> list = (flags == ParcelAccessFlags.Access) ? parcel.AccessWhiteList : parcel.AccessBlackList; if (list != null) { lock (list) { reply.List = new ParcelAccessListReplyPacket.ListBlock[list.Count]; for (int i = 0; i < list.Count; i++) { reply.List[i] = new ParcelAccessListReplyPacket.ListBlock { Flags = request.Data.Flags, ID = list[i].AgentID, Time = (int)Utils.DateTimeToUnixTime(list[i].Created) }; } } } else { reply.List = new ParcelAccessListReplyPacket.ListBlock[0]; } m_udp.SendPacket(agent, reply, ThrottleCategory.Task, true); } else { m_log.Warn(agent.Name + " requested access list for unknown parcel " + request.Data.LocalID); } }
private void ParcelAccessListRequestHandler(Packet packet, LLAgent agent) { ParcelAccessListRequestPacket request = (ParcelAccessListRequestPacket)packet; ParcelAccessFlags flags = (ParcelAccessFlags)request.Data.Flags; SceneParcel parcel; if (m_parcels.TryGetParcel(request.Data.LocalID, out parcel)) { ParcelAccessListReplyPacket reply = new ParcelAccessListReplyPacket(); reply.Data.AgentID = agent.ID; reply.Data.Flags = request.Data.Flags; reply.Data.LocalID = request.Data.LocalID; reply.Data.SequenceID = request.Data.SequenceID; List<ParcelAccessEntry> list = (flags == ParcelAccessFlags.Access) ? parcel.AccessWhiteList : parcel.AccessBlackList; if (list != null) { lock (list) { reply.List = new ParcelAccessListReplyPacket.ListBlock[list.Count]; for (int i = 0; i < list.Count; i++) { reply.List[i] = new ParcelAccessListReplyPacket.ListBlock { Flags = request.Data.Flags, ID = list[i].AgentID, Time = (int)Utils.DateTimeToUnixTime(list[i].Created) }; } } } else { reply.List = new ParcelAccessListReplyPacket.ListBlock[0]; } m_udp.SendPacket(agent, reply, ThrottleCategory.Task, true); } else { m_log.Warn(agent.Name + " requested access list for unknown parcel " + request.Data.LocalID); } }