void TEBPProvider_ReceivedRequest(TrivialEntityBasedProtocol.Request req) { if (req is FileTransferRequest) { Console.WriteLine("Got FileTransferRequest"); AES fileAES = new AES(); fileAES.Generate(); Transfer transfer = Transfer.GetForRequest(req as FileTransferRequest); DataConnection = SingleTransferReceiver.GetServer(); DataConnection.ParentConnection = this; FileTransferResponse resp = new FileTransferResponse() { AesKey = fileAES.aesKey, AesIv = fileAES.aesIV, DataConnectionAddress = DataConnection.Address, DataConnectionPort = SingleTransferReceiver.Port }; req.Respond(resp); if (DataConnection.GetConnection()) { DataConnection.BeginReceiving(transfer, fileAES); } else { DataConnection.Dispose(); DataConnection = null; } } else { req.Decline(); } }
public void RaiseFileTransferStarted(SingleTransferReceiver srv) { UIThreadSyncContext.Send(new System.Threading.SendOrPostCallback(state => { if (FileTransferStarted != null) FileTransferStarted(srv); }), null); }