summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/example_new.conf9
-rw-r--r--include/extern.h2
-rw-r--r--src/config.c4
3 files changed, 12 insertions, 3 deletions
diff --git a/data/example_new.conf b/data/example_new.conf
index 129dea7da..1a2275e37 100644
--- a/data/example_new.conf
+++ b/data/example_new.conf
@@ -286,6 +286,15 @@ options {
* directive is optional, but recommended.
*/
badpasslimit = 5
+
+ /*
+ * Sets the time after which invalid passwords are forgotten about. If a user
+ * does not enter any incorrect passwords in this amount of time, the incorrect
+ * password count will reset to zero. If not given, the timeout will be
+ * disabled, and the incorrect password count will never be reset until the user
+ * disconnects. This directive is optional.
+ */
+ badpasstimeout = 1h
}
/*
diff --git a/include/extern.h b/include/extern.h
index 6e3495ece..f794be649 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -286,7 +286,7 @@ E char *NewsDBName;
E bool NoBackupOkay;
E bool StrictPasswords;
E int BadPassLimit;
-E int BadPassTimeout;
+E time_t BadPassTimeout;
E int UpdateTimeout;
E int ExpireTimeout;
E int ReadTimeout;
diff --git a/src/config.c b/src/config.c
index b57ddc683..7f1641e95 100644
--- a/src/config.c
+++ b/src/config.c
@@ -88,7 +88,7 @@ int HostNumber = 0; /* needs to be set to 0 */
bool NoBackupOkay;
bool StrictPasswords;
int BadPassLimit;
-int BadPassTimeout;
+time_t BadPassTimeout;
int UpdateTimeout;
int ExpireTimeout;
int ReadTimeout;
@@ -641,6 +641,7 @@ int ServerConfig::Read(bool bail)
{"options", "nobackupokay", "no", new ValueContainerBool(&NoBackupOkay), DT_BOOLEAN, NoValidation},
{"options", "strictpasswords", "no", new ValueContainerBool(&StrictPasswords), DT_BOOLEAN, NoValidation},
{"options", "badpasslimit", "0", new ValueContainerInt(&BadPassLimit), DT_INTEGER, NoValidation},
+ {"options", "badpasstimeout", "0", new ValueContainerTime(&BadPassTimeout), DT_TIME, NoValidation},
{"nickserv", "nick", "NickServ", new ValueContainerChar(&s_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"nickserv", "description", "Nickname Registration Service", new ValueContainerChar(&desc_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{"nickserv", "database", "nick.db", new ValueContainerChar(&NickDBName), DT_CHARPTR, ValidateNotEmpty},
@@ -1352,7 +1353,6 @@ bool ValueItem::GetBool()
/*************************************************************************/
Directive directives[] = {
- {"BadPassTimeout", {{PARAM_TIME, PARAM_RELOAD, &BadPassTimeout}}},
{"DumpCore", {{PARAM_SET, 0, &DumpCore}}},
{"ExpireTimeout", {{PARAM_TIME, PARAM_RELOAD, &ExpireTimeout}}},
{"ForceForbidReason", {{PARAM_SET, PARAM_RELOAD, &ForceForbidReason}}},