When debugging a running system, we occasionally see a mismatch of
different versions because someone forgets to restart one or more
daemons. Often times, it would be useful to know what's running as
opposed to what's on the current runpath.
Post-v1.2.0
------------------------
Post-v1.2.0
------------------------
+ - ovs-appctl:
+ - New "version" command to determine version of running daemon
v1.2.0 - 03 Aug 2011
------------------------
v1.2.0 - 03 Aug 2011
------------------------
+static void
+unixctl_version(struct unixctl_conn *conn, const char *args OVS_UNUSED,
+ void *aux OVS_UNUSED)
+{
+ unixctl_command_reply(conn, 200, get_program_version());
+}
+
void
unixctl_command_register(const char *name, unixctl_cb_func *cb, void *aux)
{
void
unixctl_command_register(const char *name, unixctl_cb_func *cb, void *aux)
{
}
unixctl_command_register("help", unixctl_help, NULL);
}
unixctl_command_register("help", unixctl_help, NULL);
+ unixctl_command_register("version", unixctl_version, NULL);
server = xmalloc(sizeof *server);
list_init(&server->conns);
server = xmalloc(sizeof *server);
list_init(&server->conns);
-t, --target=TARGET pidfile or socket to contact\n\
Common commands:\n\
help List commands supported by the target\n\
-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/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\
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);
}
program_name, program_name);
exit(EXIT_SUCCESS);
}