Changeset 2435


Ignore:
Timestamp:
Jan 23, 2011, 6:46:14 PM (11 years ago)
Author:
Sven Rech
Message:

completely new p2p reconnection (now inside CrypWin)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypP2P/Internal/ConnectionManager.cs

    r2379 r2435  
    4444        private readonly P2PBase p2PBase;
    4545        private DateTime lastConnectionAttempt;
    46         private Dispatcher guiLogDispatcher = null;
    47         private bool disconnected = false;
    4846
    4947        public ConnectionManager(P2PBase p2PBase)
    5048        {
    5149            this.p2PBase = p2PBase;
     50        }
    5251
    53             bool reconnecting = false;
    54             p2PBase.OnSystemLeft += new P2PBase.SystemLeft(delegate
    55                                                                {
    56                                                                    if (disconnected)
    57                                                                        return;
    58 
    59                                                                    //Enforce a minimum of 2 seconds between each connection attempt:
    60                                                                    if ((lastConnectionAttempt - DateTime.Now).TotalSeconds < 2)
    61                                                                        Thread.Sleep(2000);
    62 
    63                                                                    P2PManager.GuiLogMessage("Lost P2P Connection. Try reconnecting...",
    64                                                                         NotificationLevel.Error);
    65                                                                    reconnecting = true;
    66                                                                    this.Connect();
    67                                                                    guiLogDispatcher = Dispatcher.CurrentDispatcher;
    68                                                                });
    69             p2PBase.OnSystemJoined += new P2PBase.SystemJoined(delegate
    70                                                                    {
    71                                                                        if (p2PBase.IsConnected && reconnecting)
    72                                                                        {
    73                                                                            //TODO: This doesn't work. GuiLogMessage will never be shown:
    74                                                                            if (guiLogDispatcher != null)
    75                                                                                 guiLogDispatcher.Invoke(DispatcherPriority.Send, (SendOrPostCallback)delegate
    76                                                                                 {
    77                                                                                     P2PManager.GuiLogMessage("Successfully reconnected!",
    78                                                                                         NotificationLevel.Balloon);
    79                                                                                 }, null);
    80                                                                            reconnecting = false;
    81                                                                        }
    82                                                                    });
    83         }
     52        public bool Disconnected { get; private set; }
    8453
    8554        private bool isConnecting;
     
    10069            lock (connectLock)
    10170            {
    102                 disconnected = false;
     71                Disconnected = false;
    10372                lastConnectionAttempt = DateTime.Now;
    10473               
     
    12796            lock (connectLock)
    12897            {
    129                 disconnected = true;
     98                Disconnected = true;
    13099                if (!p2PBase.IsConnected || IsConnecting)
    131100                {
  • trunk/CrypPlugins/KeySearcher/P2P/Helper/ConnectionHelper.cs

    r2295 r2435  
    2020        public void ValidateConnectionToPeerToPeerSystem()
    2121        {
    22             if (P2PManager.IsConnected)
     22            if (P2PManager.IsConnected || P2PManager.IsConnecting)
    2323            {
    2424                return;
Note: See TracChangeset for help on using the changeset viewer.