diff --git a/ChangeLog.txt b/ChangeLog.txt
index da32add2..770a3003 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -80,6 +80,7 @@ Broker:
- Add `listener_auto_id_prefix` option.
- Add support for systemd watchdog.
- Remove support for TLS v1.1.
+- Allow seconds when defining persistent_client_expiration.
Plugins / plugin interface:
- Add persist-sqlite plugin.
diff --git a/man/mosquitto.conf.5.xml b/man/mosquitto.conf.5.xml
index c6aa7aed..678a8585 100644
--- a/man/mosquitto.conf.5.xml
+++ b/man/mosquitto.conf.5.xml
@@ -1019,16 +1019,26 @@ log_timestamp_format %Y-%m-%dT%H:%M:%S
removed if they do not reconnect within a certain time frame.
- The expiration period should be an integer followed
- by one of h d w m y for hour, day, week, month and year
- respectively. For example:
+
+ The expiration period should be an integer followed
+ by one of s h d w m y for second, hour, day, week, month and year
+ respectively. For example:
+
persistent_client_expiration 2m
persistent_client_expiration 14d
persistent_client_expiration 1y
- As this is a non-standard option, the default if not
- set is to never expire persistent clients.
+
+ Although it is possible to specify the expiration time in seconds, this is not a
+ suggestion that you should use a short expiration interval. If you have a system
+ where you think the clients should be automatically expired in a short time you
+ should see about fixing the clients instead where possible.
+
+
+ As this is a non-standard option, the default if not
+ set is to never expire persistent clients.
+
This option applies globally.
diff --git a/src/conf.c b/src/conf.c
index d62c0864..383c679a 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -2090,6 +2090,9 @@ static int config__read_file_core(struct mosquitto__config *config, bool reload,
time_t expiration_mult;
switch(token[strlen(token)-1]){
+ case 's':
+ expiration_mult = 1;
+ break;
case 'h':
expiration_mult = 3600;
break;