Example #1
0
 private void ProcessFileReceive(AsynchronousSocket socket, byte[] encryptedMessage)
 {
     socket.WriteFileReceive(encryptedMessage);
     BytesReceived += Socket.ReceiveBufferSize;
     if (ReceivedFileBlock != null)
     {
         ReceivedFileBlock.Invoke(this, new EventArgs());
     }
     if (socket.FileBytesReceived >= encryptedFileSize)
     {
         isReceivingUpdate = false;
         byte[]     encryptedData = receiveStream.ToArray();
         byte[]     decryptedData = srpClient.Decrypt(encryptedData);
         FileStream fileStream;
         if (!File.Exists(UpdateFileLocation))
         {
             fileStream = new FileStream(UpdateFileLocation, FileMode.CreateNew, FileAccess.Write);
         }
         else
         {
             fileStream = new FileStream(UpdateFileLocation, FileMode.Truncate, FileAccess.Write);
         }
         fileStream.Write(decryptedData, 0, decryptedData.Length);
         fileStream.Flush();
         fileStream.Close();
         socket.EndFileReceive();
         FileInfo fileInfo = new FileInfo(UpdateFileLocation);
         if (fileInfo.Length == UpdateFileSize)
         {
             wasUpdateCompleted = true;
         }
         socket.Disconnect();
     }
 }
Example #2
0
        void socket_Disconnected(object sender, EventArgs e)
        {
            AsynchronousSocket socket = sender as AsynchronousSocket;

            if (socket.IsReceivingFile)
            {
                socket.EndFileReceive();
            }
            if (Disconnected != null)
            {
                Disconnected.Invoke(this, new EventArgs());
            }
            if (wasUpdateCompleted && (UpdateReceived != null))
            {
                UpdateReceived.Invoke(this, new EventArgs());
            }
        }
Example #3
0
        private void ProcessFileReceive(AsynchronousSocket socket, byte[] encryptedMessage)
        {
            socket.WriteFileReceive(encryptedMessage);
            bytesReceived += socket.ReceiveBufferSize;
            //if (ReceivedFileBlock != null)
            //    ReceivedFileBlock.Invoke(this, new EventArgs());
            if (socket.FileBytesReceived >= crashReportEncryptedSize)
            {
                isReceivingCrashReport = false;
                byte[] encryptedData = receiveStream.ToArray();
                byte[] decryptedData = srpServer.Decrypt(encryptedData);

                Exception ex = (Exception)decryptedData.DeserializeObject();
                if (ReceivedCrashException != null)
                {
                    ReceivedCrashException.Invoke(this, new ExceptionEventArgs(ex));
                }

                socket.EndFileReceive();
                socket.Disconnect();
            }
        }