return server;
}
+void
+ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *svr)
+{
+ struct shash_node *node, *next;
+
+ SHASH_FOR_EACH_SAFE (node, next, &svr->remotes) {
+ ovsdb_jsonrpc_server_del_remote(node);
+ }
+ shash_destroy(&svr->remotes);
+ free(svr);
+}
+
/* Sets 'svr''s current set of remotes to the names in 'new_remotes'. The data
* values in 'new_remotes' are ignored.
*
static void
ovsdb_jsonrpc_session_close(struct ovsdb_jsonrpc_session *s)
{
+ ovsdb_jsonrpc_monitor_remove_all(s);
jsonrpc_session_close(s->js);
list_remove(&s->node);
s->remote->server->n_sessions--;
+ free(s);
}
static int
ovsdb_jsonrpc_trigger_create(s, request->id, request->params);
request->id = NULL;
request->params = NULL;
+ jsonrpc_msg_destroy(request);
return NULL;
}