/*
- * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "stream.h"
#include "timeval.h"
#include "util.h"
-#include "vlog.h"
+#include "openvswitch/vlog.h"
OVS_NO_RETURN static void usage(void);
static void parse_options(int argc, char *argv[]);
-static struct command *get_all_commands(void);
+static struct ovs_cmdl_command *get_all_commands(void);
static void
test_jsonrpc_main(int argc, char *argv[])
{
- proctitle_init(argc, argv);
+ struct ovs_cmdl_context ctx = { .argc = 0, };
+ ovs_cmdl_proctitle_init(argc, argv);
set_program_name(argv[0]);
service_start(&argc, &argv);
parse_options(argc, argv);
- run_command(argc - optind, argv + optind, get_all_commands());
+ ctx.argc = argc - optind;
+ ctx.argv = argv + optind;
+ ovs_cmdl_run_command(&ctx, get_all_commands());
}
static void
STREAM_SSL_LONG_OPTIONS,
{NULL, 0, NULL, 0},
};
- char *short_options = long_options_to_short_options(long_options);
+ char *short_options = ovs_cmdl_long_options_to_short_options(long_options);
for (;;) {
int c = getopt_long(argc, argv, short_options, long_options, NULL);
}
static void
-do_listen(int argc OVS_UNUSED, char *argv[])
+do_listen(struct ovs_cmdl_context *ctx)
{
struct pstream *pstream;
struct jsonrpc **rpcs;
bool done;
int error;
- error = jsonrpc_pstream_open(argv[1], &pstream, DSCP_DEFAULT);
+ error = jsonrpc_pstream_open(ctx->argv[1], &pstream, DSCP_DEFAULT);
if (error) {
- ovs_fatal(error, "could not listen on \"%s\"", argv[1]);
+ ovs_fatal(error, "could not listen on \"%s\"", ctx->argv[1]);
}
daemonize();
}
static void
-do_request(int argc OVS_UNUSED, char *argv[])
+do_request(struct ovs_cmdl_context *ctx)
{
struct jsonrpc_msg *msg;
struct jsonrpc *rpc;
char *string;
int error;
- method = argv[2];
- params = parse_json(argv[3]);
+ method = ctx->argv[2];
+ params = parse_json(ctx->argv[3]);
msg = jsonrpc_create_request(method, params, NULL);
string = jsonrpc_msg_is_valid(msg);
if (string) {
ovs_fatal(0, "not a valid JSON-RPC request: %s", string);
}
- error = stream_open_block(jsonrpc_stream_open(argv[1], &stream,
+ error = stream_open_block(jsonrpc_stream_open(ctx->argv[1], &stream,
DSCP_DEFAULT), &stream);
if (error) {
- ovs_fatal(error, "could not open \"%s\"", argv[1]);
+ ovs_fatal(error, "could not open \"%s\"", ctx->argv[1]);
}
rpc = jsonrpc_open(stream);
}
static void
-do_notify(int argc OVS_UNUSED, char *argv[])
+do_notify(struct ovs_cmdl_context *ctx)
{
struct jsonrpc_msg *msg;
struct jsonrpc *rpc;
char *string;
int error;
- method = argv[2];
- params = parse_json(argv[3]);
+ method = ctx->argv[2];
+ params = parse_json(ctx->argv[3]);
msg = jsonrpc_create_notify(method, params);
string = jsonrpc_msg_is_valid(msg);
if (string) {
ovs_fatal(0, "not a JSON RPC-valid notification: %s", string);
}
- error = stream_open_block(jsonrpc_stream_open(argv[1], &stream,
+ error = stream_open_block(jsonrpc_stream_open(ctx->argv[1], &stream,
DSCP_DEFAULT), &stream);
if (error) {
- ovs_fatal(error, "could not open \"%s\"", argv[1]);
+ ovs_fatal(error, "could not open \"%s\"", ctx->argv[1]);
}
rpc = jsonrpc_open(stream);
}
static void
-do_help(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
+do_help(struct ovs_cmdl_context *ctx OVS_UNUSED)
{
usage();
}
-static struct command all_commands[] = {
+static struct ovs_cmdl_command all_commands[] = {
{ "listen", NULL, 1, 1, do_listen },
{ "request", NULL, 3, 3, do_request },
{ "notify", NULL, 3, 3, do_notify },
{ NULL, NULL, 0, 0, NULL },
};
-static struct command *
+static struct ovs_cmdl_command *
get_all_commands(void)
{
return all_commands;