]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/motd.cpp
66de93e187e9e103863a9628a3e8b8fbcb89049e
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / motd.cpp
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
6  * See: http://wiki.inspircd.org/Credits
7  *
8  * This program is free but copyrighted software; see
9  *            the file COPYING for details.
10  *
11  * ---------------------------------------------------
12  */
13
14 #include "inspircd.h"
15 #include "xline.h"
16
17 #include "treesocket.h"
18 #include "treeserver.h"
19 #include "utils.h"
20
21 /* $ModDep: m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/treesocket.h */
22
23
24
25 /** remote MOTD. leet, huh? */
26 bool TreeSocket::Motd(const std::string &prefix, std::deque<std::string> &params)
27 {
28         if (params.size() > 0)
29         {
30                 if (InspIRCd::Match(this->ServerInstance->Config->ServerName, params[0]))
31                 {
32                         /* It's for our server */
33                         string_list results;
34                         User* source = this->ServerInstance->FindNick(prefix);
35
36                         if (source)
37                         {
38                                 std::deque<std::string> par;
39                                 par.push_back(prefix);
40                                 par.push_back("");
41
42                                 if (!ServerInstance->Config->MOTD.size())
43                                 {
44                                         par[1] = std::string("::")+ServerInstance->Config->ServerName+" 422 "+source->nick+" :Message of the day file is missing.";
45                                         Utils->DoOneToOne(this->ServerInstance->Config->GetSID(), "PUSH",par, source->server);
46                                         return true;
47                                 }
48
49                                 par[1] = std::string("::")+ServerInstance->Config->ServerName+" 375 "+source->nick+" :"+ServerInstance->Config->ServerName+" message of the day";
50                                 Utils->DoOneToOne(this->ServerInstance->Config->GetSID(), "PUSH",par, source->server);
51
52                                 for (unsigned int i = 0; i < ServerInstance->Config->MOTD.size(); i++)
53                                 {
54                                         par[1] = std::string("::")+ServerInstance->Config->ServerName+" 372 "+source->nick+" :- "+ServerInstance->Config->MOTD[i];
55                                         Utils->DoOneToOne(this->ServerInstance->Config->GetSID(), "PUSH",par, source->server);
56                                 }
57
58                                 par[1] = std::string("::")+ServerInstance->Config->ServerName+" 376 "+source->nick+" :End of message of the day.";
59                                 Utils->DoOneToOne(this->ServerInstance->Config->GetSID(), "PUSH",par, source->server);
60                         }
61                 }
62                 else
63                 {
64                         /* Pass it on */
65                         User* source = this->ServerInstance->FindNick(prefix);
66                         if (source)
67                                 Utils->DoOneToOne(prefix, "MOTD", params, params[0]);
68                 }
69         }
70         return true;
71 }
72