示例#1
0
        // TODO: look at this
        // private DccChat chat;


        public override void Init()
        {
            nntp              = new NntpConnection();
            interval          = new Timer(30000);
            interval.Elapsed += IntervalElapsed;

            filterGroups = NntpSettings.Default.FilteredGroups.Split(',').ToList();
            filterWords  = NntpSettings.Default.FilteredWords.Split(',').ToList();
            base.Init();
        }
示例#2
0
        public async void StartAccepting()
        {
            // Establish the local endpoint for the socket.
            var localEndPoint = new IPEndPoint(IPAddress.Any, ((IPEndPoint)this.LocalEndpoint).Port);

            // Create a TCP/IP socket.
            var listener = new NntpListener(this.server, localEndPoint);

            // Bind the socket to the local endpoint and listen for incoming connections.
            try
            {
                listener.Start(100);

                while (true)
                {
                    // Start an asynchronous socket to listen for connections.
                    var handler = await listener.AcceptTcpClientAsync();

                    // Create the state object.
                    NntpConnection nntpConnection;

                    if (this.PortType == PortClass.ClearText || this.PortType == PortClass.ExplicitTLS)
                    {
                        var stream = handler.GetStream();

                        nntpConnection = new NntpConnection(this.server, handler, stream);
                    }
                    else
                    {
                        var stream    = handler.GetStream();
                        var sslStream = new SslStream(stream);

                        try
                        {
                            await sslStream.AuthenticateAsServerAsync(this.server.ServerAuthenticationCertificate);
                        }
                        catch (IOException ioe)
                        {
                            _Logger.Error("I/O Exception attempting to perform TLS handshake", ioe);
                            return;
                        }

                        nntpConnection = new NntpConnection(this.server, handler, sslStream, true);
                    }

                    this.server.AddConnection(nntpConnection);

                    nntpConnection.Process();
                }
            }
            catch (Exception ex)
            {
                _Logger.Error("Exception when trying to accept connection from listener", ex);
            }
        }
示例#3
0
 internal void RemoveConnection([NotNull] NntpConnection nntpConnection)
 {
     this.connections.Remove(nntpConnection);
     if (nntpConnection.Identity == null)
     {
         Logger.VerboseFormat("Disconnection from {0}:{1}", nntpConnection.RemoteAddress, nntpConnection.RemotePort, nntpConnection.LocalAddress, nntpConnection.LocalPort);
     }
     else
     {
         Logger.VerboseFormat("Disconnection from {0}:{1} ({2})", nntpConnection.RemoteAddress, nntpConnection.RemotePort, nntpConnection.LocalAddress, nntpConnection.LocalPort, nntpConnection.Identity.Username);
     }
 }
示例#4
0
        public static void Main()
        {
            var connection = new NntpConnection();

            var resp = connection.Connect("USENET HOST", 563, true);

            var resp1 = connection.AuthInfoUser("USERNAME");

            var resp2 = connection.AuthInfoPass("PASSWORD");

            var resp3 = connection.Group("NEWSGROUP");

            var overResponse = connection.Over(Range.From(1).To(10));
        }
        // TODO: look at this
        // private DccChat chat;
        public override void Init()
        {
            nntp = new NntpConnection();
            interval = new Timer(30000);
            interval.Elapsed += IntervalElapsed;

            filterGroups = NntpSettings.Default.FilteredGroups.Split(',').ToList();
            filterWords = NntpSettings.Default.FilteredWords.Split(',').ToList();
            base.Init();
        }
示例#6
0
 internal void AddConnection([NotNull] NntpConnection nntpConnection)
 {
     this.connections.Add(nntpConnection);
     Logger.VerboseFormat("Connection from {0}:{1} to {2}:{3}", nntpConnection.RemoteAddress, nntpConnection.RemotePort, nntpConnection.LocalAddress, nntpConnection.LocalPort);
 }