[ovs-dev] [PATCH monitor_cond 09/12] ovsdb: look for monitor id on all jsonrpc monitor sessions

Liran Schour lirans at il.ibm.com
Tue Jan 5 13:14:02 UTC 2016


That will be used later to issue "monitor_cond_change" command.

Signed-off-by: Liran Schour <lirans at il.ibm.com>
---
 ovsdb/jsonrpc-server.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c
index ecaf379..2b7b4d1 100644
--- a/ovsdb/jsonrpc-server.c
+++ b/ovsdb/jsonrpc-server.c
@@ -1071,12 +1071,21 @@ static struct ovsdb_jsonrpc_monitor *
 ovsdb_jsonrpc_monitor_find(struct ovsdb_jsonrpc_session *s,
                            const struct json *monitor_id)
 {
+    struct ovsdb_jsonrpc_server *svr = s->remote->server;
     struct ovsdb_jsonrpc_monitor *m;
+    struct shash_node *node;
 
-    HMAP_FOR_EACH_WITH_HASH (m, node, json_hash(monitor_id, 0), &s->monitors) {
-        if (json_equal(m->monitor_id, monitor_id)) {
-            return m;
-        }
+    SHASH_FOR_EACH (node, &svr->remotes) {
+        struct ovsdb_jsonrpc_remote *remote = node->data;
+
+	LIST_FOR_EACH (s, node, &remote->sessions) {
+	    HMAP_FOR_EACH_WITH_HASH (m, node,
+                                     json_hash(monitor_id, 0), &s->monitors) {
+		if (json_equal(m->monitor_id, monitor_id)) {
+		    return m;
+		}
+	    }
+	}
     }
 
     return NULL;
-- 
2.1.4





More information about the dev mailing list