diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/commands.cpp | 2 | ||||
-rw-r--r-- | src/config.cpp | 5 | ||||
-rw-r--r-- | src/mail.cpp | 21 | ||||
-rw-r--r-- | src/main.cpp | 1 | ||||
-rw-r--r-- | src/misc.cpp | 43 | ||||
-rw-r--r-- | src/nickalias.cpp | 19 | ||||
-rw-r--r-- | src/nickserv.cpp | 32 | ||||
-rw-r--r-- | src/users.cpp | 3 |
8 files changed, 9 insertions, 117 deletions
diff --git a/src/commands.cpp b/src/commands.cpp index 425c72671..00fe6574c 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -65,7 +65,7 @@ void mod_run_cmd(BotInfo *bi, User *u, ChannelInfo *ci, Command *c, const Anope: // Command requires registered users only if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !u->IsIdentified()) { - u->SendMessage(bi, _(_(NICK_IDENTIFY_REQUIRED)), Config->s_NickServ.c_str()); + u->SendMessage(bi, _(NICK_IDENTIFY_REQUIRED), Config->s_NickServ.c_str()); Log(LOG_COMMAND, "denied", bi) << "Access denied for unregistered user " << u->GetMask() << " with command " << command; PopLanguage(); return; diff --git a/src/config.cpp b/src/config.cpp index cc0879936..ae8ccfc8c 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -480,7 +480,7 @@ bool ValidateEmailReg(ServerConfig *config, const Anope::string &tag, const Anop { if (config->NSEmailReg) { - if (value.equals_ci("preregexpire")) + if (value.equals_ci("unconfirmedexpire")) { if (!data.GetInteger() && !dotime(data.GetValue())) throw ConfigException("The value for <" + tag + ":" + value + "> must be non-zero when e-mail registration are enabled!"); @@ -1070,6 +1070,7 @@ void ServerConfig::Read() {"nickserv", "emailregistration", "no", new ValueContainerBool(&this->NSEmailReg), DT_BOOLEAN, NoValidation}, {"nickserv", "modules", "", new ValueContainerString(&NickCoreModules), DT_STRING, NoValidation}, {"nickserv", "forceemail", "no", new ValueContainerBool(&this->NSForceEmail), DT_BOOLEAN, ValidateEmailReg}, + {"nickserv", "confirmemailchanges", "no", new ValueContainerBool(&this->NSConfirmEmailChanges), DT_BOOLEAN, NoValidation}, {"nickserv", "defaults", "secure memosignon memoreceive", new ValueContainerString(&NSDefaults), DT_STRING, NoValidation}, {"nickserv", "languages", "", new ValueContainerString(&this->Languages), DT_STRING, NoValidation}, {"nickserv", "defaultlanguage", "0", new ValueContainerString(&this->NSDefLanguage), DT_STRING, NoValidation}, @@ -1078,7 +1079,7 @@ void ServerConfig::Read() {"nickserv", "expire", "21d", new ValueContainerTime(&this->NSExpire), DT_TIME, NoValidation}, {"nickserv", "suspendexpire", "0", new ValueContainerTime(&this->NSSuspendExpire), DT_TIME, NoValidation}, {"nickserv", "forbidexpire", "0", new ValueContainerTime(&this->NSForbidExpire), DT_TIME, NoValidation}, - {"nickserv", "preregexpire", "0", new ValueContainerTime(&this->NSRExpire), DT_TIME, ValidateEmailReg}, + {"nickserv", "unconfirmedexpire", "0", new ValueContainerTime(&this->NSUnconfirmedExpire), DT_TIME, ValidateEmailReg}, {"nickserv", "maxaliases", "0", new ValueContainerUInt(&this->NSMaxAliases), DT_UINTEGER, NoValidation}, {"nickserv", "accessmax", "0", new ValueContainerUInt(&this->NSAccessMax), DT_UINTEGER, ValidateNotZero}, {"nickserv", "enforceruser", "", new ValueContainerString(&temp_nsuserhost), DT_STRING, ValidateNotEmpty}, diff --git a/src/mail.cpp b/src/mail.cpp index 3a07f7e49..58a0ddac8 100644 --- a/src/mail.cpp +++ b/src/mail.cpp @@ -37,27 +37,6 @@ void MailThread::Run() SetExitState(); } -bool Mail(User *u, NickRequest *nr, BotInfo *service, const Anope::string &subject, const Anope::string &message) -{ - if (!u || !nr || !service || subject.empty() || message.empty()) - return false; - - if (!Config->UseMail) - u->SendMessage(service, _("Services have been configured to not send mail.")); - else if (Anope::CurTime - u->lastmail < Config->MailDelay) - u->SendMessage(service, _("Please wait \002%d\002 seconds and retry."), Config->MailDelay - Anope::CurTime - u->lastmail); - else if (nr->email.empty()) - u->SendMessage(service, _("E-mail for \002%s\002 is invalid."), nr->nick.c_str()); - else - { - u->lastmail = nr->lastmail = Anope::CurTime; - threadEngine.Start(new MailThread(nr->nick, nr->email, subject, message)); - return true; - } - - return false; -} - bool Mail(User *u, NickCore *nc, BotInfo *service, const Anope::string &subject, const Anope::string &message) { if (!u || !nc || !service || subject.empty() || message.empty()) diff --git a/src/main.cpp b/src/main.cpp index c59fe7829..563262195 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -137,7 +137,6 @@ extern void expire_all() Log(LOG_DEBUG) << "Running expire routines"; expire_nicks(); expire_chans(); - expire_requests(); expire_exceptions(); FOREACH_MOD(I_OnDatabaseExpire, OnDatabaseExpire()); diff --git a/src/misc.cpp b/src/misc.cpp index 9efacf314..0ad233402 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -69,43 +69,6 @@ int tolower(char c) /*************************************************************************/ -/** - * merge_args: Take an argument count and argument vector and merge them - * into a single string in which each argument is separated by - * a space. - * @param int Number of Args - * @param argv Array - * @return string of the merged array - */ -const char *merge_args(int argc, const char **argv) -{ - int i; - static char s[4096]; - char *t; - - t = s; - for (i = 0; i < argc; ++i) - t += snprintf(t, sizeof(s) - (t - s), "%s%s", *argv++, i < argc - 1 ? " " : ""); - return s; -} - -/* - * XXX: temporary "safe" version to avoid casting, it's still ugly. - */ -const char *merge_args(int argc, char **argv) -{ - int i; - static char s[4096]; - char *t; - - t = s; - for (i = 0; i < argc; ++i) - t += snprintf(t, sizeof(s) - (t - s), "%s%s", *argv++, i < argc - 1 ? " " : ""); - return s; -} - -/*************************************************************************/ - NumberList::NumberList(const Anope::string &list, bool descending) : is_valid(true), desc(descending) { Anope::string error; @@ -839,12 +802,12 @@ bool Anope::Match(const Anope::string &str, const Anope::string &mask, bool case * @param ... any number of parameters * @return a Anope::string */ -Anope::string Anope::printf(const char *fmt, ...) +Anope::string Anope::printf(const Anope::string &fmt, ...) { va_list args; char buf[1024]; - va_start(args, fmt); - vsnprintf(buf, sizeof(buf), fmt, args); + va_start(args, fmt.c_str()); + vsnprintf(buf, sizeof(buf), fmt.c_str(), args); va_end(args); return buf; } diff --git a/src/nickalias.cpp b/src/nickalias.cpp index 258e46a07..b82e27ce6 100644 --- a/src/nickalias.cpp +++ b/src/nickalias.cpp @@ -1,25 +1,6 @@ #include "services.h" #include "modules.h" -NickRequest::NickRequest(const Anope::string &nickname) -{ - if (nickname.empty()) - throw CoreException("Empty nick passed to NickRequest constructor"); - - this->requested = this->lastmail = 0; - - this->nick = nickname; - - NickRequestList[this->nick] = this; -} - -NickRequest::~NickRequest() -{ - FOREACH_MOD(I_OnDelNickRequest, OnDelNickRequest(this)); - - NickRequestList.erase(this->nick); -} - /** Default constructor * @param nick The nick * @param nickcore The nickcofe for this nick diff --git a/src/nickserv.cpp b/src/nickserv.cpp index 4a45e6ce2..e12673d08 100644 --- a/src/nickserv.cpp +++ b/src/nickserv.cpp @@ -14,7 +14,6 @@ nickalias_map NickAliasList; nickcore_map NickCoreList; -nickrequest_map NickRequestList; typedef std::map<Anope::string, NickServCollide *> nickservcollides_map; typedef std::map<Anope::string, NickServRelease *> nickservreleases_map; @@ -169,13 +168,6 @@ void ns_init() int validate_user(User *u) { - NickRequest *nr = findrequestnick(u->nick); - if (nr) - { - u->SendMessage(NickServ, _(NICK_IS_PREREG)); - return 0; - } - NickAlias *na = findnick(u->nick); if (!na) return 0; @@ -291,32 +283,8 @@ void expire_nicks() } } -void expire_requests() -{ - for (nickrequest_map::const_iterator it = NickRequestList.begin(), it_end = NickRequestList.end(); it != it_end; ) - { - NickRequest *nr = it->second; - ++it; - - if (Config->NSRExpire && Anope::CurTime - nr->requested >= Config->NSRExpire) - { - Log(LOG_NORMAL, "expire") << "Request for nick " << nr->nick << " expiring"; - delete nr; - } - } -} - /*************************************************************************/ -NickRequest *findrequestnick(const Anope::string &nick) -{ - nickrequest_map::const_iterator it = NickRequestList.find(nick); - - if (it != NickRequestList.end()) - return it->second; - return NULL; -} - NickAlias *findnick(const Anope::string &nick) { FOREACH_MOD(I_OnFindNick, OnFindNick(nick)); diff --git a/src/users.cpp b/src/users.cpp index fa486935f..a11e1b5ce 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -806,7 +806,8 @@ User *do_nick(const Anope::string &source, const Anope::string &nick, const Anop user->UpdateHost(); do_on_id(user); ircdproto->SetAutoIdentificationToken(user); - user->SetMode(NickServ, UMODE_REGISTERED); + if (na->nc->HasFlag(NI_UNCONFIRMED) == false) + user->SetMode(NickServ, UMODE_REGISTERED); Log(NickServ) << user->GetMask() << " automatically identified for group " << user->Account()->display; } |