summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-21 17:16:28 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-21 17:16:28 +0000
commit4f6589e123c0a494287f59e3bc75e34ed6e4f6d7 (patch)
treeec62ee40c30c95cba9505d33df0dc25ab684f766 /src
parente2af2347fc035d702e45f12e772223a8d578410d (diff)
Don't try to write to dead users, add debug to SquitServer, and remove a string copy in spanningtree write
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11753 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/inspsocket.cpp6
-rw-r--r--src/modules/m_spanningtree/compat.cpp4
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/inspsocket.cpp b/src/inspsocket.cpp
index 964582062..1f0aa5629 100644
--- a/src/inspsocket.cpp
+++ b/src/inspsocket.cpp
@@ -296,6 +296,12 @@ void StreamSocket::DoWrite()
void StreamSocket::WriteData(const std::string &data)
{
+ if (fd < 0)
+ {
+ ServerInstance->Logs->Log("SOCKET", DEBUG, "Attempt to write data to dead socket: %s",
+ data.c_str());
+ return;
+ }
bool newWrite = sendq.empty() && !data.empty();
/* Append the data to the back of the queue ready for writing */
diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp
index 71272edec..94c797bfd 100644
--- a/src/modules/m_spanningtree/compat.cpp
+++ b/src/modules/m_spanningtree/compat.cpp
@@ -27,6 +27,8 @@ static const char* const forge_common_1201[] = {
"m_setident.so",
};
+static std::string wide_newline("\r\n");
+
void TreeSocket::CompatAddModules(std::vector<std::string>& modlist)
{
if (proto_version < 1202)
@@ -81,8 +83,8 @@ void TreeSocket::WriteLine(std::string line)
}
ServerInstance->Logs->Log("m_spanningtree",DEBUG, "S[%d] O %s", this->GetFd(), line.c_str());
- line.append("\r\n");
this->WriteData(line);
+ this->WriteData(wide_newline);
}
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 55fbc2c91..729c273ec 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -176,6 +176,8 @@ void TreeSocket::SendError(const std::string &errormessage)
*/
void TreeSocket::SquitServer(std::string &from, TreeServer* Current)
{
+ ServerInstance->Logs->Log("m_spanningtree",DEBUG,"SquitServer for %s from %s",
+ Current->GetName().c_str(), from.c_str());
/* recursively squit the servers attached to 'Current'.
* We're going backwards so we don't remove users
* while we still need them ;)