-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbmpd
executable file
·58 lines (46 loc) · 1.5 KB
/
bmpd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#! /usr/bin/python
#
# bmpd - a BGP Monitoring Protocol daemon
#
import sys
import optparse
import logging
import daemon
import psycopg2
from twisted.internet import reactor
from bmp.bmpprotocol import BMPFactory
from bmp import store
if __name__ == '__main__':
""" GO GO GO!
"""
# parse arguments
parser = optparse.OptionParser()
parser.add_option('-f', '--foreground', dest='foreground',
action="store_true", default=False, help="Don't daemonize process")
parser.add_option('-d', '--debug', dest='debug',
action="store_true", default=False, help="Run process in debug mode")
parser.add_option('-p', '--port', dest='port', default=20000,
help='Port to listen to')
parser.add_option('-w', '--workers', dest='workers', default=1,
help="Number of worker processes")
(options, arguments) = parser.parse_args()
# configure logging
logging.basicConfig()
logger = logging.getLogger()
if options.debug:
logger.setLevel(logging.DEBUG)
else:
logger.setLevel(logging.INFO)
logger.info("Starting bmpd")
# create message storage facility
store = store.Store(int(options.workers))
# foreground?
if options.foreground:
# start receiver in foreground
reactor.listenTCP(options.port, BMPFactory(store))
reactor.run()
else:
# start daemonized receiver
with daemon.DaemonContext():
reactor.listenTCP(options.port, BMPFactory(store))
reactor.run()