# $Id$ # # Copyright (C) 2015-2016 Parsons Government Services ("PARSONS") # Portions copyright (C) 2014 Dragon Research Labs ("DRL") # Portions copyright (C) 2009-2013 Internet Systems Consortium ("ISC") # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notices and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND PARSONS, DRL, AND ISC DISCLAIM # ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL # PARSONS, DRL, OR ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS # OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ RPKI-Router protocol implementation. See RFC 6810 et sequalia in fine RFC and Internet-Draft repositories near you. """ import os import sys import time import logging import rpki.config def main(): os.environ["TZ"] = "UTC" time.tzset() from rpki.rtr.server import argparse_setup as argparse_setup_server from rpki.rtr.client import argparse_setup as argparse_setup_client from rpki.rtr.generator import argparse_setup as argparse_setup_generator if "rpki.rtr.bgpdump" in sys.modules: from rpki.rtr.bgpdump import argparse_setup as argparse_setup_bgpdump else: def argparse_setup_bgpdump(ignored): pass cfg = rpki.config.argparser(section = "rpki-rtr", doc = __doc__) cfg.argparser.add_argument("--debug", action = "store_true", help = "debugging mode") cfg.add_logging_arguments() subparsers = cfg.argparser.add_subparsers(title = "Commands", metavar = "", dest = "mode") argparse_setup_server(subparsers) argparse_setup_client(subparsers) argparse_setup_generator(subparsers) argparse_setup_bgpdump(subparsers) args = cfg.argparser.parse_args() cfg.configure_logging(args = args, ident = "rpki-rtr/" + args.mode) return args.func(args)