示例#1
0
    def start(self):
        # logging
        if conf.getLogging():
            logfile = conf.getLogfile()
            pathToLog = logfile.rsplit('/', 1)[0]
            if not os.path.exists(pathToLog):
                os.makedirs(pathToLog)
            file_handler = RotatingFileHandler(logfile,
                                               maxBytes=conf.getMaxLogSize(),
                                               backupCount=conf.getBacklog())
            file_handler.setLevel(logging.ERROR)
            formatter = logging.Formatter(
                "%(asctime)s - %(name)s - %(levelname)s - %(message)s")
            file_handler.setFormatter(formatter)
            self.app.logger.addHandler(file_handler)

        #for route in web.Routes.get_routes(self): self.addRoute(route)

        if conf.getDebug():
            # start debug flask server
            self.app.run(host=conf.getHost(), port=conf.getPort(), debug=True)
        else:
            # start asynchronous server using tornado wrapper for flask
            # ssl connection
            print("Server starting...")
            if conf.useSSL():
                ssl_options = {
                    "certfile": os.path.join(_runPath, "../",
                                             conf.getSSLCert()),
                    "keyfile": os.path.join(_runPath, "../", conf.getSSLKey())
                }
            else:
                ssl_options = None
            signal.signal(signal.SIGTERM, self.sig_handler)
            signal.signal(signal.SIGINT, self.sig_handler)

            self.http_server = HTTPServer(WSGIContainer(self.app),
                                          ssl_options=ssl_options)
            self.http_server.bind(conf.getPort(), address=conf.getHost())
            self.http_server.start(0)  # Forks multiple sub-processes
            IOLoop.instance().start()
示例#2
0
RELEASEDATE = 'pre-release'
DESC = '''Server for the NorthernSec darknet mailing project.'''

# Parse args
parser = argparse.ArgumentParser(description=DESC)
parser.add_argument('-v', action='store_true', help='Version')
args = parser.parse_args()

# Main
if __name__ == '__main__':
    if args.v:
        print("NorthernMail %s (%s)" % (VERSION, RELEASEDATE))
        sys.exit(0)
    # Retrieve config
    host = conf.getHost()
    port = conf.getPort()
    # Start logging
    logger = RSALogger()

    # Start server
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    addr = (host, port)
    logger.log(
        'Starting NorthernMail server %s on %s:%s' % (VERSION, host, port), 1)
    sock.bind(addr)
    sock.listen(1)
    try:
        while True:
            (cl_sock, (cl_ip, cl_port)) = sock.accept()
            logger.log(('Starting new thread for connected client - %s:%s' %
                        (cl_ip, cl_port)))
示例#3
0
RELEASEDATE='pre-release'
DESC='''Server for the NorthernSec darknet mailing project.'''

# Parse args
parser = argparse.ArgumentParser(description=DESC)
parser.add_argument('-v', action='store_true', help='Version')
args=parser.parse_args()

# Main 
if __name__=='__main__':
  if args.v:
    print("NorthernMail %s (%s)"%(VERSION,RELEASEDATE))
    sys.exit(0)
  # Retrieve config
  host=conf.getHost()
  port=conf.getPort()
  # Start logging
  logger=RSALogger()

  # Start server
  sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  addr=(host,port)
  logger.log('Starting NorthernMail server %s on %s:%s'%(VERSION,host,port), 1)
  sock.bind(addr)
  sock.listen(1)
  try:
    while True:
      (cl_sock, (cl_ip,cl_port))=sock.accept()
      logger.log(('Starting new thread for connected client - %s:%s'%(cl_ip,cl_port)))
      thread=ClientThread(cl_ip,cl_port,cl_sock)
      thread.start()