ovsdb-idlc: Fix parsing of "ephemeral" member of "column".
[openvswitch] / ovsdb / jsonrpc-server.c
index fc8b194e9ff59b6084182735818e11ab8388f7f5..1c08a10f398f13135fe4fc5ebe63eb0ce154db6e 100644 (file)
@@ -89,23 +89,15 @@ ovsdb_jsonrpc_server_create(struct ovsdb *db)
     return server;
 }
 
-int
-ovsdb_jsonrpc_server_listen(struct ovsdb_jsonrpc_server *svr, const char *name)
+void
+ovsdb_jsonrpc_server_listen(struct ovsdb_jsonrpc_server *svr,
+                            struct pstream *pstream)
 {
-    struct pstream *pstream;
-    int error;
-
-    error = pstream_open(name, &pstream);
-    if (error) {
-        return error;
-    }
-
     if (svr->n_listeners >= svr->allocated_listeners) {
         svr->listeners = x2nrealloc(svr->listeners, &svr->allocated_listeners,
                                     sizeof *svr->listeners);
     }
     svr->listeners[svr->n_listeners++] = pstream;
-    return 0;
 }
 
 void
@@ -330,7 +322,7 @@ ovsdb_jsonrpc_session_run(struct ovsdb_jsonrpc_session *s)
             struct jsonrpc_msg *request;
 
             params = json_array_create_empty();
-            request = jsonrpc_create_request("echo", params);
+            request = jsonrpc_create_request("echo", params, NULL);
             json_destroy(request->id);
             request->id = json_string_create("echo");
             jsonrpc_send(s->rpc, request);
@@ -714,7 +706,9 @@ ovsdb_jsonrpc_monitor_create(struct ovsdb_jsonrpc_session *s,
     return ovsdb_jsonrpc_monitor_get_initial(m);
 
 error:
-    ovsdb_remove_replica(s->server->db, &m->replica);
+    if (m) {
+        ovsdb_remove_replica(s->server->db, &m->replica);
+    }
 
     json = ovsdb_error_to_json(error);
     ovsdb_error_destroy(error);