Fix reconnect delay backoff behaviour.

Closes #1027. Thanks to Harm Verhagen.

Bug: https://github.com/eclipse/mosquitto/issues/1027
pull/1077/head
Roger A. Light 7 years ago
parent e169f1c7c2
commit 5d02f58151

@ -10,6 +10,9 @@ Broker:
because this can lead to confusing "Protocol not supported" errors if the
network is down. Closes #1062.
Library:
- Fix reconnect delay backoff behaviour. Closes #1027.
Client:
- Always print leading zeros in mosquitto_sub when output format is hex.
Closes #1066.

@ -245,8 +245,12 @@ int mosquitto_loop_forever(struct mosquitto *mosq, int timeout, int max_packets)
}else{
pthread_mutex_unlock(&mosq->state_mutex);
if(mosq->reconnect_delay > 0 && mosq->reconnect_exponential_backoff){
reconnect_delay = mosq->reconnect_delay*reconnects*reconnects;
if(mosq->reconnect_delay_max > mosq->reconnect_delay){
if(mosq->reconnect_exponential_backoff){
reconnect_delay = mosq->reconnect_delay*(reconnects+1)*(reconnects+1);
}else{
reconnect_delay = mosq->reconnect_delay*(reconnects+1);
}
}else{
reconnect_delay = mosq->reconnect_delay;
}

@ -76,6 +76,8 @@ int mosquitto_reconnect_delay_set(struct mosquitto *mosq, unsigned int reconnect
{
if(!mosq) return MOSQ_ERR_INVAL;
if(reconnect_delay == 0) reconnect_delay = 1;
mosq->reconnect_delay = reconnect_delay;
mosq->reconnect_delay_max = reconnect_delay_max;
mosq->reconnect_exponential_backoff = reconnect_exponential_backoff;

Loading…
Cancel
Save