aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rtr-origin/rtr-origin.py45
1 files changed, 31 insertions, 14 deletions
diff --git a/rtr-origin/rtr-origin.py b/rtr-origin/rtr-origin.py
index 936f8060..0d891ce0 100644
--- a/rtr-origin/rtr-origin.py
+++ b/rtr-origin/rtr-origin.py
@@ -42,11 +42,8 @@ PERFORMANCE OF THIS SOFTWARE.
"""
import sys, os, struct, time, glob, socket, fcntl, signal
-import asyncore, asynchat, subprocess, traceback
-import rpki.x509, rpki.ipaddrs, rpki.sundial
-
-os.environ["TZ"] = "UTC"
-time.tzset()
+import asyncore, asynchat, subprocess, traceback, getopt
+import rpki.x509, rpki.ipaddrs, rpki.sundial, rpki.config
class read_buffer(object):
"""Wrapper around synchronous/asynchronous read state."""
@@ -686,7 +683,7 @@ class client_channel(pdu_channel):
s = socket.socketpair()
if self.debug_using_direct_server_subprocess:
log("[Ignoring ssh arguments, using direct subprocess kludge for testing]")
- self.ssh = subprocess.Popen(["/usr/local/bin/python", "rtr-origin.py", "server"], stdin = s[0], stdout = s[0], close_fds = True)
+ self.ssh = subprocess.Popen(["/usr/local/bin/python", "rtr-origin.py", "--server"], stdin = s[0], stdout = s[0], close_fds = True)
else:
log("[Running ssh: %s]" % " ".join(sshargs))
self.ssh = subprocess.Popen(sshargs, executable = "/usr/bin/ssh", stdin = s[0], stdout = s[0], close_fds = True)
@@ -846,17 +843,37 @@ def client_main():
raise
def log(msg):
- """Basic logging."""
- sys.stderr.write("[%s] %s\n" % (jane, msg))
+ """Temporary."""
+ rpki.log.warn(str(msg))
+
+os.environ["TZ"] = "UTC"
+time.tzset()
+
+cfg_file = "rtr-origin.conf"
+
+mode = None
+
+opts,argv = getopt.getopt(sys.argv[1:], "c:h?", ["config=", "help", "cronjob", "client", "server", "show"])
+for o,a in opts:
+ if o in ("-h", "--help", "-?"):
+ print __doc__
+ sys.exit(0)
+ if o in ("-c", "--config"):
+ cfg_file = a
+ if o in ("--cronjob", "--client", "--server", "--show"):
+ assert mode is None
+ mode = o[2:]
+if argv:
+ raise RuntimeError, "Unexpected arguments %s" % argv
+if mode is None:
+ raise RuntimeError, "No mode selected"
+
+rpki.log.init("rtr-origin/" + mode)
-if len(sys.argv) == 1:
- jane = "client"
-else:
- assert len(sys.argv) == 2
- jane = sys.argv[1]
+cfg = rpki.config.parser(cfg_file, "mode")
{ "cronjob" : cronjob_main,
"client" : client_main,
"server" : server_main,
"show" : show_main,
- }[jane]()
+ }[mode]()