rc->questionable_connectivity = false;
rc->last_questioned = time_now();
- rc->probe_interval = probe_interval ? MAX(5, probe_interval) : 0;
+ rconn_set_probe_interval(rc, probe_interval);
rc->n_monitors = 0;
return rc;
}
+void
+rconn_set_max_backoff(struct rconn *rc, int max_backoff)
+{
+ rc->max_backoff = max_backoff ? max_backoff : 60;
+ if (rc->state == S_BACKOFF && rc->backoff > max_backoff) {
+ rc->backoff = max_backoff;
+ if (rc->backoff_deadline > time_now() + max_backoff) {
+ rc->backoff_deadline = time_now() + max_backoff;
+ }
+ }
+}
+
+int
+rconn_get_max_backoff(const struct rconn *rc)
+{
+ return rc->max_backoff;
+}
+
+void
+rconn_set_probe_interval(struct rconn *rc, int probe_interval)
+{
+ rc->probe_interval = probe_interval ? MAX(5, probe_interval) : 0;
+}
+
+int
+rconn_get_probe_interval(const struct rconn *rc)
+{
+ return rc->probe_interval;
+}
+
int
rconn_connect(struct rconn *rc, const char *name)
{
int inactivity_probe_interval, int max_backoff);
struct rconn *rconn_new_from_vconn(const char *name, struct vconn *);
struct rconn *rconn_create(int inactivity_probe_interval, int max_backoff);
+
+void rconn_set_max_backoff(struct rconn *, int max_backoff);
+int rconn_get_max_backoff(const struct rconn *);
+void rconn_set_probe_interval(struct rconn *, int inactivity_probe_interval);
+int rconn_get_probe_interval(const struct rconn *);
+
int rconn_connect(struct rconn *, const char *name);
void rconn_connect_unreliably(struct rconn *,
const char *name, struct vconn *vconn);