#include "daemon.h"
#include "dirs.h"
#include "dynamic-string.h"
+#include "process.h"
#include "timeval.h"
#include "unixctl.h"
#include "util.h"
{
struct unixctl_client *client;
const char *target;
- struct ds request;
int code, error;
+ char *request;
char *reply;
- int i;
set_program_name(argv[0]);
target = parse_command_line(argc, argv);
client = connect_to_target(target);
- /* Compose request. */
- ds_init(&request);
- for (i = optind; i < argc; i++) {
- if (i != optind) {
- ds_put_char(&request, ' ');
- }
- ds_put_cstr(&request, argv[i]);
- }
-
/* Transact request and process reply. */
- error = unixctl_client_transact(client, ds_cstr(&request), &code, &reply);
+ request = process_escape_args(argv + optind);
+ error = unixctl_client_transact(client, request, &code, &reply);
+ free(request);
if (error) {
ovs_fatal(error, "%s: transaction error", target);
}
unixctl_client_destroy(client);
free(reply);
- ds_destroy(&request);
return 0;
}
-t, --target=TARGET pidfile or socket to contact\n\
Common commands:\n\
help List commands supported by the target\n\
+ version Print version of the target\n\
vlog/list List current logging levels\n\
vlog/set MODULE[:FACILITY[:LEVEL]]\n\
Set MODULE and FACILITY log level to LEVEL\n\
vlog/reopen Make the program reopen its log file\n\
Other options:\n\
-h, --help Print this helpful information\n\
- -V, --version Display version information\n",
+ -V, --version Display ovs-appctl version information\n",
program_name, program_name);
exit(EXIT_SUCCESS);
}