version 0.1.14
[fms.git] / src / nntp / nntpconnection.cpp
index 3fffad7..cc5cffe 100644 (file)
@@ -317,7 +317,7 @@ const bool NNTPConnection::HandleListCommand(const NNTPCommand &command)
                                show=uwildmat((*i).GetBoardName().c_str(),arg2.c_str());\r
                        }\r
 \r
-                       if(show==true)\r
+                       if(show==true && (*i).GetSaveReceivedMessages()==true)\r
                        {\r
                                tempstr << (*i).GetBoardName() << " " << (*i).GetHighMessageID() << " " << (*i).GetLowMessageID() << " " << (m_status.m_allowpost ? "y" : "n");\r
                                SendBufferedLine(tempstr.str());\r
@@ -348,7 +348,7 @@ const bool NNTPConnection::HandleListCommand(const NNTPCommand &command)
                                show=uwildmat((*i).GetBoardName().c_str(),arg2.c_str());\r
                        }\r
 \r
-                       if(show==true)\r
+                       if(show==true && (*i).GetSaveReceivedMessages()==true)\r
                        {\r
                                tempstr << (*i).GetBoardName() << "\t" << (*i).GetBoardDescription();\r
                                SendBufferedLine(tempstr.str());\r
@@ -559,9 +559,12 @@ const bool NNTPConnection::HandleNewGroupsCommand(const NNTPCommand &command)
 \r
                for(BoardList::iterator i=bl.begin(); i!=bl.end(); i++)\r
                {\r
-                       std::ostringstream tempstr;\r
-                       tempstr << (*i).GetBoardName() << " " << (*i).GetHighMessageID() << " " << (*i).GetLowMessageID() << " " << m_status.m_allowpost ? "y" : "n";\r
-                       SendBufferedLine(tempstr.str());\r
+                       if((*i).GetSaveReceivedMessages()==true)\r
+                       {\r
+                               std::ostringstream tempstr;\r
+                               tempstr << (*i).GetBoardName() << " " << (*i).GetHighMessageID() << " " << (*i).GetLowMessageID() << " " << m_status.m_allowpost ? "y" : "n";\r
+                               SendBufferedLine(tempstr.str());\r
+                       }\r
                }\r
 \r
                SendBufferedLine(".");\r
@@ -635,11 +638,13 @@ const bool NNTPConnection::HandleOverCommand(const NNTPCommand &command)
                        messageuuid=command.m_arguments[0];\r
                        messageuuid=StringFunctions::Replace(messageuuid,"<","");\r
                        messageuuid=StringFunctions::Replace(messageuuid,">","");\r
+                       /*\r
                        // get rid of @ and everything after\r
                        if(messageuuid.find("@")!=std::string::npos)\r
                        {\r
                                messageuuid.erase(messageuuid.find("@"));\r
                        }\r
+                       */\r
                }\r
                // single article or range\r
                else\r
@@ -782,11 +787,14 @@ void NNTPConnection::HandlePostedMessage(const std::string &message)
                {\r
                        mess.HandleAdministrationMessage();\r
                }\r
+               if(mess.StartFreenetInsert())\r
+               {\r
+                       SendBufferedLine("240 Article received OK");\r
+               }\r
                else\r
                {\r
-                       mess.StartFreenetInsert();\r
+                       SendBufferedLine("441 Posting failed.  Make sure the identity you are sending with exists!");\r
                }\r
-               SendBufferedLine("240 Article received OK");\r
        }\r
        else\r
        {\r
@@ -955,7 +963,7 @@ void NNTPConnection::SendArticleOverInfo(Message &message)
                        {\r
                                line+=" ";\r
                        }\r
-                       line+="<"+(*i).second+"@freenetproject.org>";\r
+                       line+="<"+(*i).second+">"; //+"@freenetproject.org>";\r
                }\r
                line+="\t";\r
        }\r
@@ -1015,6 +1023,21 @@ void NNTPConnection::SendArticleParts(const NNTPConnection::NNTPCommand &command
                else\r
                {\r
                        articleid=command.m_arguments[0];\r
+                       //strip off < and > and everthing after @\r
+                       if(articleid.size()>0 && articleid[0]=='<')\r
+                       {\r
+                               articleid.erase(0,1);\r
+                       }\r
+                       if(articleid.size()>0 && articleid[articleid.size()-1]=='>')\r
+                       {\r
+                               articleid.erase(articleid.size()-1);\r
+                       }\r
+                       /*\r
+                       if(articleid.size()>0 && articleid.find('@')!=std::string::npos)\r
+                       {\r
+                               articleid.erase(articleid.find('@'));\r
+                       }\r
+                       */\r
                        message.Load(articleid);\r
                        type=2;\r
                }\r