public void UnsafeResponse(Command command, WriterCall writerCall)
        {
            if (_isFailed)
            {
                return;
            }

            lock (_sendLock)
            {
                try
                {
                    ServerConnection.BinaryWriter.Write((byte)FromClientPackage.ResponseToAdministration);

                    ServerConnection.BinaryWriter.Write(writerCall.Size + 7);
                    //1 for the responseType and 2 for the ushort
                    ServerConnection.BinaryWriter.Write(BitConverter.GetBytes(AdministrationId));
                    ServerConnection.BinaryWriter.Write((byte)ResponseType.CommandResponse);
                    ServerConnection.BinaryWriter.Write(BitConverter.GetBytes(command.Identifier));
                    writerCall.WriteIntoStream(ServerConnection.BinaryWriter.BaseStream);
                    ServerConnection.BinaryWriter.Flush();
                }
                catch (Exception)
                {
                    OnFailed();
                }
            }
        }
 public void SendStream(WriterCall writerCall)
 {
     _connectionInfo.UnsafeResponse(_command, new WriterCall(writerCall.Size + 1, stream =>
     {
         stream.WriteByte(_prefix);
         writerCall.WriteIntoStream(stream);
     }));
 }
Exemple #3
0
 public Task UnsafeSendCommand(Command command, WriterCall writerCall)
 {
     using (var memoryStream = new MemoryStream(writerCall.Size))
     {
         writerCall.WriteIntoStream(memoryStream);
         return(SendCommand(command, memoryStream.ToArray()));
     }
 }
        public void RemovePasswordsOfClients(List <int> clients)
        {
            _tcpServerInfo.DatabaseManager.RemovePasswords(clients);

            var writerCall = new WriterCall(new Serializer(typeof(List <int>)).Serialize(clients));

            foreach (var administration in _tcpServerInfo.Administrations)
            {
                administration.Value.SendPackage((byte)FromClientPackage.PasswordsRemoved, writerCall);
            }
        }
        public void RemoveDataEntries(List <int> removedDataIds)
        {
            _tcpServerInfo.DatabaseManager.RemoveDataEntries(removedDataIds);

            var writerCall = new WriterCall(new Serializer(typeof(List <int>)).Serialize(removedDataIds));

            foreach (var administration in _tcpServerInfo.Administrations)
            {
                administration.Value.SendPackage((byte)FromClientPackage.DataRemoved, writerCall);
            }
        }
Exemple #6
0
 public void SendPackage(byte command, WriterCall writerCall)
 {
     try
     {
         lock (_sendLock)
         {
             _binaryWriter.Write(command);
             _binaryWriter.Write(writerCall.Size);
             writerCall.WriteIntoStream(_sslStream);
         }
     }
     catch (Exception ex)
     {
         ReportError(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
     }
 }
 public void SendPackage(byte command, WriterCall writerCall)
 {
     try
     {
         lock (_sendLock)
         {
             Connection.BinaryWriter.Write(command);
             Connection.BinaryWriter.Write(writerCall.Size);
             writerCall.WriteIntoStream(Connection.BaseStream);
         }
     }
     catch (Exception ex)
     {
         ReportError(ex, MethodBase.GetCurrentMethod().Name);
     }
 }
Exemple #8
0
 public void UnsafeSendCommand(int clientId, uint commandId, WriterCall writerCall)
 {
     try
     {
         lock (WriterLock)
         {
             Connection.BinaryWriter.Write((byte)FromAdministrationPackage.SendCommand);
             Connection.BinaryWriter.Write(writerCall.Size + 9);
             Connection.BinaryWriter.Write(BitConverter.GetBytes(clientId));
             Connection.BinaryWriter.Write((byte)SendingType.Command);
             Connection.BinaryWriter.Write(BitConverter.GetBytes(commandId));
             writerCall.WriteIntoStream(Connection.BaseStream);
             Connection.BinaryWriter.Flush();
         }
     }
     catch (Exception)
     {
         // ignored
     }
 }
        public async Task UnsafeSendCommand(Command command, WriterCall writerCall)
        {
            if (command.Identifier > 1000)
            {
                if (!await PreparePlugin(command.Identifier))
                {
                    return;
                }
            }

            Sender.UnsafeSendCommand(ClientInformation.Id, command.Identifier, writerCall);

            PackageSent?.Invoke(this, new PackageInformation
            {
                Description = $"UnsafeSendCommand ({command} / ID: {command.Identifier})",
                IsReceived  = false,
                Size        = writerCall.Size,
                Timestamp   = DateTime.Now
            });
        }
 public SendPackageToClientEventArgs(int clientId, byte command, WriterCall writerCall)
     : base(command, writerCall)
 {
     ClientId = clientId;
 }
Exemple #11
0
 public void SendStream(WriterCall writerCall)
 {
     throw new NotSupportedException();
 }
 public SendPackageToAdministrationEventArgs(ushort administrationId, byte command, WriterCall writerCall)
     : base(command, writerCall)
 {
     AdministrationId = administrationId;
 }
 public void SendStream(WriterCall writerCall)
 {
     _binaryWriter.Write(writerCall.Size);
     writerCall.WriteIntoStream(_networkStream);
 }
 public void SendStream(WriterCall writerCall)
 {
     throw new NotImplementedException();
 }
 public SendPackageEventArgs(byte command, WriterCall writerCall)
 {
     Command    = command;
     WriterCall = writerCall;
 }
Exemple #16
0
 public void UnsafeSendCommand(int clientId, uint commandId, WriterCall writerCall)
 {
 }
Exemple #17
0
 public void UnsafeResponse(Command command, WriterCall writerCall)
 {
 }