version 0.1.7
[fms.git] / src / message.cpp
index f4d3a95..dee644d 100644 (file)
@@ -22,7 +22,7 @@ Message::Message(const long messageid)
 \r
 const std::string Message::GetNNTPArticleID() const\r
 {\r
-       return "<"+m_messageuuid+">";\r
+       return "<"+m_messageuuid+"@freenetproject.org>";\r
 }\r
 \r
 const std::string Message::GetNNTPBody() const\r
@@ -57,7 +57,7 @@ const std::string Message::GetNNTPHeaders() const
                        {\r
                                rval+=" ";\r
                        }\r
-                       rval+="<"+(*j).second+">";\r
+                       rval+="<"+(*j).second+"@freenetproject.org>";\r
                }\r
                rval+="\r\n";\r
        }\r
@@ -276,6 +276,18 @@ const bool Message::ParseNNTPMessage(const std::string &nntpmessage)
                        }\r
                }\r
                m_fromname=StringFunctions::TrimWhitespace(m_fromname);\r
+\r
+               // trim off " from beginning and end\r
+               if(m_fromname.size()>0 && m_fromname[0]=='\"')\r
+               {\r
+                       m_fromname.erase(0,1);\r
+               }\r
+               if(m_fromname.size()>0 && m_fromname[m_fromname.size()-1]=='\"')\r
+               {\r
+                       m_fromname.erase(m_fromname.size()-1,1);\r
+               }\r
+\r
+               m_fromname=StringFunctions::TrimWhitespace(m_fromname);\r
        }\r
        else\r
        {\r
@@ -328,9 +340,15 @@ const bool Message::ParseNNTPMessage(const std::string &nntpmessage)
                StringFunctions::SplitMultiple(temp,", \t",parts);\r
                for(std::vector<std::string>::reverse_iterator i=parts.rbegin(); i!=parts.rend(); i++)\r
                {\r
+                       // get rid of < and > and any whitespace\r
                        (*i)=StringFunctions::Replace((*i),"<","");\r
                        (*i)=StringFunctions::Replace((*i),">","");\r
                        (*i)=StringFunctions::TrimWhitespace((*i));\r
+                       // erase @ and everything after\r
+                       if((*i).find("@")!=std::string::npos)\r
+                       {\r
+                               (*i).erase((*i).find("@"));\r
+                       }\r
                        if((*i)!="")\r
                        {\r
                                m_inreplyto[count++]=(*i);\r