initial upload
This commit is contained in:
65
smmapd_prototype/smmapd
Executable file
65
smmapd_prototype/smmapd
Executable file
@ -0,0 +1,65 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import SocketServer
|
||||
import socket
|
||||
import os
|
||||
import ConfigParser
|
||||
import getopt
|
||||
import sys
|
||||
|
||||
from Logging import *
|
||||
from SendmailSocketMapHandler import SendmailDispatcher
|
||||
|
||||
|
||||
def usage():
|
||||
print "Usage"
|
||||
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hC:F", ["help", "ConfigFile=", "ForeGround"])
|
||||
except getopt.GetoptError:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
configFile = '/etc/smmapd.ini'
|
||||
foreGround = None
|
||||
for o, a in opts:
|
||||
if o in ("-h", "--help"):
|
||||
usage()
|
||||
sys.exit()
|
||||
if o in ("-C", "--ConfigFile"):
|
||||
configFile = a
|
||||
if o in ("-F", "--ForeGround"):
|
||||
foreGround = 1
|
||||
|
||||
|
||||
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(configFile)
|
||||
|
||||
openlog(config)
|
||||
|
||||
if foreGround:
|
||||
pid = 0
|
||||
else:
|
||||
pid = os.fork()
|
||||
|
||||
if pid:
|
||||
pidFile = file(config.get('Daemon', 'PidFile'), mode='w')
|
||||
pidFile.write("%i\n" % pid)
|
||||
pidFile.close()
|
||||
print "daemon started with pid ", pid
|
||||
else:
|
||||
log("daemon started")
|
||||
|
||||
SendmailDispatcher.registerAll(config)
|
||||
|
||||
try:
|
||||
address = config.get('Daemon', 'Address')
|
||||
port = int(config.get('Daemon', 'Port'))
|
||||
srv = SocketServer.ThreadingTCPServer((address, port), SendmailDispatcher)
|
||||
srv.serve_forever()
|
||||
except socket.error, arg:
|
||||
log("got a socket error: %s" % str(arg))
|
||||
log("daemon died")
|
||||
|
Reference in New Issue
Block a user