summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaram Qashat cyberbotx@cyberbotx.com <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-09 23:41:28 +0000
committerNaram Qashat cyberbotx@cyberbotx.com <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-09 23:41:28 +0000
commit93985d17a8f6ac33d4174df2073a2cf79e9b30c5 (patch)
tree934e0cdfa43bc1d1daa701994bb9240147d6fb6e
parent8cf37b7f2e57dc3e75dd7b15e66e3ae2e83e4718 (diff)
Added sendmailpath directive to mail block in new config.
Added ValidateMail function to validate certain mail block config directives only when usemail is enabled. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1622 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--data/example_new.conf15
-rw-r--r--src/config.c13
2 files changed, 25 insertions, 3 deletions
diff --git a/data/example_new.conf b/data/example_new.conf
index 3d021c3bb..a06bf08f6 100644
--- a/data/example_new.conf
+++ b/data/example_new.conf
@@ -222,11 +222,24 @@ mail
{
/*
* If set, this option enables the mail commands in Services. You may choose
- * to disable it if you have no sendmail-compatible mailer installed. While
+ * to disable it if you have no Sendmail-compatible mailer installed. While
* this directive (and entire block) is optional, it is required if the
* nickserv:emailregistration is set to yes.
*/
usemail = yes
+
+ /*
+ * This is the command-line that will be used to call Sendmail to send an
+ * e-mail. It must be called with all the parameters needed to make it
+ * scan the mail input to find the mail recipient; consult your Sendmail
+ * documentation.
+ *
+ * Postfix users must use the compatible sendmail utility provided with
+ * it; this one usually needs no parameters on the command-line. Most
+ * sendmail applications (or replacements of it) require the -t option
+ * to be used.
+ */
+ sendmailpath = "/usr/sbin/sendmail -t"
}
/*
diff --git a/src/config.c b/src/config.c
index 688db97e2..02525e92b 100644
--- a/src/config.c
+++ b/src/config.c
@@ -543,6 +543,16 @@ bool ValidateNickLen(ServerConfig *, const char *, const char *, ValueItem &data
return true;
}
+bool ValidateMail(ServerConfig *, const char *tag, const char *value, ValueItem &data)
+{
+ if (UseMail) {
+ if (static_cast<std::string>(value) == "sendmailpath") {
+ if (!*data.GetString()) throw ConfigException(static_cast<std::string>("The value for <") + tag + ":" + value + "> cannot be empty when e-mail is enabled!");
+ }
+ }
+ return true;
+}
+
void ServerConfig::ReportConfigError(const std::string &errormessage, bool bail)
{
alog("There were errors in your configuration file: %s", errormessage.c_str());
@@ -653,6 +663,7 @@ int ServerConfig::Read(bool bail)
{"nickserv", "nicktracking", "no", new ValueContainerBool(&NSNickTracking), DT_BOOLEAN, NoValidation},
{"nickserv", "addaccessonreg", "no", new ValueContainerBool(&NSAddAccessOnReg), DT_BOOLEAN, NoValidation},
{"mail", "usemail", "no", new ValueContainerBool(&UseMail), DT_BOOLEAN, ValidateEmailReg},
+ {"mail", "sendmailpath", "", new ValueContainerChar(&SendMailPath), DT_CHARPTR, ValidateMail},
{"chanserv", "nick", "ChanServ", new ValueContainerChar(&s_ChanServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"chanserv", "description", "Channel Registration Service", new ValueContainerChar(&desc_ChanServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"chanserv", "database", "chan.db", new ValueContainerChar(&ChanDBName), DT_CHARPTR, ValidateNotEmpty},
@@ -1351,7 +1362,6 @@ Directive directives[] = {
{PARAM_STRING, 0, &RemotePassword3}}},
{"RestrictMail", {{PARAM_SET, PARAM_RELOAD, &RestrictMail}}},
{"RestrictOperNicks", {{PARAM_SET, PARAM_RELOAD, &RestrictOperNicks}}},
- {"SendMailPath", {{PARAM_STRING, PARAM_RELOAD, &SendMailPath}}},
{"SendFrom", {{PARAM_STRING, PARAM_RELOAD, &SendFrom}}},
{"HideStatsO", {{PARAM_SET, PARAM_RELOAD, &HideStatsO}}},
{"GlobalOnCycle", {{PARAM_SET, PARAM_RELOAD, &GlobalOnCycle}}},
@@ -1890,7 +1900,6 @@ int read_config(int reload)
}
if (UseMail) {
- CHECK(SendMailPath);
CHECK(SendFrom);
}