unixctl: Fix comment on unixctl_command_register().
[sliver-openvswitch.git] / lib / unixctl.c
index 054ce49..8686de3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -95,13 +95,13 @@ unixctl_version(struct unixctl_conn *conn, int argc OVS_UNUSED,
  * arguments to the command; it is used only for presentation to the user in
  * "help" output.
  *
- * 'cb' is called when the command is received.  It is passed the actual set of
- * arguments, as a text string, plus a copy of 'aux'.  Normally 'cb' should
- * reply by calling unixctl_command_reply() or unixctl_command_reply_error()
- * before it returns, but if the command cannot be handled immediately then it
- * can defer the reply until later.  A given connection can only process a
- * single request at a time, so a reply must be made eventually to avoid
- * blocking that connection. */
+ * 'cb' is called when the command is received.  It is passed an array
+ * containing the command name and arguments, plus a copy of 'aux'.  Normally
+ * 'cb' should reply by calling unixctl_command_reply() or
+ * unixctl_command_reply_error() before it returns, but if the command cannot
+ * be handled immediately then it can defer the reply until later.  A given
+ * connection can only process a single request at a time, so a reply must be
+ * made eventually to avoid blocking that connection. */
 void
 unixctl_command_register(const char *name, const char *usage,
                          int min_args, int max_args,
@@ -221,13 +221,10 @@ unixctl_server_create(const char *path, struct unixctl_server **serverp)
                                program_name, (long int) getpid());
     }
 
-    error = pstream_open(punix_path, &listener);
-    free(punix_path);
-    punix_path = NULL;
-
+    error = pstream_open(punix_path, &listener, 0);
     if (error) {
-        ovs_error(error, "could not initialize control socket %s", path);
-        return error;
+        ovs_error(error, "could not initialize control socket %s", punix_path);
+        goto exit;
     }
 
     unixctl_command_register("help", "", 0, 0, unixctl_help, NULL);
@@ -237,7 +234,10 @@ unixctl_server_create(const char *path, struct unixctl_server **serverp)
     server->listener = listener;
     list_init(&server->conns);
     *serverp = server;
-    return 0;
+
+exit:
+    free(punix_path);
+    return error;
 }
 
 static void
@@ -422,7 +422,8 @@ unixctl_client_create(const char *path, struct jsonrpc **client)
 
     abs_path = abs_file_name(ovs_rundir(), path);
     unix_path = xasprintf("unix:%s", abs_path);
-    error = stream_open_block(stream_open(unix_path, &stream), &stream);
+    error = stream_open_block(stream_open(unix_path, &stream, DSCP_DEFAULT),
+                              &stream);
     free(unix_path);
     free(abs_path);