/*
- * 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.
static void
test_jsonrpc_main(int argc, char *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);
- ovs_cmdl_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
}
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();
}