summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-08-31 13:38:03 -0700
committerGarrett D'Amore <garrett@damore.org>2018-08-31 13:38:03 -0700
commit1b2a93503e0ed108f7c4add4bcf4b201a363bb80 (patch)
treea1a824f99e7a09c2ba90a72a4dd5134a67195b3e /src
parent49c8c264057c4c7b0f9ff45f352168cb1deeb1a1 (diff)
downloadnng-1b2a93503e0ed108f7c4add4bcf4b201a363bb80.tar.gz
nng-1b2a93503e0ed108f7c4add4bcf4b201a363bb80.tar.bz2
nng-1b2a93503e0ed108f7c4add4bcf4b201a363bb80.zip
fixes #693 Failed dial results in hard spin
Diffstat (limited to 'src')
-rw-r--r--src/core/dialer.c3
-rw-r--r--src/core/socket.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/core/dialer.c b/src/core/dialer.c
index b76bff6d..00ebb513 100644
--- a/src/core/dialer.c
+++ b/src/core/dialer.c
@@ -328,6 +328,9 @@ nni_dialer_setopt(nni_dialer *d, const char *name, const void *val, size_t sz,
int rv;
nni_mtx_lock(&d->d_mtx);
rv = nni_copyin_ms(&d->d_inirtime, val, sz, t);
+ if (rv == 0) {
+ d->d_currtime = d->d_inirtime;
+ }
nni_mtx_unlock(&d->d_mtx);
return (rv);
}
diff --git a/src/core/socket.c b/src/core/socket.c
index becd9b55..b2f331fb 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -1355,7 +1355,7 @@ dialer_timer_start_locked(nni_dialer *d)
}
backoff = d->d_currtime;
d->d_currtime *= 2;
- if (d->d_currtime > d->d_maxrtime) {
+ if ((d->d_maxrtime > 0) && (d->d_currtime > d->d_maxrtime)) {
d->d_currtime = d->d_maxrtime;
}