summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2017-04-06 11:20:06 -0400
committerAdam <Adam@anope.org>2017-04-06 11:20:06 -0400
commit805ea3869c33889de3695c580b85e10d9a4bc147 (patch)
tree50fc994ac99611762bd77d6d10fe88a40e058be0
parent2a886acbedb6b6386dbff3e591b0d4035d516b2a (diff)
Move nc->lastmail to a field
-rw-r--r--include/modules/nickserv/account.h6
-rw-r--r--modules/nickserv/main/account.cpp9
-rw-r--r--modules/nickserv/main/account.h4
-rw-r--r--modules/nickserv/main/accounttype.cpp1
-rw-r--r--modules/nickserv/main/accounttype.h1
-rw-r--r--modules/nickserv/register.cpp4
-rw-r--r--src/mail.cpp7
7 files changed, 24 insertions, 8 deletions
diff --git a/include/modules/nickserv/account.h b/include/modules/nickserv/account.h
index ebe1061b6..8dc5ad7c8 100644
--- a/include/modules/nickserv/account.h
+++ b/include/modules/nickserv/account.h
@@ -30,9 +30,6 @@ class CoreExport Account : public Serialize::Object
public:
static constexpr const char *const NAME = "account";
-#warning "move lastmail to a field"
- /* Last time an email was sent to this user */
- time_t lastmail = 0;
/* Users online now logged into this account */
std::vector<User *> users;
@@ -120,6 +117,9 @@ class CoreExport Account : public Serialize::Object
virtual MemoServ::MemoInfo *GetMemos() anope_abstract;
virtual unsigned int GetChannelCount() anope_abstract;
+
+ virtual time_t GetLastMail() anope_abstract;
+ virtual void SetLastMail(time_t) anope_abstract;
};
} // namespace NickServ
diff --git a/modules/nickserv/main/account.cpp b/modules/nickserv/main/account.cpp
index 86c96b14f..9200bc1f7 100644
--- a/modules/nickserv/main/account.cpp
+++ b/modules/nickserv/main/account.cpp
@@ -314,3 +314,12 @@ unsigned int AccountImpl::GetChannelCount()
return i;
}
+time_t AccountImpl::GetLastMail()
+{
+ return Get(&AccountType::last_mail);
+}
+
+void AccountImpl::SetLastMail(time_t lastmail)
+{
+ Set(&AccountType::last_mail, lastmail);
+}
diff --git a/modules/nickserv/main/account.h b/modules/nickserv/main/account.h
index ba07a2a13..6cb65e759 100644
--- a/modules/nickserv/main/account.h
+++ b/modules/nickserv/main/account.h
@@ -37,6 +37,7 @@ class AccountImpl : public NickServ::Account
Serialize::Storage<bool> secure;
Serialize::Storage<bool> memosignon, memoreceive, memomail;
Serialize::Storage<bool> hideemail, hidemask, hidestatus, hidequit;
+ Serialize::Storage<time_t> lastmail;
public:
using NickServ::Account::Account;
@@ -116,4 +117,7 @@ class AccountImpl : public NickServ::Account
void SetDisplay(NickServ::Nick *na) override;
bool IsOnAccess(User *u) override;
unsigned int GetChannelCount() override;
+
+ time_t GetLastMail() override;
+ void SetLastMail(time_t) override;
};
diff --git a/modules/nickserv/main/accounttype.cpp b/modules/nickserv/main/accounttype.cpp
index ccc02726a..e6509694f 100644
--- a/modules/nickserv/main/accounttype.cpp
+++ b/modules/nickserv/main/accounttype.cpp
@@ -43,6 +43,7 @@ AccountType::AccountType(Module *me) : Serialize::Type<AccountImpl>(me)
, hidemask(this, "hide_mask", &AccountImpl::hidemask)
, hidestatus(this, "hide_status", &AccountImpl::hidestatus)
, hidequit(this, "hide_quit", &AccountImpl::hidequit)
+ , last_mail(this, "last_mail", &AccountImpl::lastmail)
{
}
diff --git a/modules/nickserv/main/accounttype.h b/modules/nickserv/main/accounttype.h
index f8d6a31a5..f749a5430 100644
--- a/modules/nickserv/main/accounttype.h
+++ b/modules/nickserv/main/accounttype.h
@@ -39,6 +39,7 @@ class AccountType : public Serialize::Type<AccountImpl>
Serialize::Field<AccountImpl, bool> unconfirmed, _private, autoop, keepmodes,
killprotect, killquick, killimmed, msg, secure, memosignon, memoreceive,
memomail, hideemail, hidemask, hidestatus, hidequit;
+ Serialize::Field<AccountImpl, time_t> last_mail;
AccountType(Module *);
diff --git a/modules/nickserv/register.cpp b/modules/nickserv/register.cpp
index cb6f85dc5..13c18e0b3 100644
--- a/modules/nickserv/register.cpp
+++ b/modules/nickserv/register.cpp
@@ -339,7 +339,7 @@ class CommandNSResend : public Command
return;
}
- if (Anope::CurTime < source.nc->lastmail + Config->GetModule(this->GetOwner())->Get<time_t>("resenddelay"))
+ if (Anope::CurTime < source.nc->GetLastMail() + Config->GetModule(this->GetOwner())->Get<time_t>("resenddelay"))
{
source.Reply(_("Cannot send mail now; please retry a little later."));
return;
@@ -351,7 +351,7 @@ class CommandNSResend : public Command
return;
}
- na->GetAccount()->lastmail = Anope::CurTime;
+ na->GetAccount()->SetLastMail(Anope::CurTime);
source.Reply(_("Your passcode has been re-sent to \002{0}\002."), na->GetAccount()->GetEmail());
logger.Command(LogType::COMMAND, source, _("{source} used {command} to resend registration verification code"));
}
diff --git a/src/mail.cpp b/src/mail.cpp
index 51068178d..619180520 100644
--- a/src/mail.cpp
+++ b/src/mail.cpp
@@ -75,7 +75,7 @@ bool Mail::Send(User *u, NickServ::Account *nc, ServiceBot *service, const Anope
else if (nc->GetEmail().empty())
return false;
- nc->lastmail = Anope::CurTime;
+ nc->SetLastMail(Anope::CurTime);
Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message);
t->Start();
return true;
@@ -90,7 +90,8 @@ bool Mail::Send(User *u, NickServ::Account *nc, ServiceBot *service, const Anope
u->SendMessage(service, _("E-mail for \002%s\002 is invalid."), nc->GetDisplay().c_str());
else
{
- u->lastmail = nc->lastmail = Anope::CurTime;
+ u->lastmail = Anope::CurTime;
+ nc->SetLastMail(Anope::CurTime);
Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message);
t->Start();
return true;
@@ -106,7 +107,7 @@ bool Mail::Send(NickServ::Account *nc, const Anope::string &subject, const Anope
if (!b->Get<bool>("usemail") || b->Get<Anope::string>("sendfrom").empty() || !nc || nc->GetEmail().empty() || subject.empty() || message.empty())
return false;
- nc->lastmail = Anope::CurTime;
+ nc->SetLastMail(Anope::CurTime);
Thread *t = new Mail::Message(b->Get<Anope::string>("sendfrom"), nc->GetDisplay(), nc->GetEmail(), subject, message);
t->Start();