With this patch, users can query a running ovs-monitor-ipsec daemon's version, or ask it to exit using ovs-appctl.
Signed-off-by: Ethan Jackson <et...@nicira.com> --- debian/ovs-monitor-ipsec | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/debian/ovs-monitor-ipsec b/debian/ovs-monitor-ipsec index 9707082..a7bc20f 100755 --- a/debian/ovs-monitor-ipsec +++ b/debian/ovs-monitor-ipsec @@ -37,11 +37,19 @@ from ovs.db import types import ovs.util import ovs.daemon import ovs.db.idl +import ovs.unixctl import ovs.vlog vlog = ovs.vlog.Vlog("ovs-monitor-ipsec") root_prefix = '' # Prefix for absolute file names, for testing. setkey = "/usr/sbin/setkey" +exiting = False + + +def unixctl_exit(conn, unused_argv, unused_aux): + global exiting + exiting = True + conn.reply(None) # Class to configure the racoon daemon, which handles IKE negotiation @@ -450,13 +458,25 @@ def main(): ovs.daemon.daemonize() + ovs.unixctl.command_register("exit", "", 0, 0, unixctl_exit, None) + error, unixctl_server = ovs.unixctl.UnixctlServer.create(None) + if error: + ovs.util.ovs_fatal(error, "could not create unixctl server", vlog) + ipsec = IPsec() interfaces = {} - while True: + while not exiting: + unixctl_server.run() if not idl.run(): poller = ovs.poller.Poller() + + unixctl_server.wait(poller) idl.wait(poller) + + if exiting: + poller.immediate_wake() + poller.block() continue @@ -500,6 +520,9 @@ def main(): update_ipsec(ipsec, interfaces, new_interfaces) interfaces = new_interfaces + unixctl_server.close() + idl.close() + if __name__ == '__main__': try: -- 1.7.9.2 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev