aboutsummaryrefslogtreecommitdiff
path: root/irc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'irc.cpp')
-rw-r--r--irc.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/irc.cpp b/irc.cpp
index daa9a0db61..a520173f1b 100644
--- a/irc.cpp
+++ b/irc.cpp
@@ -6,6 +6,9 @@
int nGotIRCAddresses = 0;
+void ThreadIRCSeed2(void* parg);
+
+
#pragma pack(push, 1)
@@ -128,6 +131,7 @@ int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const cha
loop
{
string strLine;
+ strLine.reserve(10000);
if (!RecvLineIRC(hSocket, strLine))
return 0;
printf("IRC %s\n", strLine.c_str());
@@ -158,6 +162,21 @@ bool Wait(int nSeconds)
void ThreadIRCSeed(void* parg)
{
+ IMPLEMENT_RANDOMIZE_STACK(ThreadIRCSeed(parg));
+ try
+ {
+ ThreadIRCSeed2(parg);
+ }
+ catch (std::exception& e) {
+ PrintExceptionContinue(&e, "ThreadIRCSeed()");
+ } catch (...) {
+ PrintExceptionContinue(NULL, "ThreadIRCSeed()");
+ }
+ printf("ThreadIRCSeed exiting\n");
+}
+
+void ThreadIRCSeed2(void* parg)
+{
if (mapArgs.count("-connect"))
return;
if (mapArgs.count("-noirc"))
@@ -236,6 +255,7 @@ void ThreadIRCSeed(void* parg)
int64 nStart = GetTime();
string strLine;
+ strLine.reserve(10000);
while (!fShutdown && RecvLineIRC(hSocket, strLine))
{
if (strLine.empty() || strLine.size() > 900 || strLine[0] != ':')