From: Andy Zhou Date: Sun, 15 Mar 2015 23:31:41 +0000 (-0700) Subject: ovsdb-monitor: refactor ovsdb_monitor_create() X-Git-Tag: v2.4.0~126 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=36247a75e9990a7f7ee3c5124852395f33ba1d38 ovsdb-monitor: refactor ovsdb_monitor_create() Add ovsdb_monitor_add_jsonrpc_monitor(). This change will allow ovsdb_monitor to be reference counted. Signed-off-by: Andy Zhou Acked-by: Ben Pfaff --- diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c index 9541f3e76..18d5e3ae2 100644 --- a/ovsdb/monitor.c +++ b/ovsdb/monitor.c @@ -230,12 +230,22 @@ ovsdb_monitor_row_destroy(const struct ovsdb_monitor_table *mt, } } +static void +ovsdb_monitor_add_jsonrpc_monitor(struct ovsdb_monitor *dbmon, + struct ovsdb_jsonrpc_monitor *jsonrpc_monitor) +{ + struct jsonrpc_monitor_node *jm; + + jm = xzalloc(sizeof *jm); + jm->jsonrpc_monitor = jsonrpc_monitor; + list_push_back(&dbmon->jsonrpc_monitors, &jm->node); +} + struct ovsdb_monitor * ovsdb_monitor_create(struct ovsdb *db, struct ovsdb_jsonrpc_monitor *jsonrpc_monitor) { struct ovsdb_monitor *dbmon; - struct jsonrpc_monitor_node *jm; dbmon = xzalloc(sizeof *dbmon); @@ -246,10 +256,7 @@ ovsdb_monitor_create(struct ovsdb *db, dbmon->n_transactions = 0; shash_init(&dbmon->tables); - jm = xzalloc(sizeof *jm); - jm->jsonrpc_monitor = jsonrpc_monitor; - list_push_back(&dbmon->jsonrpc_monitors, &jm->node); - + ovsdb_monitor_add_jsonrpc_monitor(dbmon, jsonrpc_monitor); return dbmon; }