X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmessage.cpp;h=dee644d919b6f6e6f9963f1751c249877e610aa7;hb=f208e33c29132aacaec448e74341edea1b925a2a;hp=c15b5302b717ae11a89ed6824684e6188893a236;hpb=6b896a9e1dc143bba86795be1e9336549db9b85f;p=fms.git diff --git a/src/message.cpp b/src/message.cpp index c15b530..dee644d 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -22,7 +22,7 @@ Message::Message(const long messageid) const std::string Message::GetNNTPArticleID() const { - return "<"+m_messageuuid+">"; + return "<"+m_messageuuid+"@freenetproject.org>"; } const std::string Message::GetNNTPBody() const @@ -57,7 +57,7 @@ const std::string Message::GetNNTPHeaders() const { rval+=" "; } - rval+="<"+(*j).second+">"; + rval+="<"+(*j).second+"@freenetproject.org>"; } rval+="\r\n"; } @@ -179,10 +179,10 @@ const bool Message::Load(const std::string &messageuuid) const bool Message::LoadNext(const long messageid, const long boardid) { - std::string sql="SELECT MessageID FROM tblMessage WHERE MessageID>?"; + std::string sql="SELECT tblMessage.MessageID FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID WHERE tblMessage.MessageID>?"; if(boardid!=-1) { - sql+=" AND BoardID=?"; + sql+=" AND tblMessageBoard.BoardID=?"; } sql+=";"; @@ -209,12 +209,12 @@ const bool Message::LoadNext(const long messageid, const long boardid) const bool Message::LoadPrevious(const long messageid, const long boardid) { - std::string sql="SELECT MessageID FROM tblMessage WHERE MessageIDPrepare(sql); @@ -276,6 +276,18 @@ const bool Message::ParseNNTPMessage(const std::string &nntpmessage) } } m_fromname=StringFunctions::TrimWhitespace(m_fromname); + + // trim off " from beginning and end + if(m_fromname.size()>0 && m_fromname[0]=='\"') + { + m_fromname.erase(0,1); + } + if(m_fromname.size()>0 && m_fromname[m_fromname.size()-1]=='\"') + { + m_fromname.erase(m_fromname.size()-1,1); + } + + m_fromname=StringFunctions::TrimWhitespace(m_fromname); } else { @@ -328,9 +340,15 @@ const bool Message::ParseNNTPMessage(const std::string &nntpmessage) StringFunctions::SplitMultiple(temp,", \t",parts); for(std::vector::reverse_iterator i=parts.rbegin(); i!=parts.rend(); i++) { + // get rid of < and > and any whitespace (*i)=StringFunctions::Replace((*i),"<",""); (*i)=StringFunctions::Replace((*i),">",""); (*i)=StringFunctions::TrimWhitespace((*i)); + // erase @ and everything after + if((*i).find("@")!=std::string::npos) + { + (*i).erase((*i).find("@")); + } if((*i)!="") { m_inreplyto[count++]=(*i);