@@ -1337,6 +1337,15 @@ jsonrpc_session_set_dscp(struct jsonrpc_session *s, uint8_t dscp)
}
}
+void
+jsonrpc_session_set_options(struct jsonrpc_session *s,
+ const struct jsonrpc_session_options *options)
+{
+ jsonrpc_session_set_max_backoff(s, options->max_backoff);
+ jsonrpc_session_set_probe_interval(s, options->probe_interval);
+ jsonrpc_session_set_dscp(s, options->dscp);
+}
+
/* Sets thresholds for send backlog. If send backlog contains more than
* 'max_n_msgs' messages or is larger than 'max_backlog_bytes' bytes,
* connection will be closed (then reconnected, if that feature is enabled). */
@@ -139,6 +139,14 @@ void jsonrpc_session_enable_reconnect(struct jsonrpc_session *);
void jsonrpc_session_force_reconnect(struct jsonrpc_session *);
void jsonrpc_session_reset_backoff(struct jsonrpc_session *);
+struct jsonrpc_session_options {
+ int max_backoff; /* Maximum reconnection backoff, in msec. */
+ int probe_interval; /* Max idle time before probing, in msec. */
+ uint8_t dscp; /* Dscp value for passive connections. */
+};
+
+void jsonrpc_session_set_options(struct jsonrpc_session *,
+ const struct jsonrpc_session_options *);
void jsonrpc_session_set_max_backoff(struct jsonrpc_session *,
int max_backoff);
void jsonrpc_session_set_probe_interval(struct jsonrpc_session *,
It's useful to have a way to update all the JSON-RPC session options all at once and not call 3 separate functions every time. This may also allow the internals of these options to be better abstracted, i.e. allow users to not know what are these options exactly. Signed-off-by: Ilya Maximets <i.maximets@ovn.org> --- lib/jsonrpc.c | 9 +++++++++ lib/jsonrpc.h | 8 ++++++++ 2 files changed, 17 insertions(+)