#include "../../include/messagelist.h"\r
#include "../../include/option.h"\r
\r
-#include <zthread/Thread.h>\r
+#include <algorithm>\r
+\r
+//#include <zthread/Thread.h>\r
+#include "../../include/pthreadwrapper/thread.h"\r
\r
#ifdef XMEM\r
#include <xmem.h>\r
m_status.m_messageid=-1;\r
m_status.m_mode=MODE_NONE;\r
\r
- Option::instance()->Get("NNTPAllowPost",tempval);\r
+ Option::Instance()->Get("NNTPAllowPost",tempval);\r
if(tempval=="true")\r
{\r
m_status.m_allowpost=true;\r
{\r
Message mess;\r
\r
- if(mess.Load(m_status.m_messageid,m_status.m_boardid))\r
+ if(mess.LoadPrevious(m_status.m_messageid,m_status.m_boardid))\r
{\r
std::ostringstream tempstr;\r
\r
\r
if(show==true)\r
{\r
- tempstr << (*i).GetBoardName() << "\t" << (*i).GetHighMessageID() << "\t" << (*i).GetLowMessageID() << "\t" << (m_status.m_allowpost ? "y" : "n");\r
+ tempstr << (*i).GetBoardName() << " " << (*i).GetHighMessageID() << " " << (*i).GetLowMessageID() << " " << (m_status.m_allowpost ? "y" : "n");\r
SendBufferedLine(tempstr.str());\r
}\r
}\r
{\r
Message mess;\r
\r
- if(mess.Load(m_status.m_messageid,m_status.m_boardid))\r
+ if(mess.LoadNext(m_status.m_messageid,m_status.m_boardid))\r
{\r
std::ostringstream tempstr;\r
\r
messageuuid=command.m_arguments[0];\r
messageuuid=StringFunctions::Replace(messageuuid,"<","");\r
messageuuid=StringFunctions::Replace(messageuuid,">","");\r
+ // get rid of @ and everything after\r
+ if(messageuuid.find("@")!=std::string::npos)\r
+ {\r
+ messageuuid.erase(messageuuid.find("@"));\r
+ }\r
}\r
// single article or range\r
else\r
return true;\r
}\r
\r
-void NNTPConnection::run()\r
+void NNTPConnection::Run()\r
{\r
struct timeval tv;\r
fd_set writefs,readfs;\r
SocketSend();\r
}\r
}\r
- else if(rval==-1)\r
+ else if(rval==SOCKET_ERROR)\r
{\r
m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"NNTPConnection::run select returned -1 : "+GetSocketErrorMessage()); \r
}\r
\r
- }while(!Disconnected() && !ZThread::Thread::interrupted());\r
- \r
+// }while(!Disconnected() && !ZThread::Thread::interrupted());\r
+ }while(!Disconnected() && !IsCancelled());\r
+\r
Disconnect();\r
- \r
+\r
}\r
\r
void NNTPConnection::SendArticleOverInfo(Message &message)\r
{\r
line+=" ";\r
}\r
- line+="<"+(*i).second+">";\r
+ line+="<"+(*i).second+"@freenetproject.org>";\r
}\r
line+="\t";\r
}\r
}\r
else if(rval==-1)\r
{\r
+ std::string errnostr;\r
+ StringFunctions::Convert(GetSocketErrorNumber(),errnostr);\r
// error on receive - close the connection\r
Disconnect();\r
- m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"NNTPConnection::SocketReceive recv returned -1 : "+GetSocketErrorMessage());\r
+ m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"NNTPConnection::SocketReceive recv returned -1 : "+errnostr+" - "+GetSocketErrorMessage());\r
}\r
}\r
\r
}\r
else if(rval==-1)\r
{\r
- m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"NNTPConnection::SocketSend returned -1 : "+GetSocketErrorMessage());\r
+ std::string errnostr;\r
+ StringFunctions::Convert(GetSocketErrorNumber(),errnostr);\r
+ m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"NNTPConnection::SocketSend returned -1 : "+errnostr+" - "+GetSocketErrorMessage());\r
}\r
}\r
}\r