diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index 70dffb8ce..ed0695ba8 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -450,7 +450,11 @@ bool event_nick(const Anope::string &source, const std::vector &p if (params.size() != 2) { - user = do_nick(source, params[0], params[4], params[5], params[6], params[9], Anope::string(params[2]).is_pos_number_only() ? convertTo(params[2]) : 0, params[8], "", "", params[3]); + /* Currently bahamut has no ipv6 support */ + sockaddrs ip; + ip.ntop(AF_INET, params[8].c_str()); + + user = do_nick(source, params[0], params[4], params[5], params[6], params[9], Anope::string(params[2]).is_pos_number_only() ? convertTo(params[2]) : 0, ip.addr(), "", "", params[3]); if (user) { NickAlias *na; @@ -585,12 +589,9 @@ bool event_quit(const Anope::string &source, const std::vector &p /* EVENT: MODE */ bool event_mode(const Anope::string &source, const std::vector ¶ms) { - if (params.size() < 3) - return true; - - if (params[0][0] == '#' || params[0][0] == '&') + if (params.size() > 2 && (params[0][0] == '#' || params[0][0] == '&')) do_cmode(source, params[0], params[2], params[1]); - else + else if (params.size() > 1) do_umode(source, params[0], params[1]); return true; } diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp index 7d1d456ac..c58630fab 100644 --- a/modules/protocol/inspircd11.cpp +++ b/modules/protocol/inspircd11.cpp @@ -433,6 +433,8 @@ bool event_fjoin(const Anope::string &source, const std::vector & if (keep_their_modes) Status.push_back(cm); } + /* Erase the , */ + buf.erase(buf.begin()); User *u = finduser(buf); if (!u) @@ -887,7 +889,7 @@ bool event_capab(const Anope::string &source, const std::vector & } } } - else if (capab.find("PREIX=(") != Anope::string::npos) + else if (capab.find("PREFIX=(") != Anope::string::npos) { Anope::string modes(capab.begin() + 8, capab.begin() + capab.find(')')); Anope::string chars(capab.begin() + capab.find(')') + 1, capab.end());