]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Added test code for one-to-many PRIVMSG
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 29 Nov 2005 10:51:14 +0000 (10:51 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 29 Nov 2005 10:51:14 +0000 (10:51 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1994 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_spanningtree.cpp

index 243e3dce21bd5f9b5328a829e479a91b3ee605f0..9462b52527d687d9e0d875a901d98f60be7130a5 100644 (file)
@@ -1225,6 +1225,32 @@ class ModuleSpanningTree : public Module
                                DoOneToOne(user->nick,"PRIVMSG",params,d->server);
                        }
                }
+               else
+               {
+                       chanrec* c = (chanrec*)dest;
+                       std::deque<std::string> params;
+                       std::vector<std::string> wlist;
+                       params.clear();
+                       wlist.clear();
+                       params.push_back(c->name);
+                       params.push_back(":"+text);
+                       std::vector<char*> *ulist = c->GetUsers();
+                       for (unsigned int j = 0; j < ulist->size(); j++)
+                       {
+                               char* o = (*ulist)[j];
+                               userrec* otheruser = (userrec*)o;
+                               if (!strcasecmp(otheruser->server,Srv->GetServerName().c_str()))
+                               {
+                                       // this user is on another server.
+                                       // Write that server, then mark that server so we dont write to it again.
+                                       if (find(wlist.begin(),wlist.end(),otheruser->server) == wlist.end())
+                                       {
+                                               DoOneToOne(user->nick,"PRIVMSG",params,otheruser->server);
+                                               wlist.push_back(otheruser->server);
+                                       }
+                               }
+                       }
+               }
        }
 
        virtual void OnUserJoin(userrec* user, chanrec* channel)