diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/bots.cpp | 5 | ||||
-rw-r--r-- | src/channels.cpp | 55 | ||||
-rw-r--r-- | src/config.cpp | 1 | ||||
-rw-r--r-- | src/extensible.cpp | 2 | ||||
-rw-r--r-- | src/init.cpp | 2 | ||||
-rw-r--r-- | src/language.cpp | 2 | ||||
-rw-r--r-- | src/messages.cpp | 23 | ||||
-rw-r--r-- | src/misc.cpp | 7 | ||||
-rw-r--r-- | src/modes.cpp | 13 | ||||
-rw-r--r-- | src/module.cpp | 5 | ||||
-rw-r--r-- | src/modulemanager.cpp | 70 | ||||
-rw-r--r-- | src/protocol.cpp | 6 | ||||
-rw-r--r-- | src/tools/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/geoipupdate.sh | 2 | ||||
-rw-r--r-- | src/uplink.cpp | 1 | ||||
-rw-r--r-- | src/version.sh | 6 | ||||
-rw-r--r-- | src/win32/Config.cs | 2 | ||||
-rw-r--r-- | src/win32/socket.cpp | 2 | ||||
-rw-r--r-- | src/win32/windows.cpp | 2 |
20 files changed, 123 insertions, 89 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7f43fcd30..b32c1d9c0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,7 +75,9 @@ add_to_cpack_ignored_files("${SERVICES_BINARY}$" TRUE) configure_file(${Anope_SOURCE_DIR}/include/sysconf.h.cmake ${Anope_BINARY_DIR}/include/sysconf.h) # Go into the following directories and run their CMakeLists.txt as well -add_subdirectory(tools) +if(NOT DISABLE_TOOLS) + add_subdirectory(tools) +endif(NOT DISABLE_TOOLS) # Set Anope to be installed to the bin directory install(TARGETS ${PROGRAM_NAME} diff --git a/src/bots.cpp b/src/bots.cpp index 205b0841c..f934676bb 100644 --- a/src/bots.cpp +++ b/src/bots.cpp @@ -174,12 +174,9 @@ void ServiceBot::Part(Channel *c, const Anope::string &reason) IRCD->SendPart(this, c, "%s", !reason.empty() ? reason.c_str() : ""); - Anope::string cname = c->name; - Reference<Channel> cref = c; - c->DeleteUser(this); - Event::OnPartChannel(&Event::PartChannel::OnPartChannel, this, cref, cname, reason); + Event::OnPartChannel(&Event::PartChannel::OnPartChannel, this, c, c->name, reason); } void ServiceBot::OnMessage(User *u, const Anope::string &message) diff --git a/src/channels.cpp b/src/channels.cpp index f77f1f4bc..e1529b270 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -26,6 +26,7 @@ #include "modules/chanserv.h" channel_map ChannelList; +std::vector<Channel *> Channel::deleting; Channel::Channel(const Anope::string &nname, time_t ts) { @@ -116,7 +117,7 @@ void Channel::CheckModes() bool Channel::CheckDelete() { - /* Channel is syncing from a netburst, don't destroy it as more users are probably wanting to join immediatly + /* Channel is syncing from a netburst, don't destroy it as more users are probably wanting to join immediately * We also don't part the bot here either, if necessary we will part it after the sync */ if (this->syncing) @@ -155,14 +156,14 @@ void Channel::DeleteUser(User *user) ChanUserContainer *cu = user->FindChannel(this); if (!this->users.erase(user)) - Log(LOG_DEBUG) << "Channel::DeleteUser() tried to delete nonexistant user " << user->nick << " from channel " << this->name; + Log(LOG_DEBUG) << "Channel::DeleteUser() tried to delete non-existent user " << user->nick << " from channel " << this->name; if (!user->chans.erase(this)) - Log(LOG_DEBUG) << "Channel::DeleteUser() tried to delete nonexistant channel " << this->name << " from " << user->nick << "'s channel list"; + Log(LOG_DEBUG) << "Channel::DeleteUser() tried to delete non-existent channel " << this->name << " from " << user->nick << "'s channel list"; delete cu; - if (this->CheckDelete()) - delete this; + if (std::find(deleting.begin(), deleting.end(), this) == deleting.end()) + deleting.push_back(this); } ChanUserContainer *Channel::FindUser(User *u) const @@ -274,7 +275,7 @@ void Channel::SetModeInternal(const MessageSource &setter, ChannelMode *ocm, con if (!u) { - Log() << "MODE " << this->name << " +" << cm->mchar << " for nonexistant user " << param; + Log() << "MODE " << this->name << " +" << cm->mchar << " for non-existent user " << param; return; } @@ -338,7 +339,7 @@ void Channel::RemoveModeInternal(const MessageSource &setter, ChannelMode *ocm, if (!u) { - Log() << "Channel::RemoveModeInternal() MODE " << this->name << "-" << cm->mchar << " for nonexistant user " << param; + Log() << "Channel::RemoveModeInternal() MODE " << this->name << "-" << cm->mchar << " for non-existent user " << param; return; } @@ -636,7 +637,7 @@ void Channel::SetModesInternal(MessageSource &source, const Anope::string &mode, if (cm->type == MODE_REGULAR) { - /* something changed if we are adding a mode we dont have, or removing one we have */ + /* something changed if we are adding a mode we don't have, or removing one we have */ changed |= !!add != this->HasMode(cm->name); if (add) this->SetModeInternal(source, cm, "", false); @@ -671,7 +672,7 @@ void Channel::SetModesInternal(MessageSource &source, const Anope::string &mode, this->RemoveModeInternal(source, cm, token, enforce_mlock); } else - Log() << "warning: Channel::SetModesInternal() recieved more modes requiring params than params, modes: " << mode; + Log() << "warning: Channel::SetModesInternal() received more modes requiring params than params, modes: " << mode; } if (!this_reference) @@ -726,7 +727,7 @@ bool Channel::KickInternal(const MessageSource &source, const Anope::string &nic if (sender) Log(sender, this, "kick") << "kicked " << target->nick << " (" << reason << ")"; else - Log(target, this, "kick") << "was kicked by " << source.GetSource() << " (" << reason << ")"; + Log(target, this, "kick") << "was kicked by " << source.GetName() << " (" << reason << ")"; Anope::string chname = this->name; @@ -737,7 +738,6 @@ bool Channel::KickInternal(const MessageSource &source, const Anope::string &nic return false; } - Anope::string this_name = this->name; ChannelStatus status = cu->status; EventReturn MOD_RESULT = Event::OnPreUserKicked(&Event::PreUserKicked::OnPreUserKicked, source, cu, reason); @@ -745,8 +745,8 @@ bool Channel::KickInternal(const MessageSource &source, const Anope::string &nic if (MOD_RESULT == EVENT_STOP) return false; - this->DeleteUser(target); /* This can delete this; */ - Event::OnUserKicked(&Event::UserKicked::OnUserKicked, source, target, this_name, status, reason); + this->DeleteUser(target); + Event::OnUserKicked(&Event::UserKicked::OnUserKicked, source, target, this->name, status, reason); return true; } @@ -771,26 +771,22 @@ bool Channel::Kick(User *source, User *u, const char *reason, ...) return true; } -void Channel::ChangeTopicInternal(const Anope::string &user, const Anope::string &newtopic, time_t ts) +void Channel::ChangeTopicInternal(User *u, const Anope::string &user, const Anope::string &newtopic, time_t ts) { - User *u = User::Find(user); - this->topic = newtopic; this->topic_setter = u ? u->nick : user; this->topic_ts = ts; this->topic_time = Anope::CurTime; - Log(LOG_DEBUG) << "Topic of " << this->name << " changed by " << (u ? u->nick : user) << " to " << newtopic; + Log(LOG_DEBUG) << "Topic of " << this->name << " changed by " << this->topic_setter << " to " << newtopic; - Event::OnTopicUpdated(&Event::TopicUpdated::OnTopicUpdated, this, user, this->topic); + Event::OnTopicUpdated(&Event::TopicUpdated::OnTopicUpdated, u, this, user, this->topic); } void Channel::ChangeTopic(const Anope::string &user, const Anope::string &newtopic, time_t ts) { - User *u = User::Find(user); - this->topic = newtopic; - this->topic_setter = u ? u->nick : user; + this->topic_setter = user; this->topic_ts = ts; IRCD->SendTopic(this->ci->WhoSends(), this); @@ -798,7 +794,7 @@ void Channel::ChangeTopic(const Anope::string &user, const Anope::string &newtop /* Now that the topic is set update the time set. This is *after* we set it so the protocol modules are able to tell the old last set time */ this->topic_time = Anope::CurTime; - Event::OnTopicUpdated(&Event::TopicUpdated::OnTopicUpdated, this, user, this->topic); + Event::OnTopicUpdated(&Event::TopicUpdated::OnTopicUpdated, nullptr, this, user, this->topic); } void Channel::SetCorrectModes(User *user, bool give_modes) @@ -842,7 +838,8 @@ void Channel::SetCorrectModes(User *user, bool give_modes) given = true; } } - else if (take_modes && !has_priv && !u_access.HasPriv(cm->name + "ME")) + /* modes that have no privileges assigned shouldn't be removed (like operprefix, ojoin) */ + else if (take_modes && !has_priv && ci->GetLevel(cm->name + "ME") != ChanServ::ACCESS_INVALID && !u_access.HasPriv(cm->name + "ME")) { /* Only remove modes if they are > voice */ if (cm->name == "VOICE") @@ -922,3 +919,15 @@ Channel *Channel::FindOrCreate(const Anope::string &name, bool &created, time_t return chan; } +void Channel::DeleteChannels() +{ + for (unsigned int i = 0; i < deleting.size(); ++i) + { + Channel *c = deleting[i]; + + if (c->CheckDelete()) + delete c; + } + deleting.clear(); +} + diff --git a/src/config.cpp b/src/config.cpp index 47a9d8580..2fe8dd74f 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -219,6 +219,7 @@ Conf::Conf() : Block("") } this->DefLanguage = options->Get<Anope::string>("defaultlanguage"); this->TimeoutCheck = options->Get<time_t>("timeoutcheck"); + this->NickChars = networkinfo->Get<Anope::string>("nick_chars"); for (int i = 0; i < this->CountBlock("uplink"); ++i) { diff --git a/src/extensible.cpp b/src/extensible.cpp index e0e35e6ea..c3c56abf8 100644 --- a/src/extensible.cpp +++ b/src/extensible.cpp @@ -24,8 +24,6 @@ ExtensibleBase::~ExtensibleBase() Extensible::~Extensible() { - while (!extension_items.empty()) - extension_items[0]->Unset(this); } bool Extensible::HasExtOK(const Anope::string &name) diff --git a/src/init.cpp b/src/init.cpp index d649a2f6e..124181d2b 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1,4 +1,4 @@ -/* Initalization and related routines. +/* Initialization and related routines. * * (C) 2003-2014 Anope Team * Contact us at team@anope.org diff --git a/src/language.cpp b/src/language.cpp index d73074df4..cfc531a81 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -89,7 +89,7 @@ const char *Language::Translate(const char *lang, const char *string) SetThreadLocale(MAKELCID(MAKELANGID(WindowsGetLanguage(lang), SUBLANG_DEFAULT), SORT_DEFAULT)); #else /* First, set LANG and LANGUAGE env variables. - * Some systems (Debian) don't care about this, so we must setlocale LC_ALL aswell. + * Some systems (Debian) don't care about this, so we must setlocale LC_ALL as well. * BUT if this call fails because the LANGUAGE env variable is set, setlocale resets * the locale to "C", which short circuits gettext and causes it to fail on systems that * use the LANGUAGE env variable. We must reset the locale to en_US (or, anything not diff --git a/src/messages.cpp b/src/messages.cpp index 6a9945336..a6ccbe324 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -27,7 +27,14 @@ using namespace Message; void Away::Run(MessageSource &source, const std::vector<Anope::string> ¶ms) { - Event::OnUserAway(&Event::UserAway::OnUserAway, source.GetUser(), params.empty() ? "" : params[0]); + const Anope::string &msg = !params.empty() ? params[0] : ""; + + Event::OnUserAway(&Event::UserAway::OnUserAway, source.GetUser(), msg); + + if (!msg.empty()) + Log(source.GetUser(), "away") << "is now away: " << msg; + else + Log(source.GetUser(), "away") << "is no longer away"; } void Capab::Run(MessageSource &source, const std::vector<Anope::string> ¶ms) @@ -78,12 +85,12 @@ void Join::Run(MessageSource &source, const std::vector<Anope::string> ¶ms) for (User::ChanUserList::iterator it = user->chans.begin(), it_end = user->chans.end(); it != it_end; ) { ChanUserContainer *cc = it->second; + Channel *c = cc->chan; ++it; - Anope::string channame = cc->chan->name; - Event::OnPrePartChannel(&Event::PrePartChannel::OnPrePartChannel, user, cc->chan); + Event::OnPrePartChannel(&Event::PrePartChannel::OnPrePartChannel, user, c); cc->chan->DeleteUser(user); - Event::OnPartChannel(&Event::PartChannel::OnPartChannel, user, Channel::Find(channame), channame, ""); + Event::OnPartChannel(&Event::PartChannel::OnPartChannel, user, c, c->name, ""); } continue; } @@ -280,16 +287,16 @@ void Part::Run(MessageSource &source, const std::vector<Anope::string> ¶ms) while (sep.GetToken(channel)) { - Reference<Channel> c = Channel::Find(channel); + Channel *c = Channel::Find(channel); if (!c || !u->FindChannel(c)) continue; Log(u, c, "part") << "Reason: " << (!reason.empty() ? reason : "No reason"); + Event::OnPrePartChannel(&Event::PrePartChannel::OnPrePartChannel, u, c); - Anope::string ChannelName = c->name; c->DeleteUser(u); - Event::OnPartChannel(&Event::PartChannel::OnPartChannel, u, c, ChannelName, !reason.empty() ? reason : ""); + Event::OnPartChannel(&Event::PartChannel::OnPartChannel, u, c, c->name, !reason.empty() ? reason : ""); } } @@ -462,7 +469,7 @@ void Topic::Run(MessageSource &source, const std::vector<Anope::string> ¶ms) { Channel *c = Channel::Find(params[0]); if (c) - c->ChangeTopicInternal(source.GetSource(), params[1], Anope::CurTime); + c->ChangeTopicInternal(source.GetUser(), source.GetSource(), params[1], Anope::CurTime); return; } diff --git a/src/misc.cpp b/src/misc.cpp index 27be43a96..436ac2261 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -11,7 +11,7 @@ */ #include "services.h" -#include "version.h" +#include "build.h" #include "modules.h" #include "lists.h" #include "config.h" @@ -587,11 +587,6 @@ const Anope::string Anope::LastError() #endif } -ModuleVersion Module::GetVersion() const -{ - return ModuleVersion(VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); -} - Anope::string Anope::Version() { #ifdef VERSION_GIT diff --git a/src/modes.cpp b/src/modes.cpp index 2ea11d3a3..b2c76bdff 100644 --- a/src/modes.cpp +++ b/src/modes.cpp @@ -223,7 +223,7 @@ ChannelModeVirtual<T>::~ChannelModeVirtual() } template<typename T> -ChannelMode *ChannelModeVirtual<T>::Wrap(Anope::string ¶m) +void ChannelModeVirtual<T>::Check() { if (basech == NULL) { @@ -231,7 +231,11 @@ ChannelMode *ChannelModeVirtual<T>::Wrap(Anope::string ¶m) if (basech) basech->listeners.push_back(this); } +} +template<typename T> +ChannelMode *ChannelModeVirtual<T>::Wrap(Anope::string ¶m) +{ return basech; } @@ -268,7 +272,7 @@ void StackerInfo::AddMode(Mode *mode, bool set, const Anope::string ¶m) break; } } - /* If the mode is on the other list, remove it from there (eg, we dont want +o-o Adam Adam) */ + /* If the mode is on the other list, remove it from there (eg, we don't want +o-o Adam Adam) */ for (it = otherlist->begin(), it_end = otherlist->end(); it != it_end; ++it) { /* The param must match too (can have multiple status or list modes), but @@ -298,7 +302,7 @@ static class ModePipe : public Pipe } } *modePipe; -/** Get the stacker info for an item, if one doesnt exist it is created +/** Get the stacker info for an item, if one doesn't exist it is created * @param Item The user/channel etc * @return The stacker info */ @@ -424,6 +428,9 @@ bool ModeManager::AddChannelMode(ChannelMode *cm) Event::OnChannelModeAdd(&Event::ChannelModeAdd::OnChannelModeAdd, cm); + for (unsigned int i = 0; i < ChannelModes.size(); ++i) + ChannelModes[i]->Check(); + return true; } diff --git a/src/module.cpp b/src/module.cpp index 1b19c976c..283445ece 100644 --- a/src/module.cpp +++ b/src/module.cpp @@ -97,8 +97,11 @@ void Module::SetAuthor(const Anope::string &nauthor) this->author = nauthor; } -ModuleVersion::ModuleVersion(int maj, int min, int pa) : version_major(maj), version_minor(min), version_patch(pa) +ModuleVersion::ModuleVersion(const ModuleVersionC &ver) { + version_major = ver.version_major; + version_minor = ver.version_minor; + version_patch = ver.version_patch; } int ModuleVersion::GetMajor() const diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 9e70ab088..76cec0b57 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -162,7 +162,7 @@ ModuleReturn ModuleManager::LoadModule(const Anope::string &modname, User *u) dlerror(); AnopeModule *module = static_cast<AnopeModule *>(dlsym(handle, "AnopeMod")); err = dlerror(); - if (!module || !module->init || !module->fini) + if (!module || module->api_version != ANOPE_MODAPI_VER) { Log() << "No module symbols function found, not an Anope module"; if (err && *err) @@ -171,6 +171,46 @@ ModuleReturn ModuleManager::LoadModule(const Anope::string &modname, User *u) return MOD_ERR_NOLOAD; } + try + { + ModuleVersion v = module->version(); + + if (v.GetMajor() < Anope::VersionMajor() || (v.GetMajor() == Anope::VersionMajor() && v.GetMinor() < Anope::VersionMinor())) + { + Log() << "Module " << modname << " is compiled against an older version of Anope " << v.GetMajor() << "." << v.GetMinor() << ", this is " << Anope::VersionShort(); + dlclose(handle); + return MOD_ERR_VERSION; + } + else if (v.GetMajor() > Anope::VersionMajor() || (v.GetMajor() == Anope::VersionMajor() && v.GetMinor() > Anope::VersionMinor())) + { + Log() << "Module " << modname << " is compiled against a newer version of Anope " << v.GetMajor() << "." << v.GetMinor() << ", this is " << Anope::VersionShort(); + dlclose(handle); + return MOD_ERR_VERSION; + } + else if (v.GetPatch() < Anope::VersionPatch()) + { + Log() << "Module " << modname << " is compiled against an older version of Anope, " << v.GetMajor() << "." << v.GetMinor() << "." << v.GetPatch() << ", this is " << Anope::VersionShort(); + dlclose(handle); + return MOD_ERR_VERSION; + } + else if (v.GetPatch() > Anope::VersionPatch()) + { + Log() << "Module " << modname << " is compiled against a newer version of Anope, " << v.GetMajor() << "." << v.GetMinor() << "." << v.GetPatch() << ", this is " << Anope::VersionShort(); + dlclose(handle); + return MOD_ERR_VERSION; + } + else + { + Log(LOG_DEBUG_2) << "Module " << modname << " is compiled against current version of Anope " << Anope::VersionShort(); + } + } + catch (const ModuleException &ex) + { + /* this error has already been logged */ + dlclose(handle); + return MOD_ERR_NOLOAD; + } + ModuleDef *def = module->init(); /* Create module. */ @@ -203,34 +243,6 @@ ModuleReturn ModuleManager::LoadModule(const Anope::string &modname, User *u) m->def = def; m->module = module; - ModuleVersion v = m->GetVersion(); - if (v.GetMajor() < Anope::VersionMajor() || (v.GetMajor() == Anope::VersionMajor() && v.GetMinor() < Anope::VersionMinor())) - { - Log() << "Module " << modname << " is compiled against an older version of Anope " << v.GetMajor() << "." << v.GetMinor() << ", this is " << Anope::VersionShort(); - DeleteModule(m); - return MOD_ERR_VERSION; - } - else if (v.GetMajor() > Anope::VersionMajor() || (v.GetMajor() == Anope::VersionMajor() && v.GetMinor() > Anope::VersionMinor())) - { - Log() << "Module " << modname << " is compiled against a newer version of Anope " << v.GetMajor() << "." << v.GetMinor() << ", this is " << Anope::VersionShort(); - DeleteModule(m); - return MOD_ERR_VERSION; - } - else if (v.GetPatch() < Anope::VersionPatch()) - { - Log() << "Module " << modname << " is compiled against an older version of Anope, " << v.GetMajor() << "." << v.GetMinor() << "." << v.GetPatch() << ", this is " << Anope::VersionShort(); - DeleteModule(m); - return MOD_ERR_VERSION; - } - else if (v.GetPatch() > Anope::VersionPatch()) - { - Log() << "Module " << modname << " is compiled against a newer version of Anope, " << v.GetMajor() << "." << v.GetMinor() << "." << v.GetPatch() << ", this is " << Anope::VersionShort(); - DeleteModule(m); - return MOD_ERR_VERSION; - } - else - Log(LOG_DEBUG_2) << "Module " << modname << " is compiled against current version of Anope " << Anope::VersionShort(); - /* Initialize config */ try { diff --git a/src/protocol.cpp b/src/protocol.cpp index f71b3f8b5..75a32c8a7 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -365,8 +365,10 @@ bool IRCDProto::IsNickValid(const Anope::string &nick) Anope::string special = "[]\\`_^{|}"; for (unsigned i = 0; i < nick.length(); ++i) - if (!(nick[i] >= 'A' && nick[i] <= 'Z') && !(nick[i] >= 'a' && nick[i] <= 'z') && special.find(nick[i]) == Anope::string::npos - && (!i || (!(nick[i] >= '0' && nick[i] <= '9') && nick[i] != '-'))) + if (!(nick[i] >= 'A' && nick[i] <= 'Z') && !(nick[i] >= 'a' && nick[i] <= 'z') + && special.find(nick[i]) == Anope::string::npos + && (Config && Config->NickChars.find(nick[i]) == Anope::string::npos) + && (!i || (!(nick[i] >= '0' && nick[i] <= '9') && nick[i] != '-'))) return false; return true; diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index 394d2fc51..ec3f40d07 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -43,5 +43,5 @@ endif(NOT WIN32) # On non-Windows platforms, if RUNGROUP is set, change the permissions of the tools directory if(NOT WIN32 AND RUNGROUP) - install(CODE "execute_process(COMMAND ${CHMOD} 2770 \"\${CMAKE_INSTALL_PREFIX}/bin\")") + install(CODE "execute_process(COMMAND ${CHMOD} 2770 \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin\")") endif(NOT WIN32 AND RUNGROUP) diff --git a/src/tools/geoipupdate.sh b/src/tools/geoipupdate.sh index 0b02dae36..641ac3259 100644 --- a/src/tools/geoipupdate.sh +++ b/src/tools/geoipupdate.sh @@ -5,7 +5,7 @@ # them into existing mysql tables. The tables are created # by the irc2sql module on the first load. -# Dont forget to rename this file or your changes +# Don't forget to rename this file or your changes # will be overwritte on the next 'make install' ############################ diff --git a/src/uplink.cpp b/src/uplink.cpp index 214de53be..de5232152 100644 --- a/src/uplink.cpp +++ b/src/uplink.cpp @@ -140,6 +140,7 @@ bool UplinkSocket::ProcessRead() { Anope::Process(buf); User::QuitUsers(); + Channel::DeleteChannels(); } return b; } diff --git a/src/version.sh b/src/version.sh index d9033df0f..db1881df3 100644 --- a/src/version.sh +++ b/src/version.sh @@ -1,7 +1,7 @@ #!/bin/sh -VERSION_MAJOR="2" -VERSION_MINOR="1" -VERSION_PATCH="0" +VERSION_MAJOR=2 +VERSION_MINOR=1 +VERSION_PATCH=0 VERSION_EXTRA="-exploding-tacos" diff --git a/src/win32/Config.cs b/src/win32/Config.cs index 8fbf31a65..ea94e338a 100644 --- a/src/win32/Config.cs +++ b/src/win32/Config.cs @@ -257,7 +257,7 @@ namespace Config if (!string.IsNullOrWhiteSpace(CacheResponse) && string.IsNullOrWhiteSpace(InstallerResponse))
InstallerResponse = CacheResponse;
- // Question 4-6 are optional
+ // Question 4+ are optional
if (i < 3 && string.IsNullOrWhiteSpace(InstallerResponse))
{
Console.WriteLine("Invalid option");
diff --git a/src/win32/socket.cpp b/src/win32/socket.cpp index 320e46f48..7f6ef4df1 100644 --- a/src/win32/socket.cpp +++ b/src/win32/socket.cpp @@ -51,7 +51,7 @@ int windows_accept(int fd, struct sockaddr *addr, int *addrlen) * @param af The protocol type, AF_INET or AF_INET6 * @param src The address * @param dst Struct to put results in - * @return 1 on sucess, -1 on error + * @return 1 on success, -1 on error */ int windows_inet_pton(int af, const char *src, void *dst) { diff --git a/src/win32/windows.cpp b/src/win32/windows.cpp index a70ff53c3..f5bbde2f8 100644 --- a/src/win32/windows.cpp +++ b/src/win32/windows.cpp @@ -194,7 +194,7 @@ Anope::string GetWindowsVersion() buf = "Microsoft Windows 98" + extra; } if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) - buf = "Microsoft Windows Millenium Edition"; + buf = "Microsoft Windows Millennium Edition"; } return buf; } |