[ovs-dev] [PATCH 5/6] ovs-monitor-ipsec: Add unixctl support.
Ethan Jackson
ethan at nicira.com
Thu Mar 8 01:09:26 UTC 2012
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 <ethan at 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
More information about the dev
mailing list