+ /** remote MOTD. leet, huh? */
+ bool Motd(std::string prefix, std::deque<std::string> ¶ms)
+ {
+ if (params.size() > 0)
+ {
+ if (this->Instance->MatchText(this->Instance->Config->ServerName, params[0]))
+ {
+ /* It's for our server */
+ string_list results;
+ userrec* source = this->Instance->FindNick(prefix);
+
+ if (source)
+ {
+ std::deque<std::string> par;
+ par.push_back(prefix);
+ par.push_back("");
+
+ if (!Instance->Config->MOTD.size())
+ {
+ par[1] = std::string("::")+Instance->Config->ServerName+" 422 "+source->nick+" :Message of the day file is missing.";
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+ return true;
+ }
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 375 "+source->nick+" :"+Instance->Config->ServerName+" message of the day";
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+
+ for (unsigned int i = 0; i < Instance->Config->MOTD.size(); i++)
+ {
+ par[1] = std::string("::")+Instance->Config->ServerName+" 372 "+source->nick+" :- "+Instance->Config->MOTD[i];
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+ }
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 376 "+source->nick+" End of message of the day.";
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+ }
+ }
+ else
+ {
+ /* Pass it on */
+ userrec* source = this->Instance->FindNick(prefix);
+ if (source)
+ DoOneToOne(prefix, "MOTD", params, params[0]);
+ }
+ }
+ return true;
+ }
+
+ /** remote ADMIN. leet, huh? */
+ bool Admin(std::string prefix, std::deque<std::string> ¶ms)
+ {
+ if (params.size() > 0)
+ {
+ if (this->Instance->MatchText(this->Instance->Config->ServerName, params[0]))
+ {
+ /* It's for our server */
+ string_list results;
+ userrec* source = this->Instance->FindNick(prefix);
+
+ if (source)
+ {
+ std::deque<std::string> par;
+ par.push_back(prefix);
+ par.push_back("");
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 256 "+source->nick+" :Administrative info for "+Instance->Config->ServerName;
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 257 "+source->nick+" :Name - "+Instance->Config->AdminName;
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 258 "+source->nick+" :Nickname - "+Instance->Config->AdminNick;
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+
+ par[1] = std::string("::")+Instance->Config->ServerName+" 258 "+source->nick+" :E-Mail - "+Instance->Config->AdminEmail;
+ DoOneToOne(this->Instance->Config->ServerName, "PUSH",par, source->server);
+ }
+ }
+ else
+ {
+ /* Pass it on */
+ userrec* source = this->Instance->FindNick(prefix);
+ if (source)
+ DoOneToOne(prefix, "ADMIN", params, params[0]);
+ }
+ }
+ return true;
+ }
+