From 37bd2c238eed91444a6812c6592c4e4ced3773a9 Mon Sep 17 00:00:00 2001 From: miwob Date: Thu, 19 Jun 2014 16:27:05 +0200 Subject: hybrid.cpp: add our own SendInvite() which sends the channel's timestamp along the INVITE command. INVITE with channel TS will be mandatory in some future release of ircd-hybrid --- modules/protocol/hybrid.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/protocol/hybrid.cpp b/modules/protocol/hybrid.cpp index 7c2c14098..52c442dc3 100644 --- a/modules/protocol/hybrid.cpp +++ b/modules/protocol/hybrid.cpp @@ -51,6 +51,11 @@ class HybridProto : public IRCDProto MaxModes = 4; } + void SendInvite(const MessageSource &source, const Channel *c, User *u) anope_override + { + UplinkSocket::Message(source) << "INVITE " << u->GetUID() << " " << c->name << " " << c->creation_time; + } + void SendGlobalNotice(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override { UplinkSocket::Message(bi) << "NOTICE $$" << dest->GetName() << " :" << msg; -- cgit From 8fecad3039626feb3200a133355b754b7751a35b Mon Sep 17 00:00:00 2001 From: Zantox Date: Mon, 23 Jun 2014 07:47:26 -0400 Subject: Updated BotServ Command English Language --- modules/commands/bs_assign.cpp | 8 ++++---- modules/commands/bs_badwords.cpp | 4 ++-- modules/commands/bs_bot.cpp | 8 ++++---- modules/commands/bs_control.cpp | 6 +++--- modules/commands/bs_set.cpp | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/commands/bs_assign.cpp b/modules/commands/bs_assign.cpp index 82572d0eb..99eff4b2f 100644 --- a/modules/commands/bs_assign.cpp +++ b/modules/commands/bs_assign.cpp @@ -75,7 +75,7 @@ class CommandBSAssign : public Command { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Assigns a bot pointed out by nick to a channel. You\n" + source.Reply(_("Assigns the specified bot to a channel. You\n" "can then configure the bot for the channel so it fits\n" "your needs.")); return true; @@ -121,7 +121,7 @@ class CommandBSUnassign : public Command if (ci->HasExt("PERSIST") && !ModeManager::FindChannelModeByName("PERM")) { - source.Reply(_("You can not unassign bots while persist is set on the channel.")); + source.Reply(_("You cannot unassign bots while persist is set on the channel.")); return; } @@ -195,9 +195,9 @@ class CommandBSSetNoBot : public Command { this->SendSyntax(source); source.Reply(_(" \n" - "This option makes a channel be unassignable. If a bot\n" + "This option makes a channel unassignable. If a bot\n" "is already assigned to the channel, it is unassigned\n" - "automatically when you enable the option.")); + "automatically when you enable it.")); return true; } }; diff --git a/modules/commands/bs_badwords.cpp b/modules/commands/bs_badwords.cpp index c4155bbc1..6deaa8924 100644 --- a/modules/commands/bs_badwords.cpp +++ b/modules/commands/bs_badwords.cpp @@ -400,7 +400,7 @@ class CommandBSBadwords : public Command if (Anope::ReadOnly) { - source.Reply(_("Sorry, channel bad words list modification is temporarily disabled.")); + source.Reply(_("Sorry, bad words list modification is temporarily disabled.")); return; } @@ -446,7 +446,7 @@ class CommandBSBadwords : public Command " Lists bad words entries numbered 2 through 5 and\n" " 7 through 9.\n" " \n" - "The \002CLEAR\002 command clears all entries of the\n" + "The \002CLEAR\002 command clears all entries from the\n" "bad words list.")); return true; } diff --git a/modules/commands/bs_bot.cpp b/modules/commands/bs_bot.cpp index 69fa7f8fe..d066a49a8 100644 --- a/modules/commands/bs_bot.cpp +++ b/modules/commands/bs_bot.cpp @@ -139,7 +139,7 @@ class CommandBSBot : public Command */ if (nick.equals_cs(bi->nick) && (!user.empty() ? user.equals_cs(bi->GetIdent()) : 1) && (!host.empty() ? host.equals_cs(bi->host) : 1) && (!real.empty() ? real.equals_cs(bi->realname) : 1)) { - source.Reply(_("Old info is equal to the new one.")); + source.Reply(_("The old information is the same as the new information specified.")); return; } @@ -341,13 +341,13 @@ class CommandBSBot : public Command "hostname and realname. Since no integrity checks are done\n" "for these settings, be really careful.\n" " \n" - "\002BOT CHANGE\002 allows to change the nickname, username, hostname\n" - "or realname of a bot without actually having to delete it (and\n" + "\002BOT CHANGE\002 allows you to change the nickname, username, hostname\n" + "or realname of a bot without deleting it (and\n" "all the data associated with it).\n" " \n" "\002BOT DEL\002 removes the given bot from the bot list.\n" " \n" - "\002Note\002: you cannot create a bot that has a nick that is\n" + "\002Note\002: You cannot create a bot with a nick that is\n" "currently registered. If an unregistered user is currently\n" "using the nick, they will be killed.")); return true; diff --git a/modules/commands/bs_control.cpp b/modules/commands/bs_control.cpp index 0307c6abf..5111a9551 100644 --- a/modules/commands/bs_control.cpp +++ b/modules/commands/bs_control.cpp @@ -16,7 +16,7 @@ class CommandBSSay : public Command public: CommandBSSay(Module *creator) : Command(creator, "botserv/say", 2, 2) { - this->SetDesc(_("Makes the bot say the given text on the given channel")); + this->SetDesc(_("Makes the bot say the specified text on the specified channel")); this->SetSyntax(_("\037channel\037 \037text\037")); } @@ -66,7 +66,7 @@ class CommandBSSay : public Command { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Makes the bot say the given text on the given channel.")); + source.Reply(_("Makes the bot say the specified text on the specified channel.")); return true; } }; @@ -125,7 +125,7 @@ class CommandBSAct : public Command this->SendSyntax(source); source.Reply(" "); source.Reply(_("Makes the bot do the equivalent of a \"/me\" command\n" - "on the given channel using the given text.")); + "on the specified channel using the specified text.")); return true; } }; diff --git a/modules/commands/bs_set.cpp b/modules/commands/bs_set.cpp index 2d08d9ec6..819ac42b3 100644 --- a/modules/commands/bs_set.cpp +++ b/modules/commands/bs_set.cpp @@ -100,7 +100,7 @@ class CommandBSSetBanExpire : public Command if (Anope::ReadOnly) { - source.Reply(_("Sorry, bot option setting is temporarily disabled.")); + source.Reply(_("Sorry, changing bot options is temporarily disabled.")); return; } -- cgit From ff93355af851541e21218811eb46190a3eb070a3 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 23 Jun 2014 15:44:06 -0400 Subject: Hold a reference to the type in Serialize::Checker in the event it goes away, and invalidate the type pointer of objects when the type goes away --- include/serialize.h | 6 +++--- src/serialize.cpp | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/serialize.h b/include/serialize.h index 496110fda..f83c9bfd3 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -60,9 +60,9 @@ class CoreExport Serializable : public virtual Base * constructed before other objects are if it isn't. */ static std::list *SerializableItems; + friend class Serialize::Type; /* The type of item this object is */ Serialize::Type *s_type; - private: /* Iterator into serializable_items */ std::list::iterator s_iter; /* The hash of the last serialized form of this object commited to the database */ @@ -109,7 +109,7 @@ class CoreExport Serializable : public virtual Base * of class that inherits from Serialiable. Used for unserializing objects * of this type, as it requires a function pointer to a static member function. */ -class CoreExport Serialize::Type +class CoreExport Serialize::Type : public Base { typedef Serializable* (*unserialize_func)(Serializable *obj, Serialize::Data &); @@ -188,7 +188,7 @@ class Serialize::Checker { Anope::string name; T obj; - mutable Serialize::Type *type; + mutable ::Reference type; inline void Check() const { diff --git a/src/serialize.cpp b/src/serialize.cpp index 521704df4..570463dc3 100644 --- a/src/serialize.cpp +++ b/src/serialize.cpp @@ -124,6 +124,15 @@ Type::Type(const Anope::string &n, unserialize_func f, Module *o) : name(n), un Type::~Type() { + /* null the type of existing serializable objects of this type */ + for (std::list::iterator it = Serializable::SerializableItems->begin(); it != Serializable::SerializableItems->end(); ++it) + { + Serializable *s = *it; + + if (s->s_type == this) + s->s_type = NULL; + } + std::vector::iterator it = std::find(TypeOrder.begin(), TypeOrder.end(), this->name); if (it != TypeOrder.end()) TypeOrder.erase(it); -- cgit From 3bea089793ff80b756a63e7cca05947787dd0881 Mon Sep 17 00:00:00 2001 From: Zantox Date: Wed, 25 Jun 2014 02:09:43 -0400 Subject: Updated ChanServ Command English Language --- modules/commands/cs_drop.cpp | 4 ++-- modules/commands/cs_entrymsg.cpp | 12 ++++++------ modules/commands/cs_flags.cpp | 10 +++++----- modules/commands/cs_info.cpp | 4 ++-- modules/commands/cs_invite.cpp | 2 +- modules/commands/cs_kick.cpp | 2 +- modules/commands/cs_seen.cpp | 2 +- modules/commands/cs_unban.cpp | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/modules/commands/cs_drop.cpp b/modules/commands/cs_drop.cpp index 401573ea2..93ce548cc 100644 --- a/modules/commands/cs_drop.cpp +++ b/modules/commands/cs_drop.cpp @@ -71,8 +71,8 @@ class CommandCSDrop : public Command this->SendSyntax(source); source.Reply(" "); if (source.IsServicesOper()) - source.Reply(_("Unregisters the named channel. Only \002Services Operators\002\n" - "can drop a channel of which they are not the founder.")); + source.Reply(_("Unregisters the specified channel. Only \002Services Operators\002\n" + "can drop a channel of which they are not the founder of.")); else source.Reply(_("Unregisters the named channel. Can only be used by\n" "the \002channel founder\002.")); diff --git a/modules/commands/cs_entrymsg.cpp b/modules/commands/cs_entrymsg.cpp index 4eec3e07d..da14456a5 100644 --- a/modules/commands/cs_entrymsg.cpp +++ b/modules/commands/cs_entrymsg.cpp @@ -239,19 +239,19 @@ class CommandEntryMessage : public Command source.Reply(_("Controls what messages will be sent to users when they join the channel.")); source.Reply(" "); source.Reply(_("The \002ENTRYMSG ADD\002 command adds the given message to\n" - "the list of messages to be shown to users when they join\n" + "the list of messages shown to users when they join\n" "the channel.")); source.Reply(" "); - source.Reply(_("The \002ENTRYMSG DEL\002 command removes the given message from\n" - "the list of messages to be shown to users when they join\n" - "the channel. You can remove the message by specifying its number\n" + source.Reply(_("The \002ENTRYMSG DEL\002 command removes the specified message from\n" + "the list of messages shown to users when they join\n" + "the channel. You can a message by specifying its number\n" "which you can get by listing the messages as explained below.")); source.Reply(" "); source.Reply(_("The \002ENTRYMSG LIST\002 command displays a listing of messages\n" - "to be shown to users when they join the channel.")); + "shown to users when they join the channel.")); source.Reply(" "); source.Reply(_("The \002ENTRYMSG CLEAR\002 command clears all entries from\n" - "the list of messages to be shown to users when they join\n" + "the list of messages shown to users when they join\n" "the channel, effectively disabling entry messages.")); return true; } diff --git a/modules/commands/cs_flags.cpp b/modules/commands/cs_flags.cpp index e3f3da978..e3613377f 100644 --- a/modules/commands/cs_flags.cpp +++ b/modules/commands/cs_flags.cpp @@ -227,7 +227,7 @@ class CommandCSFlags : public Command override = true; else { - source.Reply(_("You can not set the \002%c\002 flag."), f); + source.Reply(_("You cannot set the \002%c\002 flag."), f); break; } } @@ -417,19 +417,19 @@ class CommandCSFlags : public Command source.Reply(_("%s is another way to modify the channel access list, similar to\n" "the XOP and ACCESS methods."), source.command.c_str()); source.Reply(" "); - source.Reply(_("The \002MODIFY\002 command allows you to modify the access list. If mask is\n" - "not already on the access list is it added, then the changes are applied.\n" + source.Reply(_("The \002MODIFY\002 command allows you to modify the access list. If the mask is\n" + "not already on the access list it is added, then the changes are applied.\n" "If the mask has no more flags, then the mask is removed from the access list.\n" "Additionally, you may use +* or -* to add or remove all flags, respectively. You are\n" "only able to modify the access list if you have the proper permission on the channel,\n" - "and even then you can only give other people access to up what you already have.")); + "and even then you can only give other people access to the equivalent of what your access is.")); source.Reply(" "); source.Reply(_("The \002LIST\002 command allows you to list existing entries on the channel access list.\n" "If a mask is given, the mask is wildcard matched against all existing entries on the\n" "access list, and only those entries are returned. If a set of flags is given, only those\n" "on the access list with the specified flags are returned.")); source.Reply(" "); - source.Reply(_("The \002CLEAR\002 command clears the channel access list, which requires channel founder.")); + source.Reply(_("The \002CLEAR\002 command clears the channel access list. This requires channel founder access.")); source.Reply(" "); source.Reply(_("The available flags are:")); diff --git a/modules/commands/cs_info.cpp b/modules/commands/cs_info.cpp index af12aba78..c92f6415d 100644 --- a/modules/commands/cs_info.cpp +++ b/modules/commands/cs_info.cpp @@ -16,7 +16,7 @@ class CommandCSInfo : public Command public: CommandCSInfo(Module *creator) : Command(creator, "chanserv/info", 1, 2) { - this->SetDesc(_("Lists information about the named registered channel")); + this->SetDesc(_("Lists information about the specified registered channel")); this->SetSyntax(_("\037channel\037")); this->AllowUnregistered(true); } @@ -73,7 +73,7 @@ class CommandCSInfo : public Command { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Lists information about the named registered channel,\n" + source.Reply(_("Lists information about the specified registered channel,\n" "including its founder, time of registration, and last\n" "time used. If the user issuing the command has the\n" "appropriate access for it, then the description, successor,\n" diff --git a/modules/commands/cs_invite.cpp b/modules/commands/cs_invite.cpp index 1f39eaf7b..e264a54f1 100644 --- a/modules/commands/cs_invite.cpp +++ b/modules/commands/cs_invite.cpp @@ -91,7 +91,7 @@ class CommandCSInvite : public Command source.Reply(_("Tells %s to invite you or an optionally specified\n" "nick into the given channel.\n" " \n" - "By default, limited to AOPs or those with level 5 and above\n" + "By default, limited to AOPs or those with level 5 access and above\n" "on the channel."), source.service->nick.c_str()); return true; } diff --git a/modules/commands/cs_kick.cpp b/modules/commands/cs_kick.cpp index dded149eb..c95445557 100644 --- a/modules/commands/cs_kick.cpp +++ b/modules/commands/cs_kick.cpp @@ -115,7 +115,7 @@ class CommandCSKick : public Command source.Reply(_("Kicks a specified nick from a channel.\n" " \n" "By default, limited to AOPs or those with level 5 access\n" - "and above on the channel. Channel founders may use masks too.")); + "and above on the channel. Channel founders can also specify masks.")); return true; } }; diff --git a/modules/commands/cs_seen.cpp b/modules/commands/cs_seen.cpp index 923edb361..7cbc23f43 100644 --- a/modules/commands/cs_seen.cpp +++ b/modules/commands/cs_seen.cpp @@ -172,7 +172,7 @@ class CommandOSSeen : public Command source.Reply(" "); source.Reply(_("The \002STATS\002 command prints out statistics about stored nicks and memory usage.")); source.Reply(_("The \002CLEAR\002 command lets you clean the database by removing all entries from the\n" - "entries from the database that were added within \037time\037.\n" + "database that were added within \037time\037.\n" " \n" "Example:\n" " %s CLEAR 30m\n" diff --git a/modules/commands/cs_unban.cpp b/modules/commands/cs_unban.cpp index 9fd6400a8..de727f8e7 100644 --- a/modules/commands/cs_unban.cpp +++ b/modules/commands/cs_unban.cpp @@ -106,7 +106,7 @@ class CommandCSUnban : public Command "in are removed.\n" " \n" "By default, limited to AOPs or those with level 5 and above\n" - "on the channel."), source.service->nick.c_str()); + "access on the channel."), source.service->nick.c_str()); return true; } }; -- cgit From 74dbfe06998a21c2375d064e9a56a1ec06b824e5 Mon Sep 17 00:00:00 2001 From: Zantox Date: Wed, 25 Jun 2014 02:16:09 -0400 Subject: Updated HostServ Command English Language --- modules/commands/hs_del.cpp | 2 +- modules/commands/hs_list.cpp | 2 +- modules/commands/hs_request.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/commands/hs_del.cpp b/modules/commands/hs_del.cpp index 76951de46..c27dc89d0 100644 --- a/modules/commands/hs_del.cpp +++ b/modules/commands/hs_del.cpp @@ -56,7 +56,7 @@ class CommandHSDelAll : public Command public: CommandHSDelAll(Module *creator) : Command(creator, "hostserv/delall", 1, 1) { - this->SetDesc(_("Delete the vhost for all nicks in a group")); + this->SetDesc(_("Deletes the vhost for all nicks in a group")); this->SetSyntax(_("\037nick\037")); } diff --git a/modules/commands/hs_list.cpp b/modules/commands/hs_list.cpp index e372860e2..dfeb23bd2 100644 --- a/modules/commands/hs_list.cpp +++ b/modules/commands/hs_list.cpp @@ -134,7 +134,7 @@ class CommandHSList : public Command this->SendSyntax(source); source.Reply(" "); source.Reply(_("This command lists registered vhosts to the operator\n" - "if a \037key\037 is specified, only entries whos nick or vhost match\n" + "If a \037key\037 is specified, only entries whose nick or vhost match\n" "the pattern given in \037key\037 are displayed e.g. Rob* for all\n" "entries beginning with \"Rob\"\n" "If a \037#X-Y\037 style is used, only entries between the range of \002X\002\n" diff --git a/modules/commands/hs_request.cpp b/modules/commands/hs_request.cpp index cd1a85c0a..498b51afb 100644 --- a/modules/commands/hs_request.cpp +++ b/modules/commands/hs_request.cpp @@ -171,7 +171,7 @@ class CommandHSRequest : public Command { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("Request the given vHost to be actived for your nick by the\n" + source.Reply(_("Request the given vHost to be activated for your nick by the\n" "network administrators. Please be patient while your request\n" "is being considered.")); return true; -- cgit From f753a925ade9f3b3053b206e5cf5462d2be53b64 Mon Sep 17 00:00:00 2001 From: Zantox Date: Thu, 26 Jun 2014 15:10:01 -0400 Subject: Minor cs_unban Lang Update @Robby- --- modules/commands/cs_unban.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/commands/cs_unban.cpp b/modules/commands/cs_unban.cpp index de727f8e7..bbc08d3ac 100644 --- a/modules/commands/cs_unban.cpp +++ b/modules/commands/cs_unban.cpp @@ -105,8 +105,8 @@ class CommandCSUnban : public Command "given, all bans affecting you in channels you have access\n" "in are removed.\n" " \n" - "By default, limited to AOPs or those with level 5 and above\n" - "access on the channel."), source.service->nick.c_str()); + "By default, limited to AOPs or those with level 5 access and above\n" + "on the channel."), source.service->nick.c_str()); return true; } }; -- cgit From d9949320c79fc06a0a370b45d408bc4e0a447704 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 28 Jun 2014 23:13:57 -0400 Subject: Don't try to setuid down until after we signal the parent to exit, unless we're not forking. Also don't issue the run as root warning if we're going to setuid later. --- src/init.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index da91e2fcf..8f479f73e 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -100,6 +100,8 @@ bool Anope::AtTerm() return isatty(fileno(stdout)) && isatty(fileno(stdin)) && isatty(fileno(stderr)); } +static void setuidgid(); + void Anope::Fork() { #ifndef _WIN32 @@ -110,6 +112,8 @@ void Anope::Fork() freopen("/dev/null", "w", stderr); setpgid(0, 0); + + setuidgid(); #else FreeConsole(); #endif @@ -418,10 +422,15 @@ void Anope::Init(int ac, char **av) /* If we're root, issue a warning now */ if (!getuid() && !getgid()) { - std::cerr << "WARNING: You are currently running Anope as the root superuser. Anope does not" << std::endl; - std::cerr << " require root privileges to run, and it is discouraged that you run Anope" << std::endl; - std::cerr << " as the root superuser." << std::endl; - sleep(3); + /* If we are configured to setuid later, don't issue a warning */ + Configuration::Block *options = Config->GetBlock("options"); + if (options->Get("user").empty()) + { + std::cerr << "WARNING: You are currently running Anope as the root superuser. Anope does not" << std::endl; + std::cerr << " require root privileges to run, and it is discouraged that you run Anope" << std::endl; + std::cerr << " as the root superuser." << std::endl; + sleep(3); + } } #endif @@ -513,7 +522,11 @@ void Anope::Init(int ac, char **av) for (int i = 0; i < Config->CountBlock("module"); ++i) ModuleManager::LoadModule(Config->GetBlock("module", i)->Get("name"), NULL); - setuidgid(); +#ifndef _WIN32 + /* We won't background later, so we should setuid now */ + if (Anope::NoFork || !Anope::AtTerm()) + setuidgid(); +#endif Module *protocol = ModuleManager::FindFirstOf(PROTOCOL); if (protocol == NULL) -- cgit From 07902c03fde41205e5366b852553f1c74c9746dd Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 28 Jun 2014 23:14:48 -0400 Subject: Check that the list of items isn't NULL when destructing types --- src/serialize.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/serialize.cpp b/src/serialize.cpp index 570463dc3..1bb704b41 100644 --- a/src/serialize.cpp +++ b/src/serialize.cpp @@ -125,13 +125,14 @@ Type::Type(const Anope::string &n, unserialize_func f, Module *o) : name(n), un Type::~Type() { /* null the type of existing serializable objects of this type */ - for (std::list::iterator it = Serializable::SerializableItems->begin(); it != Serializable::SerializableItems->end(); ++it) - { - Serializable *s = *it; - - if (s->s_type == this) - s->s_type = NULL; - } + if (Serializable::SerializableItems != NULL) + for (std::list::iterator it = Serializable::SerializableItems->begin(); it != Serializable::SerializableItems->end(); ++it) + { + Serializable *s = *it; + + if (s->s_type == this) + s->s_type = NULL; + } std::vector::iterator it = std::find(TypeOrder.begin(), TypeOrder.end(), this->name); if (it != TypeOrder.end()) -- cgit From ff66e15f389102bceac885d7463b74e0c5956da9 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Fri, 4 Jul 2014 04:39:12 +0200 Subject: Correct the help text of options:useprivmsg ("defmsg" -> "msg") --- data/example.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/example.conf b/data/example.conf index 9ffedac1f..3f5e672be 100644 --- a/data/example.conf +++ b/data/example.conf @@ -462,7 +462,7 @@ options /* * If set, this will allow users to let Services send PRIVMSGs to them - * instead of NOTICEs. Also see the defmsg option of nickserv:defaults, + * instead of NOTICEs. Also see the "msg" option of nickserv:defaults, * which also toggles the default communication (PRIVMSG or NOTICE) to * use for unregistered users. * -- cgit From 7a64d95f7c796d91dbe1250dc1d88ecf8c113610 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 11 Jul 2014 00:22:32 -0400 Subject: Fix Log() calls in m_ldap_oper --- modules/extra/m_ldap_oper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/extra/m_ldap_oper.cpp b/modules/extra/m_ldap_oper.cpp index 3e16d75e6..05579da0b 100644 --- a/modules/extra/m_ldap_oper.cpp +++ b/modules/extra/m_ldap_oper.cpp @@ -50,7 +50,7 @@ class IdentifyInterface : public LDAPInterface o = new Oper(u->nick, ot); my_opers.insert(o); nc->o = o; - Log(this->owner) << "m_ldap_oper: Tied " << u->nick << " (" << nc->display << ") to opertype " << ot->GetName(); + Log(this->owner) << "Tied " << u->nick << " (" << nc->display << ") to opertype " << ot->GetName(); } } catch (const LDAPException &ex) @@ -64,7 +64,7 @@ class IdentifyInterface : public LDAPInterface } nc->o = NULL; - Log() << "Removed services operator from " << u->nick << " (" << nc->display << ")"; + Log(this->owner) << "Removed services operator from " << u->nick << " (" << nc->display << ")"; } } } -- cgit From 93cb5d06dbfc716416c312b4fe58eb40e5ae0046 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 11 Jul 2014 01:02:02 -0400 Subject: Fix channelcount with clone --- src/regchannel.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/regchannel.cpp b/src/regchannel.cpp index 5c00e291a..37fca0528 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -132,7 +132,7 @@ ChannelInfo::ChannelInfo(const ChannelInfo &ci) : Serializable("ChannelInfo"), *this = ci; if (this->founder) - --this->founder->channelcount; + ++this->founder->channelcount; this->access->clear(); this->akick->clear(); @@ -200,9 +200,6 @@ ChannelInfo::~ChannelInfo() delete this->memos.GetMemo(i); this->memos.memos->clear(); } - - if (this->founder) - --this->founder->channelcount; } void ChannelInfo::Serialize(Serialize::Data &data) const -- cgit From 3c88f3b8cf7c6536894d7fe74cd2a4c33d246814 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 15 Jul 2014 17:02:14 -0400 Subject: Check modetimes in CheckModes before enabling bouncy modes --- src/channels.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/channels.cpp b/src/channels.cpp index 409cf6b55..d5ed0aa44 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -108,7 +108,7 @@ void Channel::CheckModes() return; /* Check for mode bouncing */ - if (this->server_modecount >= 3 && this->chanserv_modecount >= 3) + if (this->chanserv_modetime == Anope::CurTime && this->server_modetime == Anope::CurTime && this->server_modecount >= 3 && this->chanserv_modecount >= 3) { Log() << "Warning: unable to set modes on channel " << this->name << ". Are your servers' U:lines configured correctly?"; this->bouncy_modes = 1; -- cgit From 60229b15d2637369977596f742b234b52a6f6f1a Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 26 Jul 2014 13:24:52 -0400 Subject: When object unserialization fails (due to not having dependency objects) bump the ts to try again later. --- modules/database/db_sql_live.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/database/db_sql_live.cpp b/modules/database/db_sql_live.cpp index b9b8ef57c..fda68524d 100644 --- a/modules/database/db_sql_live.cpp +++ b/modules/database/db_sql_live.cpp @@ -166,7 +166,7 @@ class DBMySQL : public Module, public Pipe if (!this->CheckInit() || obj->GetTimestamp() == Anope::CurTime) return; - Query query("SELECT * FROM `" + this->prefix + obj->GetName() + "` WHERE (`timestamp` > " + this->SQL->FromUnixtime(obj->GetTimestamp()) + " OR `timestamp` IS NULL)"); + Query query("SELECT * FROM `" + this->prefix + obj->GetName() + "` WHERE (`timestamp` >= " + this->SQL->FromUnixtime(obj->GetTimestamp()) + " OR `timestamp` IS NULL)"); obj->UpdateTimestamp(); @@ -228,7 +228,10 @@ class DBMySQL : public Module, public Pipe } else { - delete s; + if (!s) + this->RunQuery("UPDATE `" + prefix + obj->GetName() + "` SET `timestamp` = " + this->SQL->FromUnixtime(obj->GetTimestamp()) + " WHERE `id` = " + stringify(id)); + else + delete s; } } } -- cgit From 17ba13bc957ebdda962944dcf6031355448f366d Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 26 Jul 2014 13:28:08 -0400 Subject: Use ts version of services stamp when the account is unconfirmed on Unreal as 3.2.10.4 has changed thie behavior --- modules/protocol/unreal.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index 4aa340f08..6f744f22f 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -345,7 +345,8 @@ class UnrealIRCdProto : public IRCDProto void SendLogin(User *u, NickAlias *na) anope_override { - if (Servers::Capab.count("ESVID") > 0) + /* 3.2.10.4+ treats users logged in with accounts as fully registered, even if -r, so we can not set this here. Just use the timestamp. */ + if (Servers::Capab.count("ESVID") > 0 && !na->nc->HasExt("UNCONFIRMED")) IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", na->nc->display.c_str()); else IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %d", u->signon); -- cgit From 1137c500958368f0ce0817d1354ddb71a9ac96f9 Mon Sep 17 00:00:00 2001 From: Robby- Date: Sun, 27 Jul 2014 07:34:02 +0200 Subject: Fix a few help messages. --- modules/commands/cs_entrymsg.cpp | 2 +- modules/commands/cs_info.cpp | 4 ++-- modules/commands/hs_list.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/commands/cs_entrymsg.cpp b/modules/commands/cs_entrymsg.cpp index da14456a5..6df6918da 100644 --- a/modules/commands/cs_entrymsg.cpp +++ b/modules/commands/cs_entrymsg.cpp @@ -244,7 +244,7 @@ class CommandEntryMessage : public Command source.Reply(" "); source.Reply(_("The \002ENTRYMSG DEL\002 command removes the specified message from\n" "the list of messages shown to users when they join\n" - "the channel. You can a message by specifying its number\n" + "the channel. You can remove a message by specifying its number\n" "which you can get by listing the messages as explained below.")); source.Reply(" "); source.Reply(_("The \002ENTRYMSG LIST\002 command displays a listing of messages\n" diff --git a/modules/commands/cs_info.cpp b/modules/commands/cs_info.cpp index f7ef0e72e..6405958b3 100644 --- a/modules/commands/cs_info.cpp +++ b/modules/commands/cs_info.cpp @@ -76,8 +76,8 @@ class CommandCSInfo : public Command source.Reply(_("Lists information about the specified registered channel,\n" "including its founder, time of registration, last\n" "time used, and description. If the user issuing the\n" - "command has the appropriate access for it, then the" - "successor, last topic set, settings and expiration" + "command has the appropriate access for it, then the\n" + "successor, last topic set, settings and expiration\n" "time will also be displayed when applicable.")); return true; } diff --git a/modules/commands/hs_list.cpp b/modules/commands/hs_list.cpp index dfeb23bd2..cbdbb25ae 100644 --- a/modules/commands/hs_list.cpp +++ b/modules/commands/hs_list.cpp @@ -133,7 +133,7 @@ class CommandHSList : public Command { this->SendSyntax(source); source.Reply(" "); - source.Reply(_("This command lists registered vhosts to the operator\n" + source.Reply(_("This command lists registered vhosts to the operator.\n" "If a \037key\037 is specified, only entries whose nick or vhost match\n" "the pattern given in \037key\037 are displayed e.g. Rob* for all\n" "entries beginning with \"Rob\"\n" -- cgit From 8b61a529a2e357cdcde62073a4486f251e1a8adb Mon Sep 17 00:00:00 2001 From: Robby- Date: Sun, 27 Jul 2014 07:48:50 +0200 Subject: Update the dutch language file. --- language/anope.nl_NL.po | 507 ++++++++++++++++++++++++------------------------ 1 file changed, 249 insertions(+), 258 deletions(-) diff --git a/language/anope.nl_NL.po b/language/anope.nl_NL.po index 31d896332..1bbd57606 100644 --- a/language/anope.nl_NL.po +++ b/language/anope.nl_NL.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Anope\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-05-30 15:56-0400\n" -"PO-Revision-Date: 2014-05-30 18:06+0200\n" +"POT-Creation-Date: 2014-07-27 07:34+0200\n" +"PO-Revision-Date: 2014-07-27 07:38+0200\n" "Last-Translator: Robby \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -586,11 +586,11 @@ msgstr "adres" msgid "botname {ON|OFF}" msgstr "botnick {ON|OFF}" -#: modules/commands/cs_suspend.cpp:152 modules/commands/cs_sync.cpp:20 -#: modules/commands/bs_assign.cpp:91 modules/commands/cs_log.cpp:106 -#: modules/commands/cs_getkey.cpp:20 modules/commands/cs_info.cpp:20 #: modules/extra/stats/cs_fantasy_top.cpp:39 #: modules/extra/stats/cs_fantasy_top.cpp:51 +#: modules/commands/cs_suspend.cpp:152 modules/commands/cs_sync.cpp:20 +#: modules/commands/cs_log.cpp:106 modules/commands/bs_assign.cpp:91 +#: modules/commands/cs_info.cpp:20 modules/commands/cs_getkey.cpp:20 msgid "channel" msgstr "kanaal" @@ -614,8 +614,8 @@ msgstr "kanaal masker [reden]" msgid "channel modes" msgstr "kanaal modes" -#: modules/commands/bs_assign.cpp:20 modules/commands/cs_set.cpp:264 -#: modules/commands/cs_set.cpp:962 +#: modules/commands/cs_set.cpp:264 modules/commands/cs_set.cpp:962 +#: modules/commands/bs_assign.cpp:20 msgid "channel nick" msgstr "kanaal nick" @@ -667,9 +667,9 @@ msgstr "kanaal ADD {nick | masker} [reden]" msgid "channel APPEND topic" msgstr "kanaal APPEND topic" -#: modules/commands/cs_access.cpp:498 modules/commands/bs_badwords.cpp:373 -#: modules/commands/cs_xop.cpp:488 modules/commands/cs_flags.cpp:375 -#: modules/commands/cs_akick.cpp:428 modules/commands/cs_entrymsg.cpp:197 +#: modules/commands/cs_access.cpp:498 modules/commands/cs_flags.cpp:375 +#: modules/commands/cs_xop.cpp:488 modules/commands/cs_entrymsg.cpp:197 +#: modules/commands/bs_badwords.cpp:373 modules/commands/cs_akick.cpp:428 msgid "channel CLEAR" msgstr "kanaal CLEAR" @@ -709,8 +709,8 @@ msgstr "kanaal LIST" msgid "channel LIST [mask | entry-num | list]" msgstr "kanaal LIST [masker | nr | lijst]" -#: modules/commands/cs_access.cpp:496 modules/commands/bs_badwords.cpp:372 -#: modules/commands/cs_xop.cpp:487 +#: modules/commands/cs_access.cpp:496 modules/commands/cs_xop.cpp:487 +#: modules/commands/bs_badwords.cpp:372 msgid "channel LIST [mask | list]" msgstr "kanaal LIST [masker | lijst]" @@ -750,7 +750,7 @@ msgstr "kanaal VIEW [masker | nr | lijst]" msgid "channel VIEW [mask | list]" msgstr "kanaal VIEW [masker | lijst]" -#: modules/commands/cs_set.cpp:202 modules/commands/cs_register.cpp:20 +#: modules/commands/cs_register.cpp:20 modules/commands/cs_set.cpp:202 msgid "channel [description]" msgstr "kanaal [beschrijving]" @@ -762,7 +762,7 @@ msgstr "kanaal [nick]" msgid "channel [parameters]" msgstr "kanaal [parameters]" -#: modules/commands/cs_status.cpp:20 modules/commands/cs_mode.cpp:752 +#: modules/commands/cs_mode.cpp:752 modules/commands/cs_status.cpp:20 msgid "channel [user]" msgstr "kanaal [nick]" @@ -810,13 +810,13 @@ msgstr "kanaal {DIS | DISABLE} type" msgid "channel {ON | LEVEL | OFF}" msgstr "kanaal {ON | LEVEL | OFF}" -#: modules/commands/cs_list.cpp:181 modules/commands/bs_kick.cpp:781 -#: modules/commands/bs_kick.cpp:846 modules/commands/cs_topic.cpp:21 -#: modules/commands/cs_set.cpp:72 modules/commands/cs_set.cpp:333 -#: modules/commands/cs_set.cpp:398 modules/commands/cs_set.cpp:470 -#: modules/commands/cs_set.cpp:633 modules/commands/cs_set.cpp:695 -#: modules/commands/cs_set.cpp:759 modules/commands/cs_set.cpp:823 -#: modules/commands/cs_set.cpp:1048 modules/extra/stats/m_chanstats.cpp:10 +#: modules/extra/stats/m_chanstats.cpp:10 modules/commands/cs_set.cpp:72 +#: modules/commands/cs_set.cpp:333 modules/commands/cs_set.cpp:398 +#: modules/commands/cs_set.cpp:470 modules/commands/cs_set.cpp:633 +#: modules/commands/cs_set.cpp:695 modules/commands/cs_set.cpp:759 +#: modules/commands/cs_set.cpp:823 modules/commands/cs_set.cpp:1048 +#: modules/commands/bs_kick.cpp:781 modules/commands/bs_kick.cpp:846 +#: modules/commands/cs_topic.cpp:21 modules/commands/cs_list.cpp:181 msgid "channel {ON | OFF}" msgstr "kanaal {ON | OFF}" @@ -836,8 +836,8 @@ msgstr "memo-tekst" msgid "message" msgstr "bericht" -#: modules/commands/os_module.cpp:20 modules/commands/os_module.cpp:57 -#: modules/commands/os_module.cpp:129 modules/commands/os_modinfo.cpp:20 +#: modules/commands/os_modinfo.cpp:20 modules/commands/os_module.cpp:20 +#: modules/commands/os_module.cpp:57 modules/commands/os_module.cpp:129 msgid "modname" msgstr "modnaam" @@ -849,10 +849,9 @@ msgstr "nieuwe-weergave" msgid "new-password" msgstr "nieuw-wachtwoord" -#: modules/commands/cs_seen.cpp:258 modules/commands/hs_del.cpp:20 +#: modules/extra/stats/cs_fantasy_stats.cpp:52 modules/commands/hs_del.cpp:20 #: modules/commands/hs_del.cpp:60 modules/commands/ms_check.cpp:20 -#: modules/commands/hs_request.cpp:187 -#: modules/extra/stats/cs_fantasy_stats.cpp:52 +#: modules/commands/hs_request.cpp:187 modules/commands/cs_seen.cpp:258 msgid "nick" msgstr "nick" @@ -880,7 +879,7 @@ msgstr "nick nieuwenick" msgid "nick [reason]" msgstr "nick [reden]" -#: modules/commands/ns_drop.cpp:19 modules/commands/ns_getpass.cpp:20 +#: modules/commands/ns_getpass.cpp:20 modules/commands/ns_drop.cpp:19 #: modules/commands/ns_suspend.cpp:161 msgid "nickname" msgstr "nick" @@ -925,10 +924,10 @@ msgstr "nick [+verlooptijd] [reden]" msgid "nickname {EMAIL | STATUS | USERMASK | QUIT} {ON | OFF}" msgstr "nick {EMAIL | STATUS | USERMASK | QUIT} {ON | OFF}" -#: modules/commands/ns_set.cpp:294 modules/commands/ns_set.cpp:610 -#: modules/commands/ns_set.cpp:961 modules/commands/ns_set.cpp:1052 -#: modules/commands/ns_set.cpp:1081 modules/commands/ns_list.cpp:252 -#: modules/extra/stats/m_chanstats.cpp:122 +#: modules/extra/stats/m_chanstats.cpp:122 modules/commands/ns_set.cpp:294 +#: modules/commands/ns_set.cpp:610 modules/commands/ns_set.cpp:961 +#: modules/commands/ns_set.cpp:1052 modules/commands/ns_set.cpp:1081 +#: modules/commands/ns_list.cpp:252 msgid "nickname {ON | OFF}" msgstr "nickname {ON | OFF}" @@ -952,7 +951,7 @@ msgstr "optie kanaal {ON|OFF} [instellingen]" msgid "option nickname parameters" msgstr "optie nickname parameters" -#: modules/commands/ns_set.cpp:20 modules/commands/ms_set.cpp:207 +#: modules/commands/ms_set.cpp:207 modules/commands/ns_set.cpp:20 msgid "option parameters" msgstr "optie parameters" @@ -1255,21 +1254,6 @@ msgstr "" "automatisch verlopen na de opgegeven tijd. Geef een tijd van 0 op om\n" "het automatisch verlopen van bans uit te schakelen." -#: modules/commands/cs_xop.cpp:565 -#, c-format -msgid "" -" \n" -"The %s commands are limited to founders\n" -"(unless SECUREOPS is off). However, any user on the\n" -"VOP list or above may use the %s LIST command.\n" -" \n" -msgstr "" -" \n" -"%s commando's zijn beperkt tot stichters\n" -"(tenzij SECUREOPS uitgeschakeld is). Echter, elke gebruiker op de\n" -"VOP lijst of hoger mag het %s LIST commando gebruiken.\n" -" \n" - #: modules/commands/cs_xop.cpp:546 #, c-format msgid "" @@ -1480,9 +1464,9 @@ msgstr "" #: modules/commands/bs_assign.cpp:197 msgid "" " \n" -"This option makes a channel be unassignable. If a bot\n" +"This option makes a channel unassignable. If a bot\n" "is already assigned to the channel, it is unassigned\n" -"automatically when you enable the option." +"automatically when you enable it." msgstr "" " \n" "Deze optie zorgt ervoor dat een kanaal geen bot kan hebben.\n" @@ -1743,8 +1727,8 @@ msgid "%s cannot be the successor on channel %s as they are the founder." msgstr "" "%s kan de opvolger niet zijn op kanaal %s omdat hij/zij de stichter is." +#: modules/pseudoclients/global.cpp:90 modules/pseudoclients/hostserv.cpp:78 #: modules/pseudoclients/operserv.cpp:272 -#: modules/pseudoclients/hostserv.cpp:78 modules/pseudoclients/global.cpp:90 #, c-format msgid "%s commands:" msgstr "%s commando's:" @@ -2194,7 +2178,7 @@ msgstr "ADD [nick] masker" msgid "ADD [nickname] [fingerprint]" msgstr "ADD [nick] [vingerafdruk]" -#: modules/commands/os_akill.cpp:380 modules/commands/os_sxline.cpp:651 +#: modules/commands/os_sxline.cpp:651 modules/commands/os_akill.cpp:380 msgid "ADD [+expiry] mask reason" msgstr "ADD [+verlooptijd] masker reden" @@ -2608,13 +2592,13 @@ msgid "" "hostname and realname. Since no integrity checks are done\n" "for these settings, be really careful.\n" " \n" -"BOT CHANGE allows to change the nickname, username, hostname\n" -"or realname of a bot without actually having to delete it (and\n" +"BOT CHANGE allows you to change the nickname, username, hostname\n" +"or realname of a bot without deleting it (and\n" "all the data associated with it).\n" " \n" "BOT DEL removes the given bot from the bot list.\n" " \n" -"Note: you cannot create a bot that has a nick that is\n" +"Note: You cannot create a bot with a nick that is\n" "currently registered. If an unregistered user is currently\n" "using the nick, they will be killed." msgstr "" @@ -2627,7 +2611,7 @@ msgstr "" "niet nagekeken of ze correct zijn, dus pas op.\n" " \n" "BOT CHANGE kan de nick, ident, host of echte\n" -"naam van een bot veranderen zonder deze (en de date die\n" +"naam van een bot veranderen zonder deze (en de data die\n" "met de bot geassocieerd is) te moeten verwijderen.\n" " \n" "BOT DEL verwijdert de gegeven bot van de botlijst.\n" @@ -2984,7 +2968,7 @@ msgstr "" "nick is krijg je informatie over een bot, zoals de tijd waarop\n" "deze gemaakt is of op hoeveel kanalen deze staat." -#: modules/commands/cs_xop.cpp:576 +#: modules/commands/cs_xop.cpp:571 msgid "" "Alternative methods of modifying channel access lists are\n" "available. " @@ -3000,20 +2984,20 @@ msgstr "Keur de aangevraagde vHost van een gebruiker goed" msgid "As a Services Operator, you may drop any nick." msgstr "Als Services Operator kan je elke nickregistratie verwijderen." +#: modules/commands/bs_assign.cpp:19 +msgid "Assigns a bot to a channel" +msgstr "Wijs een bot toe aan een kanaal" + #: modules/commands/bs_assign.cpp:78 msgid "" -"Assigns a bot pointed out by nick to a channel. You\n" +"Assigns the specified bot to a channel. You\n" "can then configure the bot for the channel so it fits\n" "your needs." msgstr "" -"Wijst een bot met de opgegeven nick toe aan een kanaal.\n" +"Wijst een opgegeven bot toe aan een kanaal.\n" "Hierna kun je de bot voor het kanaal instellen zoals je\n" "wil." -#: modules/commands/bs_assign.cpp:19 -msgid "Assigns a bot to a channel" -msgstr "Wijs een bot toe aan een kanaal" - #: data/chanserv.example.conf:1186 msgid "Associate a URL with the channel" msgstr "Koppel een URL aan het kanaal" @@ -3356,8 +3340,8 @@ msgstr "Bot zal niet meer kicken voor flood." msgid "Bot won't kick for repeats anymore." msgstr "Bot zal niet meer kicken voor herhalingen." -#: modules/commands/cs_access.cpp:467 modules/commands/os_session.cpp:552 -#: modules/commands/os_sxline.cpp:199 +#: modules/commands/cs_access.cpp:467 modules/commands/os_sxline.cpp:199 +#: modules/commands/os_session.cpp:552 msgid "By" msgstr "Door" @@ -3549,7 +3533,7 @@ msgstr "" "de nieuwe stichter van het kanaal. De nieuwe nick moet een\n" "geregistreerde nick zijn." -#: modules/commands/ns_ajoin.cpp:100 modules/commands/ns_alist.cpp:48 +#: modules/commands/ns_alist.cpp:48 modules/commands/ns_ajoin.cpp:100 msgid "Channel" msgstr "Kanaal" @@ -3667,8 +3651,8 @@ msgstr "Kanaallijst:" msgid "Channel stats for %s on %s:" msgstr "Kanaalstatistieken voor %s op %s:" -#: modules/commands/cs_access.cpp:141 modules/commands/cs_xop.cpp:142 -#: modules/commands/cs_flags.cpp:99 +#: modules/commands/cs_access.cpp:141 modules/commands/cs_flags.cpp:99 +#: modules/commands/cs_xop.cpp:142 msgid "Channels may not be on access lists." msgstr "Kanalen mogen niet op de toegangslijst staan." @@ -3731,7 +3715,7 @@ msgstr "Kijk of je laatste memo naar iemand al is gelezen" #: modules/commands/ms_check.cpp:69 msgid "" "Checks whether the _last_ memo you sent to nick has been read\n" -"or not. Note that this does only work with nicks, not with channels." +"or not. Note that this only works with nicks, not with channels." msgstr "" "Controleert of de _laatste_ memo die je naar nick gestuurd\n" "hebt is gelezen of niet. Let wel op: dit werkt alleen met nicks,\n" @@ -3852,20 +3836,20 @@ msgstr "" msgid "Copy all settings from one channel to another" msgstr "Kopiëer alle instellingen van het ene kanaal naar het andere" -#: modules/commands/os_news.cpp:156 modules/commands/bs_info.cpp:58 -#: modules/commands/os_session.cpp:552 modules/commands/os_akill.cpp:355 -#: modules/commands/os_sxline.cpp:199 modules/commands/hs_list.cpp:58 -#: modules/commands/cs_flags.cpp:300 modules/commands/cs_akick.cpp:380 -#: modules/commands/cs_entrymsg.cpp:116 modules/commands/cs_mode.cpp:431 -#: modules/commands/hs_request.cpp:300 +#: modules/commands/hs_list.cpp:58 modules/commands/cs_flags.cpp:300 +#: modules/commands/cs_mode.cpp:431 modules/commands/cs_entrymsg.cpp:116 +#: modules/commands/os_sxline.cpp:199 modules/commands/os_news.cpp:156 +#: modules/commands/hs_request.cpp:300 modules/commands/cs_akick.cpp:380 +#: modules/commands/os_session.cpp:552 modules/commands/bs_info.cpp:58 +#: modules/commands/os_akill.cpp:355 msgid "Created" msgstr "Gemaakt" -#: modules/commands/os_news.cpp:156 modules/commands/os_forbid.cpp:346 -#: modules/commands/os_akill.cpp:355 modules/commands/hs_list.cpp:58 -#: modules/commands/os_ignore.cpp:266 modules/commands/cs_flags.cpp:300 -#: modules/commands/cs_akick.cpp:380 modules/commands/cs_entrymsg.cpp:116 -#: modules/commands/cs_mode.cpp:431 +#: modules/commands/hs_list.cpp:58 modules/commands/cs_flags.cpp:300 +#: modules/commands/cs_mode.cpp:431 modules/commands/cs_entrymsg.cpp:116 +#: modules/commands/os_ignore.cpp:266 modules/commands/os_forbid.cpp:346 +#: modules/commands/os_news.cpp:156 modules/commands/cs_akick.cpp:380 +#: modules/commands/os_akill.cpp:355 msgid "Creator" msgstr "Door" @@ -3926,8 +3910,8 @@ msgstr "DEL [nick] vingerafdruk" msgid "DEL [nickname] mask" msgstr "DEL [nick] masker" -#: modules/commands/os_akill.cpp:381 modules/commands/os_sxline.cpp:419 -#: modules/commands/os_sxline.cpp:652 +#: modules/commands/os_sxline.cpp:419 modules/commands/os_sxline.cpp:652 +#: modules/commands/os_akill.cpp:381 msgid "DEL {mask | entry-num | list | id}" msgstr "DEL {masker | nr | lijst | id}" @@ -4098,10 +4082,6 @@ msgstr "" msgid "Delete a memo or memos" msgstr "Verwijder een of meerdere memo's" -#: modules/commands/hs_del.cpp:59 -msgid "Delete the vhost for all nicks in a group" -msgstr "Verwijder de vHost voor alle nicks in een groep" - #: modules/commands/hs_del.cpp:19 msgid "Delete the vhost of another user" msgstr "Verwijder de vHost van een andere gebruiker" @@ -4221,6 +4201,10 @@ msgstr "" "Verwijdert de vHost die toegewezen is aan de gegeven nick\n" "uit de database." +#: modules/commands/hs_del.cpp:59 +msgid "Deletes the vhost for all nicks in a group" +msgstr "Verwijdert de vHost voor alle nicks in een groep" + #: modules/commands/hs_del.cpp:93 msgid "" "Deletes the vhost for all nicks in the same group as\n" @@ -4234,8 +4218,8 @@ msgstr "" msgid "Depooled %s." msgstr "Depooled %s." -#: modules/commands/cs_access.cpp:784 modules/commands/cs_list.cpp:75 -#: modules/commands/cs_info.cpp:53 modules/commands/ns_alist.cpp:48 +#: modules/commands/cs_access.cpp:784 modules/commands/ns_alist.cpp:48 +#: modules/commands/cs_list.cpp:75 modules/commands/cs_info.cpp:53 msgid "Description" msgstr "Beschrijving" @@ -4249,7 +4233,7 @@ msgstr "Beschrijving van %s veranderd naar %s." msgid "Description of %s unset." msgstr "Beschrijving van %s verwijderd." -#: modules/commands/bs_info.cpp:91 modules/commands/bs_kick.cpp:1104 +#: modules/commands/bs_kick.cpp:1104 modules/commands/bs_info.cpp:91 msgid "Disabled" msgstr "Uitgeschakeld" @@ -4467,7 +4451,7 @@ msgstr "Activeer begroetingen" msgid "Enable or disable keep modes" msgstr "Activeer of deactiveer KEEPMODES" -#: modules/commands/bs_info.cpp:90 modules/commands/bs_kick.cpp:1103 +#: modules/commands/bs_kick.cpp:1103 modules/commands/bs_info.cpp:90 msgid "Enabled" msgstr "Ingeschakeld" @@ -4764,8 +4748,8 @@ msgstr "" "die ermee overeenstemmen, en LIMIT zal gebruikers kicken tot het\n" "gebruikersaantal onder de kanaallimiet zakt, indien ingesteld." -#: modules/commands/ns_set.cpp:832 modules/commands/ns_set.cpp:867 -#: src/language.cpp:44 +#: src/language.cpp:44 modules/commands/ns_set.cpp:832 +#: modules/commands/ns_set.cpp:867 msgid "English" msgstr "Nederlands" @@ -4826,26 +4810,26 @@ msgstr "" msgid "" "Examples:\n" " \n" -" CERT ADD \n" -" Adds this fingerprint to the certificate list and\n" +" CERT ADD\n" +" Adds your current fingerprint to the certificate list and\n" " automatically identifies you when you connect to IRC\n" -" using this certificate.\n" +" using this fingerprint.\n" " \n" " CERT DEL \n" -" Reverses the previous command.\n" +" Removes the fingerprint from your certificate list.\n" " \n" " CERT LIST\n" " Displays the current certificate list." msgstr "" "Voorbeelden:\n" " \n" -" CERT ADD \n" -" Voegt de vingerafdruk toe aan de certificaatlijst, en\n" -" identificeerd je automatisch wanneer je verbinding maakt\n" +" CERT ADD\n" +" Voegt je huidige vingerafdruk toe aan de certificaatlijst, en\n" +" identificeert je automatisch wanneer je verbinding maakt\n" " met deze certificaat.\n" " \n" " CERT DEL \n" -" Maakt het vorige commando weer ongedaan.\n" +" Verwijdert de gegeven vingerafdruk van je certificaatlijst.\n" " \n" " CERT LIST\n" " Toont de huidige certificaatlijst." @@ -4860,12 +4844,12 @@ msgstr "Uitzondering voor %s (#%d) verplaatst naar positie %d." msgid "Exception for %s has been updated to %d." msgstr "Uitzondering voor %s is geüpdatet naar %d." +#: modules/pseudoclients/chanserv.cpp:460 #: modules/pseudoclients/nickserv.cpp:535 -#: modules/pseudoclients/nickserv.cpp:540 -#: modules/pseudoclients/chanserv.cpp:460 modules/commands/os_forbid.cpp:346 -#: modules/commands/os_session.cpp:552 modules/commands/os_akill.cpp:355 -#: modules/commands/os_sxline.cpp:199 modules/commands/os_ignore.cpp:266 -#: modules/commands/ns_group.cpp:315 +#: modules/pseudoclients/nickserv.cpp:540 modules/commands/os_ignore.cpp:266 +#: modules/commands/os_sxline.cpp:199 modules/commands/os_forbid.cpp:346 +#: modules/commands/os_session.cpp:552 modules/commands/ns_group.cpp:315 +#: modules/commands/os_akill.cpp:355 msgid "Expires" msgstr "Verloopt" @@ -4979,7 +4963,7 @@ msgstr "Dwing een gebruiker een kanaal te verlaten" msgid "Forcefully part a user from a channel." msgstr "Dwing een gebruiker een kanaal te verlaten." -#: modules/commands/cs_info.cpp:47 modules/commands/ns_alist.cpp:64 +#: modules/commands/ns_alist.cpp:64 modules/commands/cs_info.cpp:47 msgid "Founder" msgstr "Stichter" @@ -5213,16 +5197,16 @@ msgstr "Cursiefkicker" msgid "Join a group" msgstr "Bij een groep aanmelden" -#: modules/commands/ns_set.cpp:1294 modules/commands/cs_set.cpp:1358 +#: modules/commands/cs_set.cpp:1358 modules/commands/ns_set.cpp:1294 msgid "Keep modes" msgstr "Behoud modes" -#: modules/commands/ns_set.cpp:582 modules/commands/cs_set.cpp:374 +#: modules/commands/cs_set.cpp:374 modules/commands/ns_set.cpp:582 #, c-format msgid "Keep modes for %s is now off." msgstr "Modes behouden voor %s is nu uit." -#: modules/commands/ns_set.cpp:576 modules/commands/cs_set.cpp:366 +#: modules/commands/cs_set.cpp:366 modules/commands/ns_set.cpp:576 #, c-format msgid "Keep modes for %s is now on." msgstr "Modes behouden voor %s is nu aan." @@ -5254,7 +5238,7 @@ msgid "" "Kicks a specified nick from a channel.\n" " \n" "By default, limited to AOPs or those with level 5 access\n" -"and above on the channel. Channel founders may use masks too." +"and above on the channel. Channel founders can also specify masks." msgstr "" "Kick een gegeven nick uit een kanaal.\n" " \n" @@ -5279,8 +5263,8 @@ msgstr "LIMIT afgedwongen op %s, %d gebruikers werden verwijderd." msgid "LIST threshold" msgstr "LIST aantal" -#: modules/commands/os_akill.cpp:382 modules/commands/os_sxline.cpp:420 -#: modules/commands/os_sxline.cpp:653 +#: modules/commands/os_sxline.cpp:420 modules/commands/os_sxline.cpp:653 +#: modules/commands/os_akill.cpp:382 msgid "LIST [mask | list | id]" msgstr "LIST [masker | lijst | id]" @@ -5288,8 +5272,8 @@ msgstr "LIST [masker | lijst | id]" msgid "LIST [mask | list]" msgstr "LIST [masker | lijst]" -#: modules/commands/ns_ajoin.cpp:233 modules/commands/ns_cert.cpp:260 -#: modules/commands/ns_access.cpp:104 +#: modules/commands/ns_access.cpp:104 modules/commands/ns_cert.cpp:260 +#: modules/commands/ns_ajoin.cpp:233 msgid "LIST [nickname]" msgstr "LIST [nick]" @@ -5350,8 +5334,8 @@ msgstr "Niveau voor %s op kanaal %s gewijzigd naar enkel-stichter." msgid "Level must be between %d and %d inclusive." msgstr "Niveau moet tussen de %d en %d inclusief zijn." -#: modules/commands/os_session.cpp:544 modules/commands/os_session.cpp:552 -#: modules/commands/os_dns.cpp:217 +#: modules/commands/os_dns.cpp:217 modules/commands/os_session.cpp:544 +#: modules/commands/os_session.cpp:552 msgid "Limit" msgstr "Limiet" @@ -5617,24 +5601,24 @@ msgid "Lists currently loaded modules." msgstr "Geef geladen modules weer" #: modules/commands/cs_info.cpp:19 -msgid "Lists information about the named registered channel" -msgstr "Toon informatie over het opgegeven geregistreerde kanaal" +msgid "Lists information about the specified registered channel" +msgstr "Toont informatie over het opgegeven geregistreerde kanaal" #: modules/commands/cs_info.cpp:76 msgid "" -"Lists information about the named registered channel,\n" -"including its founder, time of registration, and last\n" -"time used. If the user issuing the command has the\n" -"appropriate access for it, then the description, successor,\n" -"last topic set, settings and expiration time will also\n" -"be displayed when applicable." +"Lists information about the specified registered channel,\n" +"including its founder, time of registration, last\n" +"time used, and description. If the user issuing the\n" +"command has the appropriate access for it, then the\n" +"successor, last topic set, settings and expiration\n" +"time will also be displayed when applicable." msgstr "" "Geeft informatie weer over het gegeven geregistreerde\n" -"kanaal, zoals de stichter, registratietijd, en tijd van\n" -"laatste gebruik. Als de gebruiker die het commando\n" -"uitvoert de benodigde toegang er voor heeft, dan zal\n" -"de beschrijving, de opvolger, de laatst ingestelde topic,\n" -"de instellingen, en de verlooptijd ook getoond worden\n" +"kanaal, inclusief de stichter, registratietijd, tijd van\n" +"laatste gebruik, en beschrijving. Als de gebruiker die het\n" +"commando uitvoert de benodigde toegang er voor heeft,\n" +"dan zal de opvolger, de laatst ingestelde topic, de\n" +"instellingen, en de verlooptijd ook getoond worden\n" "indien van toepassing." #: modules/commands/os_module.cpp:19 @@ -5901,17 +5885,17 @@ msgstr "Laat de bot het equivalent van het \"/me\" commando doen" #: modules/commands/bs_control.cpp:127 msgid "" "Makes the bot do the equivalent of a \"/me\" command\n" -"on the given channel using the given text." +"on the specified channel using the specified text." msgstr "" "Laat de bot het equivalent van het \"/me\" commando doen\n" "op het gegeven kanaal met de gegeven tekst." #: modules/commands/bs_control.cpp:19 -msgid "Makes the bot say the given text on the given channel" +msgid "Makes the bot say the specified text on the specified channel" msgstr "Laat de bot een gegeven bericht zeggen op het gegeven kanaal" #: modules/commands/bs_control.cpp:69 -msgid "Makes the bot say the given text on the given channel." +msgid "Makes the bot say the specified text on the specified channel." msgstr "Laat de bot een gegeven bericht zeggen op het gegeven kanaal." #: modules/commands/greet.cpp:157 @@ -5971,15 +5955,15 @@ msgstr "Beheer het DefCon systeem" msgid "Manipulate the topic of the specified channel" msgstr "Pas de topic van het gegeven kanaal aan" -#: modules/commands/cs_access.cpp:454 modules/commands/cs_access.cpp:467 -#: modules/commands/os_forbid.cpp:346 modules/commands/bs_botlist.cpp:27 -#: modules/commands/bs_info.cpp:56 modules/commands/os_list.cpp:147 -#: modules/commands/cs_xop.cpp:381 modules/commands/ms_ignore.cpp:80 +#: modules/commands/bs_botlist.cpp:27 modules/commands/cs_access.cpp:454 +#: modules/commands/cs_access.cpp:467 modules/commands/cs_flags.cpp:300 +#: modules/commands/cs_xop.cpp:381 modules/commands/os_ignore.cpp:266 +#: modules/commands/os_sxline.cpp:191 modules/commands/os_sxline.cpp:199 +#: modules/commands/os_forbid.cpp:346 modules/commands/cs_akick.cpp:367 +#: modules/commands/cs_akick.cpp:380 modules/commands/ms_ignore.cpp:80 #: modules/commands/os_session.cpp:544 modules/commands/os_session.cpp:552 +#: modules/commands/os_list.cpp:147 modules/commands/bs_info.cpp:56 #: modules/commands/os_akill.cpp:341 modules/commands/os_akill.cpp:355 -#: modules/commands/os_sxline.cpp:191 modules/commands/os_sxline.cpp:199 -#: modules/commands/os_ignore.cpp:266 modules/commands/cs_flags.cpp:300 -#: modules/commands/cs_akick.cpp:367 modules/commands/cs_akick.cpp:380 msgid "Mask" msgstr "Masker" @@ -5992,8 +5976,8 @@ msgstr "Masker %s bestaat al op %s's toegangslijst." msgid "Mask must be in the form user@host." msgstr "Masker moet in het ident@host formaat zijn." -#: modules/commands/cs_access.cpp:164 modules/commands/cs_xop.cpp:165 -#: modules/commands/cs_flags.cpp:122 +#: modules/commands/cs_access.cpp:164 modules/commands/cs_flags.cpp:122 +#: modules/commands/cs_xop.cpp:165 msgid "Masks and unregistered users may not be on access lists." msgstr "" "Maskers en ongeregistreerde gebruikers mogen niet op toegangslijsten staan." @@ -6136,7 +6120,7 @@ msgstr "" msgid "" "Modifies or displays the certificate list for your nick.\n" "If you connect to IRC and provide a client certificate with a\n" -"matching fingerprint in the cert list, your nick will be\n" +"matching fingerprint in the cert list, you will be\n" "automatically identified to services. Services Operators\n" "may provide a nick to modify other users' certificate lists.\n" " \n" @@ -6218,9 +6202,9 @@ msgid "Module: %s [%s] [%s]" msgstr "Module: %s [%s] [%s]" #: modules/commands/cs_access.cpp:690 modules/commands/cs_access.cpp:784 -#: modules/commands/os_list.cpp:42 modules/commands/os_list.cpp:147 #: modules/commands/os_config.cpp:66 modules/commands/os_config.cpp:88 -#: modules/commands/cs_list.cpp:75 +#: modules/commands/cs_list.cpp:75 modules/commands/os_list.cpp:42 +#: modules/commands/os_list.cpp:147 msgid "Name" msgstr "Naam" @@ -6237,8 +6221,8 @@ msgstr "Netwerkstatistieken voor %s:" msgid "Never" msgstr "Nooit" -#: modules/commands/bs_botlist.cpp:27 modules/commands/ns_list.cpp:75 -#: modules/commands/hs_list.cpp:58 modules/commands/hs_request.cpp:300 +#: modules/commands/hs_list.cpp:58 modules/commands/bs_botlist.cpp:27 +#: modules/commands/hs_request.cpp:300 modules/commands/ns_list.cpp:75 #: modules/commands/ns_group.cpp:315 msgid "Nick" msgstr "Nick" @@ -6391,7 +6375,7 @@ msgstr "Geen auto-op" msgid "No bot" msgstr "Geen bot" -#: modules/commands/ns_set.cpp:1292 modules/commands/cs_set.cpp:1356 +#: modules/commands/cs_set.cpp:1356 modules/commands/ns_set.cpp:1292 msgid "No expire" msgstr "Verloopt niet" @@ -6425,7 +6409,7 @@ msgid "No matching entries on %s %s list." msgstr "Geen overeenkomsten op %s %s lijst." #: modules/commands/cs_access.cpp:264 modules/commands/cs_access.cpp:428 -#: modules/commands/cs_xop.cpp:432 modules/commands/cs_flags.cpp:334 +#: modules/commands/cs_flags.cpp:334 modules/commands/cs_xop.cpp:432 #, c-format msgid "No matching entries on %s access list." msgstr "Geen overeenkomsten op %s toegangslijst." @@ -6527,7 +6511,7 @@ msgstr "Geen-botmodus staat nu aan op kanaal %s." msgid "Non-status modes cleared on %s." msgstr "Niet-statusmodes weggehaald op %s." -#: modules/commands/bs_info.cpp:59 modules/commands/os_dns.cpp:225 +#: modules/commands/os_dns.cpp:225 modules/commands/bs_info.cpp:59 msgid "None" msgstr "Geen" @@ -6535,17 +6519,17 @@ msgstr "Geen" msgid "Nothing to do." msgstr "Niets te doen." -#: modules/commands/os_news.cpp:156 modules/commands/cs_access.cpp:454 -#: modules/commands/cs_access.cpp:467 modules/commands/bs_badwords.cpp:193 -#: modules/commands/cs_xop.cpp:381 modules/commands/os_session.cpp:544 -#: modules/commands/os_session.cpp:552 modules/commands/os_akill.cpp:341 -#: modules/commands/os_akill.cpp:355 modules/commands/os_sxline.cpp:191 -#: modules/commands/os_sxline.cpp:199 modules/commands/cs_log.cpp:127 -#: modules/commands/ns_ajoin.cpp:100 modules/commands/hs_list.cpp:58 -#: modules/commands/cs_flags.cpp:300 modules/commands/ms_list.cpp:64 -#: modules/commands/cs_akick.cpp:367 modules/commands/cs_akick.cpp:380 -#: modules/commands/cs_entrymsg.cpp:116 modules/commands/hs_request.cpp:300 -#: modules/commands/ns_alist.cpp:48 +#: modules/commands/hs_list.cpp:58 modules/commands/cs_access.cpp:454 +#: modules/commands/cs_access.cpp:467 modules/commands/cs_flags.cpp:300 +#: modules/commands/cs_xop.cpp:381 modules/commands/ns_alist.cpp:48 +#: modules/commands/cs_entrymsg.cpp:116 modules/commands/os_sxline.cpp:191 +#: modules/commands/os_sxline.cpp:199 modules/commands/ms_list.cpp:64 +#: modules/commands/bs_badwords.cpp:193 modules/commands/os_news.cpp:156 +#: modules/commands/hs_request.cpp:300 modules/commands/cs_akick.cpp:367 +#: modules/commands/cs_akick.cpp:380 modules/commands/cs_log.cpp:127 +#: modules/commands/os_session.cpp:544 modules/commands/os_session.cpp:552 +#: modules/commands/os_akill.cpp:341 modules/commands/os_akill.cpp:355 +#: modules/commands/ns_ajoin.cpp:100 msgid "Number" msgstr "Nummer" @@ -6553,10 +6537,6 @@ msgstr "Nummer" msgid "OPERNEWS {ADD|DEL|LIST} [text|num]" msgstr "OPERNEWS {ADD|DEL|LIST} [text|nr]" -#: modules/commands/bs_bot.cpp:142 -msgid "Old info is equal to the new one." -msgstr "Oude informatie is gelijk aan de nieuwe." - #: modules/commands/ns_info.cpp:68 modules/commands/ns_info.cpp:72 msgid "Online from" msgstr "Is online vanaf" @@ -6623,7 +6603,7 @@ msgstr "Opertype %s ontvangt modes %s eens geïdentificeerd." msgid "Ops protection" msgstr "Ops bescherming" -#: modules/commands/bs_info.cpp:59 src/misc.cpp:259 +#: src/misc.cpp:259 modules/commands/bs_info.cpp:59 msgid "Options" msgstr "Opties" @@ -6790,8 +6770,8 @@ msgstr "Voorkom dat de nick verloopt" msgid "Prevents users being kicked by Services" msgstr "Voorkomt dat gebruikers gekickt worden door