Limit the maximal read buffer space that is used for every socket

CSocket caches the data read from a socket and then looks for lines in there.
If there is no line end, this buffer can grow quite large. This patch now
closes sockets if they get a huge read buffer.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1233 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
psychon
2008-09-30 14:43:51 +00:00
parent f40b3e78d7
commit 18ce52e32d
10 changed files with 52 additions and 0 deletions
+4
View File
@@ -75,6 +75,9 @@ public:
m_bNamesx = false;
m_bUHNames = false;
EnableReadLine();
// RFC says a line can have 512 chars max, but we are
// a little more gentle ;)
SetMaxBufferThreshold(1024);
StartLoginTimeout();
}
@@ -113,6 +116,7 @@ public:
virtual void Connected();
virtual void Disconnected();
virtual void ConnectionRefused();
virtual void ReachedMaxBuffer();
void SetNick(const CString& s);
CUser* GetUser() const { return m_pUser; }