]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/main.cpp
...and remember the parameters ;)
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / main.cpp
index 5c6fecc8fab29c47c298f165f2c3d83a7aff8e7c..ea01bb2c52eb7df44730f0e2d0e9d26346ea2380 100644 (file)
@@ -13,6 +13,7 @@
 
 /* $ModDesc: Provides a spanning tree server link protocol */
 
+#include "inspircd.h"
 #include "configreader.h"
 #include "users.h"
 #include "channels.h"
@@ -20,7 +21,6 @@
 #include "commands/cmd_whois.h"
 #include "commands/cmd_stats.h"
 #include "socket.h"
-#include "inspircd.h"
 #include "wildcard.h"
 #include "xline.h"
 #include "transport.h"
@@ -37,7 +37,7 @@
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h */
 
 ModuleSpanningTree::ModuleSpanningTree(InspIRCd* Me)
-       : Module::Module(Me), max_local(0), max_global(0)
+       : Module(Me), max_local(0), max_global(0)
 {
        ServerInstance->UseInterface("InspSocketHook");
        Utils = new SpanningTreeUtilities(Me, this);
@@ -147,19 +147,24 @@ void ModuleSpanningTree::HandleLusers(const char** parameters, int pcnt, userrec
        return;
 }
 
-const std::string ModuleSpanningTree::MapOperInfo(TreeServer* Current)
+std::string ModuleSpanningTree::TimeToStr(time_t secs)
 {
-       time_t secs_up = ServerInstance->Time() - Current->age;
-       time_t mins_up = secs_up / 60;
+       time_t mins_up = secs / 60;
        time_t hours_up = mins_up / 60;
        time_t days_up = hours_up / 24;
-       secs_up = secs_up % 60;
+       secs = secs % 60;
        mins_up = mins_up % 60;
        hours_up = hours_up % 24;
-       return (" [Up: "+ (days_up ? (ConvToStr(days_up) + "d") : std::string(""))
+       return ((days_up ? (ConvToStr(days_up) + "d") : std::string(""))
                        + (hours_up ? (ConvToStr(hours_up) + "h") : std::string(""))
                        + (mins_up ? (ConvToStr(mins_up) + "m") : std::string(""))
-                       + ConvToStr(secs_up) + "s Lag: "+ConvToStr(Current->rtt)+"s]");
+                       + ConvToStr(secs) + "s");
+}
+
+const std::string ModuleSpanningTree::MapOperInfo(TreeServer* Current)
+{
+       time_t secs_up = ServerInstance->Time() - Current->age;
+       return (" [Up: " + TimeToStr(secs_up) + " Lag: "+ConvToStr(Current->rtt)+"s]");
 }
 
 // WARNING: NOT THREAD SAFE - DONT GET ANY SMART IDEAS.
@@ -467,8 +472,7 @@ void ModuleSpanningTree::DoPingChecks(time_t curtime)
                                }
                                else
                                {
-                                       // they didnt answer, boot them
-                                       ServerInstance->SNO->WriteToSnoMask('l',"Server \002%s\002 pinged out",serv->GetName().c_str());
+                                       /* they didnt answer, boot them */
                                        sock->SendError("Ping timeout");
                                        sock->Squit(serv,"Ping timeout");
                                        ServerInstance->SE->DelFd(sock);
@@ -903,8 +907,7 @@ void ModuleSpanningTree::OnUserJoin(userrec* user, chanrec* channel, bool &silen
                        Utils->DoOneToMany(ServerInstance->Config->ServerName,"FJOIN",params);
                        /* First user in, sync the modes for the channel */
                        params.pop_back();
-                       /* This is safe, all inspircd servers default to +nt */
-                       params.push_back("+nt");
+                       params.push_back(channel->ChanModes(true));
                        Utils->DoOneToMany(ServerInstance->Config->ServerName,"FMODE",params);
                }
                else
@@ -1375,7 +1378,7 @@ class ModuleSpanningTreeFactory : public ModuleFactory
 };
 
 
-extern "C" void * init_module( void )
+extern "C" DllExport void * init_module( void )
 {
        return new ModuleSpanningTreeFactory;
 }