Beispiel #1
0
        private void sendUsernameUnit_Finished(AsciiProtocolUnit unit)
        {
            AsciiSendLineGetLineUnit sendUsernameUnit = (AsciiSendLineGetLineUnit)unit;

            if (sendUsernameUnit.LineSent)
            {
                _responseLine = sendUsernameUnit.ResponseLine;
                if (_responseLine != null)
                {
                    if (_responseLine.StartsWith("381"))    // password required
                    {
                        AsciiSendLineGetLineUnit sendPasswordUnit =
                            new AsciiSendLineGetLineUnit("authinfo pass " + _password);
                        sendPasswordUnit.Finished += new AsciiProtocolUnitDelegate(sendPasswordUnit_Finished);
                        StartUnit(sendPasswordUnit, _connection);
                        return;
                    }
                    if (_responseLine.StartsWith("281"))    // password not required (wonder if this can occur)
                    {
                        _succeeded = true;
                    }
                }
            }
            FireFinished();
        }
Beispiel #2
0
        private void downloadHeadersSetGroupUnit_Finished(AsciiProtocolUnit unit)
        {
            NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit;
            string           response     = setGroupUnit.ResponseLine;

            if (response != null)
            {
                while (response.StartsWith("211"))
                {
                    string[] parts = response.Split(' ');
                    _firstArticleCopy = _firstArticle = Int32.Parse(parts[2]);
                    _lastArticle      = Int32.Parse(parts[3]);
                    SetArticleNumbersRange(ref _firstArticle, ref _lastArticle);
                    if (_lastArticle == 0 || _lastArticle < _firstArticle)
                    {
                        break;
                    }
                    _getHeadersUnit = new AsciiSendLineAndApplyMethodUnit(
                        "xover " + _firstArticle + '-' + _lastArticle, ".\r\n", new LineDelegate(ProcessHeadersLine));
                    _getHeadersUnit.Finished += new AsciiProtocolUnitDelegate(getHeadersUnit_Finished);
                    StartUnit(_getHeadersUnit, _connection);
                    return;
                }
            }
            FireFinished();
        }
Beispiel #3
0
 private void getHeadersUnit_Finished(AsciiProtocolUnit unit)
 {
     if (_getHeadersUnit.LineSent)
     {
         SetGroupNumbers();
     }
     _getHeadersUnit = null;
     FireFinished();
 }
Beispiel #4
0
        private void AuthenticateFinished(AsciiProtocolUnit unit)
        {
            NntpAuthenticateUnit authenticateUnit = (NntpAuthenticateUnit)unit;

            if (!authenticateUnit.Succeeded)
            {
                SetError(authenticateUnit.ResponseLine);
            }
        }
Beispiel #5
0
        private void ConnectFinished(AsciiProtocolUnit unit)
        {
            AsciiConnectAndGetServerPromptUnit connectUnit = (AsciiConnectAndGetServerPromptUnit)unit;

            _serverPrompt = connectUnit.ServerPrompt;
            _state        = (connectUnit.Connected) ? NntpConnectionState.Connected : NntpConnectionState.NotConnected;
            if (_state == NntpConnectionState.NotConnected)
            {
                SetError(_serverPrompt);
            }
        }
Beispiel #6
0
        private void sendPasswordUnit_Finished(AsciiProtocolUnit unit)
        {
            AsciiSendLineGetLineUnit sendPasswordUnit = (AsciiSendLineGetLineUnit)unit;

            if (sendPasswordUnit.LineSent)
            {
                _responseLine = sendPasswordUnit.ResponseLine;
                if (_responseLine != null && _responseLine.StartsWith("281"))
                {
                    _succeeded = true;
                }
            }
            FireFinished();
        }
Beispiel #7
0
        private void setGroupUnit_Finished(AsciiProtocolUnit unit)
        {
            NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit;
            string           response     = setGroupUnit.ResponseLine;

            if (response == null || !response.StartsWith("211"))
            {
                FireFinished();
            }
            else
            {
                GetArticleById();
            }
        }
Beispiel #8
0
        private void postUnit_Finished(AsciiProtocolUnit unit)
        {
            AsciiSendLineGetLineUnit postUnit = (AsciiSendLineGetLineUnit)unit;
            string response = postUnit.ResponseLine;

            if (!postUnit.LineSent || response == null || !response.StartsWith("240"))
            {
                ExtractError(response);
                FireFinished();
            }
            else
            {
                _error = null;
                FireFinished();
            }
        }
Beispiel #9
0
        private void initPostUnit_Finished(AsciiProtocolUnit unit)
        {
            AsciiSendLineGetLineUnit initPostUnit = (AsciiSendLineGetLineUnit)unit;
            string response = initPostUnit.ResponseLine;

            if (!initPostUnit.LineSent || (response != null && !response.StartsWith("340")))
            {
                ExtractError(response);
                FireFinished();
            }
            else
            {
                AsciiSendLineGetLineUnit postUnit = new AsciiSendLineGetLineUnit(_nntpBody);
                postUnit.Finished += new AsciiProtocolUnitDelegate(postUnit_Finished);
                StartUnit(postUnit, _connection);
            }
        }
Beispiel #10
0
        private void setGroupUnit_Finished(AsciiProtocolUnit unit)
        {
            NntpSetGroupUnit setGroupUnit = (NntpSetGroupUnit)unit;
            string           response     = setGroupUnit.ResponseLine;

            if (response == null || !response.StartsWith("211"))
            {
                StartNextGroup();
            }
            else
            {
                _emptyArticles = _group.Resource.GetLinksTo(null, NntpPlugin._propTo);
                _emptyArticles = _emptyArticles.Intersect(
                    Core.ResourceStore.FindResourcesWithProp(null, NntpPlugin._propHasNoBody), true);
                _emptyArticles.Sort("Date", false);
                _articleIndex = 0;
                StartNextArticle();
            }
        }
Beispiel #11
0
        private void setGroupUnit_Finished(AsciiProtocolUnit unit)
        {
            AsciiSendLineGetLineUnit setGroupUnit = (AsciiSendLineGetLineUnit)unit;

            _responseLine = setGroupUnit.ResponseLine;
            string error = null;

            if (_responseLine == null)
            {
                if (_connection.LastSocketException != null)
                {
                    error = _connection.LastSocketException.Message;
                }
                else
                {
                    error = "Newsgroup could not be processed";
                }
            }
            else if (!_responseLine.StartsWith("211"))
            {
                if (_responseLine.Length > 4)
                {
                    error = _responseLine.Substring(4);
                }
                else
                {
                    error = "Newsgroup could not be processed";
                }
            }
            ResourceProxy proxy = new ResourceProxy(_group.Resource);

            if (error != null)
            {
                proxy.SetPropAsync(Core.Props.LastError, error);
            }
            else
            {
                proxy.DeletePropAsync(Core.Props.LastError);
            }
            FireFinished();
        }
Beispiel #12
0
 private void getArticleUnit_Finished(AsciiProtocolUnit unit)
 {
     if (_articleAvailable)
     {
         IAsyncProcessor ap = Core.ResourceAP;
         if (_group == null)
         {
             ap.RunUniqueJob("Creating news article",
                             new CreateArticleByProtocolHandlerDelegate(NewsArticleParser.CreateArticleByProtocolHandler),
                             _lines.ToArray(typeof(string)), _article);
         }
         else
         {
             ap.QueueJob(_priority, "Creating news article",
                         new CreateArticleDelegate(NewsArticleParser.CreateArticle),
                         _lines.ToArray(typeof(string)), _group, _articleId);
         }
     }
     _getArticleUnit = null;
     FireFinished();
 }
Beispiel #13
0
 private void group_Finished(AsciiProtocolUnit unit)
 {
     StartNextGroup();
 }
Beispiel #14
0
 private void enumGroupsUnit_Finished(AsciiProtocolUnit unit)
 {
     _serverResource.LastUpdateTime = _startUpdateDate;
     _enumGroupsUnit = null;
     FireFinished();
 }
Beispiel #15
0
 private void downloadArticleUnit_Finished(AsciiProtocolUnit unit)
 {
     StartNextArticle();
 }
Beispiel #16
0
        private static void postUnit_Finished(AsciiProtocolUnit unit)
        {
            NntpPostArticleUnit postUnit = (NntpPostArticleUnit)unit;

            ArticlePostedOrFailed(postUnit.DraftArticle);
        }