diff options
author | Adam <Adam@anope.org> | 2015-01-05 16:31:09 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2015-01-05 19:00:51 -0500 |
commit | d79d8e2608e304760c42bdf87502e3bc51781b88 (patch) | |
tree | 179913b8b328f88d52d84c3453fceb28a2d63422 /modules/protocol/ngircd.cpp | |
parent | 8ab1c71d7dc7a0d47e5711dc72e3fc9c3ee850bb (diff) | |
parent | c46ec39e5088119cd21f5f7e16e64e61a876ca20 (diff) |
Merge branch '2.0' into 2.1
Conflicts:
CMakeLists.txt
include/modules.h
include/serialize.h
modules/commands/bs_assign.cpp
modules/commands/bs_badwords.cpp
modules/commands/bs_bot.cpp
modules/commands/bs_control.cpp
modules/commands/bs_kick.cpp
modules/commands/cs_access.cpp
modules/commands/cs_akick.cpp
modules/commands/cs_drop.cpp
modules/commands/cs_entrymsg.cpp
modules/commands/cs_flags.cpp
modules/commands/cs_info.cpp
modules/commands/cs_invite.cpp
modules/commands/cs_kick.cpp
modules/commands/cs_mode.cpp
modules/commands/cs_register.cpp
modules/commands/cs_seen.cpp
modules/commands/cs_set.cpp
modules/commands/cs_suspend.cpp
modules/commands/cs_topic.cpp
modules/commands/cs_unban.cpp
modules/commands/cs_xop.cpp
modules/commands/hs_del.cpp
modules/commands/hs_list.cpp
modules/commands/hs_request.cpp
modules/commands/ms_ignore.cpp
modules/commands/ms_send.cpp
modules/commands/ns_recover.cpp
modules/commands/ns_register.cpp
modules/commands/ns_suspend.cpp
modules/commands/os_dns.cpp
modules/commands/os_noop.cpp
modules/commands/os_oper.cpp
modules/commands/os_session.cpp
modules/database/db_sql_live.cpp
modules/encryption/enc_bcrypt.cpp
modules/extra/m_ldap_authentication.cpp
modules/extra/m_ldap_oper.cpp
modules/fantasy.cpp
modules/m_dnsbl.cpp
modules/m_sasl.cpp
modules/protocol/hybrid.cpp
modules/protocol/inspircd20.cpp
modules/protocol/unreal.cpp
modules/pseudoclients/chanserv.cpp
modules/pseudoclients/nickserv.cpp
modules/webcpanel/pages/chanserv/access.cpp
modules/webcpanel/webcpanel.cpp
modules/webcpanel/webcpanel.h
src/command.cpp
src/messages.cpp
src/modulemanager.cpp
src/regchannel.cpp
src/serialize.cpp
Diffstat (limited to 'modules/protocol/ngircd.cpp')
-rw-r--r-- | modules/protocol/ngircd.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp index f7d848a71..9101a6788 100644 --- a/modules/protocol/ngircd.cpp +++ b/modules/protocol/ngircd.cpp @@ -169,6 +169,11 @@ class ngIRCdProto : public IRCDProto { this->SendVhost(u, u->GetIdent(), ""); } + + Anope::string Format(const Anope::string &source, const Anope::string &message) override + { + return IRCDProto::Format(source.empty() ? Me->GetSID() : source, message); + } }; struct IRCDMessage005 : IRCDMessage @@ -443,7 +448,14 @@ struct IRCDMessageNick : IRCDMessage else if (params.size() == 7) { // a new user is connecting to the network - User::OnIntroduce(params[0], params[2], params[3], "", "", source.GetServer(), params[6], Anope::CurTime, params[5], "", NULL); + Server *s = Server::Find(params[4]); + if (s == NULL) + { + Log(LOG_DEBUG) << "User " << params[0] << " introduced from nonexistant server " << params[4] << "?"; + return; + } + User::OnIntroduce(params[0], params[2], params[3], "", "", s, params[6], Anope::CurTime, params[5], "", NULL); + Log(LOG_DEBUG) << "Registered nick \"" << params[0] << "\" on server " << s->GetName() << "."; } else { @@ -519,18 +531,17 @@ struct IRCDMessageServer : IRCDMessage IRCDMessageServer(Module *creator) : IRCDMessage(creator, "SERVER", 3) { SetFlag(IRCDMESSAGE_SOFT_LIMIT); } /* + * New directly linked server: + * * SERVER tolsun.oulu.fi 1 :Experimental server * New server tolsun.oulu.fi introducing itself * and attempting to register. * - * RFC 2813 says the server has to send a hopcount - * AND a servertoken. Not quite sure what ngIRCd is - * sending here. - * * params[0] = servername - * params[1] = hop count (or servertoken?) + * params[1] = hop count * params[2] = server description * + * New remote server in the network: * * :tolsun.oulu.fi SERVER csd.bu.edu 5 34 :BU Central Server * Server tolsun.oulu.fi is our uplink for csd.bu.edu @@ -549,13 +560,13 @@ struct IRCDMessageServer : IRCDMessage if (params.size() == 3) { // our uplink is introducing itself - new Server(Me, params[0], 1, params[2], ""); + new Server(Me, params[0], 1, params[2], "1"); } else { // our uplink is introducing a new server unsigned int hops = params[1].is_pos_number_only() ? convertTo<unsigned>(params[1]) : 0; - new Server(source.GetServer(), params[0], hops, params[2], params[3]); + new Server(source.GetServer(), params[0], hops, params[3], params[2]); } /* * ngIRCd does not send an EOB, so we send a PING immediately |