#!/usr/bin/env python from twisted.internet import reactor from twisted.internet.ssl import DefaultOpenSSLContextFactory import sys from signal import signal, SIGINT # from twisted.python import log # from sys import stdout # log.startLogging(stdout) from sys import stdout, stderr # Import again because we want to override from codecs import getwriter # fix printing odd shit to the terminal stdout = getwriter("utf8")(stdout) # this is a generic fix but we all know stderr = getwriter("utf8")(stderr) # it's just for the retards on Rizon using # unicode quit messages for no reason import main main.initMain() from utils.cleanup import handler signal(SIGINT, handler) # Handle Ctrl-C and run the cleanup routine if "--debug" in sys.argv: # yes really main.config["Debug"] = True if "--trace" in sys.argv: main.config["Trace"] = True from utils.logging.log import * from utils.loaders.command_loader import loadCommands from core.server import Server, ServerFactory from core.relay import Relay, RelayFactory import modules.counters loadCommands() import core.logstash core.logstash.init_logstash() if __name__ == "__main__": listener = ServerFactory() if main.config["Listener"]["UseSSL"] == True: reactor.listenSSL( main.config["Listener"]["Port"], listener, DefaultOpenSSLContextFactory( main.certPath + main.config["Key"], main.certPath + main.config["Certificate"], ), interface=main.config["Listener"]["Address"], ) log( "Threshold running with SSL on %s:%s" % (main.config["Listener"]["Address"], main.config["Listener"]["Port"]) ) else: reactor.listenTCP( main.config["Listener"]["Port"], listener, interface=main.config["Listener"]["Address"], ) log("Threshold running on %s:%s" % (main.config["Listener"]["Address"], main.config["Listener"]["Port"])) if main.config["RelayAPI"]["Enabled"]: relay = RelayFactory() if main.config["RelayAPI"]["UseSSL"] == True: reactor.listenSSL( main.config["RelayAPI"]["Port"], relay, DefaultOpenSSLContextFactory( main.certPath + main.config["Key"], main.certPath + main.config["Certificate"], ), interface=main.config["RelayAPI"]["Address"], ) log( "Threshold relay running with SSL on %s:%s" % (main.config["RelayAPI"]["Address"], main.config["RelayAPI"]["Port"]) ) else: reactor.listenTCP( main.config["RelayAPI"]["Port"], relay, interface=main.config["RelayAPI"]["Address"], ) log( "Threshold relay running on %s:%s" % (main.config["RelayAPI"]["Address"], main.config["RelayAPI"]["Port"]) ) for net in main.network.keys(): main.network[net].start_bots() modules.counters.setupCounterLoop() reactor.run()