#include "../socketdefines.h"\r
#include "../ilogger.h"\r
#include "../message.h"\r
+#include "../localidentity.h"\r
\r
#include <string>\r
#include <vector>\r
-#include <zthread/Runnable.h>\r
+//#include <zthread/Runnable.h>\r
+#include "../pthreadwrapper/runnable.h"\r
\r
-class NNTPConnection:public ZThread::Runnable,public ILogger//,public IDatabase\r
+#ifdef _WIN32\r
+\r
+#else\r
+ #include <sys/socket.h>\r
+ #include <sys/select.h>\r
+ #include <sys/types.h>\r
+ #include <netdb.h>\r
+ #include <netinet/in.h>\r
+ #include <arpa/inet.h>\r
+#endif\r
+\r
+class NNTPConnection:public PThread::Runnable,public ILogger\r
{\r
public:\r
NNTPConnection(SOCKET sock);\r
void Disconnect();\r
const bool Disconnected() { return m_socket==INVALID_SOCKET; }\r
\r
- void run();\r
+ void Run();\r
\r
private:\r
\r
bool m_isposting;\r
long m_boardid;\r
long m_messageid;\r
+ LocalIdentity m_authuser; // -1 if user not authenticated, otherwise id of user from tblLocalIdentity\r
+ bool m_authenticated;\r
};\r
\r
void SendBuffered(const std::string &data);\r
void HandlePostedMessage(const std::string &message);\r
\r
void SendArticleParts(const NNTPCommand &command);\r
- void SendArticleOverInfo(const Message &message);\r
+ void SendArticleOverInfo(Message &message);\r
\r
// various NNTP commands to handle\r
const bool HandleQuitCommand(const NNTPCommand &command);\r
const bool HandleNewGroupsCommand(const NNTPCommand &command);\r
const bool HandlePostCommand(const NNTPCommand &command);\r
const bool HandleOverCommand(const NNTPCommand &command);\r
+ const bool HandleAuthInfoCommand(const NNTPCommand &command);\r
\r
SOCKET m_socket;\r
ClientStatus m_status;\r