ovsdbmonitor: Put temporary file in ovsdb/ovsdbmonitor directory.
[openvswitch] / ovsdb / ovsdb-client.c
index da7faf61aa18b95451ff8e2c8b5848a3a61ed7a6..7177b2614c9893e77d852a1f419f60bf2f11ab30 100644 (file)
@@ -224,11 +224,11 @@ open_jsonrpc(const char *server)
     struct stream *stream;
     int error;
 
-    error = stream_open_block(server, &stream);
+    error = stream_open_block(jsonrpc_stream_open(server, &stream), &stream);
     if (error == EAFNOSUPPORT) {
         struct pstream *pstream;
 
-        error = pstream_open(server, &pstream);
+        error = jsonrpc_pstream_open(server, &pstream);
         if (error) {
             ovs_fatal(error, "failed to connect or listen to \"%s\"", server);
         }
@@ -917,14 +917,22 @@ do_monitor(int argc, char *argv[])
             ovsdb_column_set_add(&columns, column);
         }
     } else {
-        struct shash_node *node;
-
-        SHASH_FOR_EACH (node, &table->columns) {
-            const struct ovsdb_column *column = node->data;
-            if (column->index != OVSDB_COL_UUID) {
+        const struct shash_node **nodes;
+        size_t i, n;
+
+        n = shash_count(&table->columns);
+        nodes = shash_sort(&table->columns);
+        for (i = 0; i < n; i++) {
+            const struct ovsdb_column *column = nodes[i]->data;
+            if (column->index != OVSDB_COL_UUID
+                && column->index != OVSDB_COL_VERSION) {
                 ovsdb_column_set_add(&columns, column);
             }
         }
+        free(nodes);
+
+        ovsdb_column_set_add(&columns,
+                             ovsdb_table_schema_get_column(table, "_version"));
     }
 
     if (argc >= 6 && *argv[5] != '\0') {