void manager_PeerDisconnected(object sender, PeerConnectionEventArgs e)
 {
     if (e.PeerID.ClientApp.Client.ToString() == "WebSeed")
     {
         this.activeWebSeeds -= 1;
     }
 }
        private void SendP2P(object Sender, PeerConnectionEventArgs e)
        {
            SendP2pRec Rec = (SendP2pRec)e.State;

            try
            {
                if (e.Client == null)
                {
                    this.SendRequest(this.httpxClient, Rec.fullJID, Rec.method, XmppClient.GetBareJID(Rec.fullJID), Rec.localUrl,
                                     Rec.request, Rec.response);
                }
                else
                {
                    HttpxClient HttpxClient;

                    if (e.Client.SupportsFeature(HttpxClient.Namespace) &&
                        e.Client.TryGetTag("HttpxClient", out object Obj) &&
                        (HttpxClient = Obj as HttpxClient) != null)
                    {
                        this.SendRequest(HttpxClient, Rec.fullJID, Rec.method, XmppClient.GetBareJID(Rec.fullJID), Rec.localUrl, Rec.request, Rec.response);
                    }
                    else
                    {
                        this.SendRequest(this.httpxClient, Rec.fullJID, Rec.method, XmppClient.GetBareJID(Rec.fullJID), Rec.localUrl,
                                         Rec.request, Rec.response);
                    }
                }
            }
            catch (Exception ex)
            {
                Rec.response.SendResponse(ex);
            }
        }
        private void manager_PeerConnected(object sender, PeerConnectionEventArgs args)
        {
            try {
                LoggingService.LogDebug("PEER CONNECTED: {0} {1}", args.PeerID.Uri, args.PeerID.GetHashCode());

                // XXX: This check can probably be removed.
                if (args.TorrentManager != manager)
                {
                    throw new Exception("PeerConnected for wrong manager. This should NEVER happen.");
                }

                // Now, match the peer to the internal BittorrentFileTransferPeer.
                lock (peers) {
                    foreach (BitTorrentFileTransferPeer peer in peers)
                    {
                        var nodeID = args.PeerID.Uri.AbsolutePath;
                        if (nodeID == peer.Node.NodeID)
                        {
                            var transport = ((TorrentConnection)args.PeerID.Connection).Transport;
                            transport.Operation = new FileTransferOperation(transport, this, peer);

                            peer.AddPeerId(args.PeerID);
                            return;
                        }
                    }
                }

                // If we got here, then we were not expecting this peer.
                throw new Exception("Unexpected peer!!!! - " + args.PeerID.Uri);
            } catch (Exception ex) {
                LoggingService.LogError("Error in manager_PeerConnected.", ex);
                args.PeerID.CloseConnection();
            }
        }
 void manager_PeerConnected(object sender, PeerConnectionEventArgs e)
 {
     if (e.PeerID.ClientApp.Client.ToString() == "WebSeed")
     {
         this.activeWebSeeds += 1;
     }
     Console.WriteLine("Peer added");
     debug("Peer added. ");
 }
Beispiel #5
0
 static void cm_PeerDisconnected(object sender, PeerConnectionEventArgs e)
 {
     if (e.PeerID == null)
     {
         return;
     }
     lock (queue){
         queue.Add(String.Format("{0} peer at {1}. Reason: {2}",
                                 e.ConnectionDirection == Direction.Incoming ? "Got disconnected from" : "Disconnected from",
                                 e.PeerID.Uri, e.Message));
     }
 }
Beispiel #6
0
    static void cm_PeerConnected(object sender, PeerConnectionEventArgs e)
    {
        if (e.PeerID == null)
        {
            return;
        }

        lock (queue){
            queue.Add(String.Format("{0} peer at {1}",
                                    e.ConnectionDirection == Direction.Incoming ? "Accepted connection from" : "Connected to",
                                    e.PeerID.Uri));
        }
    }
        private void manager_PeerDisconnected(object sender, PeerConnectionEventArgs args)
        {
            try {
                LoggingService.LogDebug("Peer Disconnected: {0}", args.PeerID.Uri);

                // Find the matching peer
                var found = false;

                var nodeID = args.PeerID.Uri.AbsolutePath;
                lock (peers) {
                    foreach (BitTorrentFileTransferPeer peer in peers)
                    {
                        if (nodeID == peer.Node.NodeID)
                        {
                            peers.Remove(peer);
                            found = true;
                            break;
                        }
                    }
                }
                if (!found)
                {
                    // This should never hapen.
                    LoggingService.LogWarning("PeerDisconnected: Unknown peer!");
                }

                if (peers.Count == 0)
                {
                    if (manager.Progress != 100)
                    {
                        // Transfer didn't finish, cancel!
                        LoggingService.LogWarning("No more peers - canceling torrent!");
                        Cancel();
                    }
                    else
                    {
                        // Transfer was complete (or an upload), just stop normally.
                        manager.Stop();
                    }
                }
            } catch (Exception ex) {
                LoggingService.LogError("Error in manager_PeerDisconnected:", ex);
                Cancel();
            }
        }
        private void manager_PeerDisconnected(object sender, PeerConnectionEventArgs args)
        {
            try
            {
                Core.LoggingService.LogDebug("Peer Disconnected: {0}", args.PeerID.Uri);

                BitTorrentFileTransferPeer peer;
                lock (this.peers)
                {
                    peer = this.peers.OfType <BitTorrentFileTransferPeer>().SingleOrDefault(p => p.Node.NodeID == args.PeerID.Uri.AbsolutePath);
                    if (peer != null)
                    {
                        this.peers.Remove(peer);
                        RaisePeerRemoved(peer);
                    }
                    else
                    {
                        Core.LoggingService.LogWarning("PeerDisconnected: Unknown peer!");
                    }
                }

                if (!this.peers.Any())
                {
                    if (!this.manager.Progress.Equals(100))
                    {
                        // Transfer didn't finish, cancel!
                        Core.LoggingService.LogWarning("No more peers - canceling torrent!");
                        Cancel();
                    }
                    else
                    {
                        // Transfer was complete (or an upload), just stop normally.
                        this.manager.Stop();
                    }
                }
            }
            catch (Exception ex)
            {
                Core.LoggingService.LogError("Error in manager_PeerDisconnected:", ex);
                Cancel();
                RaiseError(ex);
            }
        }
        private void manager_PeerConnected(object sender, PeerConnectionEventArgs args)
        {
            try
            {
                Core.LoggingService.LogDebug("PEER CONNECTED: {0} {1}", args.PeerID.Uri, args.PeerID.GetHashCode());

                // XXX: This check can probably be removed.
                if (args.TorrentManager != this.manager)
                {
                    throw new Exception("PeerConnected for wrong manager. This should NEVER happen.");
                }

                // Now, match the peer to the internal BittorrentFileTransferPeer.
                BitTorrentFileTransferPeer peer;
                lock (this.peers)
                {
                    peer = this.peers.OfType <BitTorrentFileTransferPeer>().SingleOrDefault(p => p.Node.NodeID == args.PeerID.Uri.AbsolutePath);
                }
                if (peer == null)
                {
                    throw new Exception("Unexpected peer!!!! - " + args.PeerID.Uri.ToString());
                }

                var transport = ((TorrentConnection)args.PeerID.Connection).Transport;
                transport.Operation = new FileTransferOperation(transport, this, peer);

                peer.AddPeerId(args.PeerID);
                RaisePeerAdded(peer);
            }
            catch (Exception ex)
            {
                Core.LoggingService.LogError("Error in manager_PeerConnected.", ex);
                args.PeerID.CloseConnection();
                RaiseError(ex);
            }
        }
Beispiel #10
0
 internal void RaisePeerDisconnected(PeerConnectionEventArgs args)
 {
     Mode.HandlePeerDisconnected(args.PeerID);
     Toolbox.RaiseAsyncEvent(PeerDisconnected, this, args);
 }
Beispiel #11
0
 internal void RaisePeerConnected(PeerConnectionEventArgs args)
 {
     Toolbox.RaiseAsyncEvent(PeerConnected, this, args);
 }