diff options
-rw-r--r-- | src/modbuslog.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/modbuslog.c b/src/modbuslog.c index d967e4a..cb509ea 100644 --- a/src/modbuslog.c +++ b/src/modbuslog.c @@ -268,10 +268,12 @@ int main(int argc, char *argv[]) { if (rc == -1) { syslog(LOG_ERR, "libmodbus error: [%s]", modbus_strerror(errno)); - sleep(1); + // back off for 2 secs, increasing by 2 for each + // incorrect reply + sleep(2+retry*2); } retry++; - } while ((rc == -1) && (retry < (modbus_retry + 1))); + } while ((rc == -1) && (retry <= modbus_retry)); if (rc == -1){ // retried, but still no luck |