]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/override_stats.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / override_stats.cpp
index 9762ecf4e3b9c202180e58e4883b1df6998a312c..14b3f5ef74b10a6936eb26d9859d4eb6c78421db 100644 (file)
@@ -31,12 +31,22 @@ ModResult ModuleSpanningTree::OnStats(char statschar, User* user, string_list &r
                for (std::vector<reference<Link> >::iterator i = Utils->LinkBlocks.begin(); i != Utils->LinkBlocks.end(); ++i)
                {
                        Link* L = *i;
-                       results.push_back(std::string(ServerInstance->Config->ServerName)+" 213 "+user->nick+" "+statschar+" *@"+(L->HiddenFromStats ? "<hidden>" : L->IPAddr)+" * "+(*i)->Name.c_str()+" "+ConvToStr(L->Port)+" "+(L->Hook.empty() ? "plaintext" : L->Hook));
+                       results.push_back("213 "+user->nick+" "+statschar+" *@"+(L->HiddenFromStats ? "<hidden>" : L->IPAddr)+" * "+(*i)->Name.c_str()+" "+ConvToStr(L->Port)+" "+(L->Hook.empty() ? "plaintext" : L->Hook));
                        if (statschar == 'c')
-                               results.push_back(std::string(ServerInstance->Config->ServerName)+" 244 "+user->nick+" H * * "+L->Name.c_str());
+                               results.push_back("244 "+user->nick+" H * * "+L->Name.c_str());
+               }
+               return MOD_RES_DENY;
+       }
+       else if (statschar == 'U')
+       {
+               ConfigTagList tags = ServerInstance->Config->ConfTags("uline");
+               for (ConfigIter i = tags.first; i != tags.second; ++i)
+               {
+                       std::string name = i->second->getString("server");
+                       if (!name.empty())
+                               results.push_back("248 "+user->nick+" U "+name);
                }
                return MOD_RES_DENY;
        }
        return MOD_RES_PASSTHRU;
 }
-