X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=apt-dht.py;h=70a12640b7c7f5481bd86cdb327c80587a1d9853;hp=fe63bd302d661505ecdc5b5d158a3f4aa446e70f;hb=056a62b7b55e95a3a50d64d2e769d29b9eede4a9;hpb=de97c2578c709b19e96c0419c9482a5487ab20ce diff --git a/apt-dht.py b/apt-dht.py index fe63bd3..70a1264 100644 --- a/apt-dht.py +++ b/apt-dht.py @@ -16,8 +16,8 @@ from twisted.internet import reactor from twisted.python import usage, log from twisted.web2 import channel -from apt_dht import AptDHT -from apt_dht_conf import config, version +from apt_dht.apt_dht_conf import config, version +from apt_dht.interfaces import IDHT config_file = [] @@ -45,19 +45,31 @@ if __name__ == '__main__': config_file = opts.opts['config-file'] config.read(config_file) -if config.defaults()['username']: - uid,gid = pwd.getpwnam(config.defaults()['username'])[2:4] +if config.has_option('DEFAULT', 'username') and config.get('DEFAULT', 'username'): + uid,gid = pwd.getpwnam(config.get('DEFAULT', 'username'))[2:4] else: uid,gid = None,None +log.msg('Starting application') application = service.Application("apt-dht", uid, gid) -print service.IProcess(application).processName -service.IProcess(application).processName = 'apt-dht' +#print service.IProcess(application).processName +#service.IProcess(application).processName = 'apt-dht' -myapp = AptDHT() -site = myapp.getSite() -s = strports.service('tcp:'+config.defaults()['port'], channel.HTTPFactory(site)) -s.setServiceParent(application) +log.msg('Starting DHT') +DHT = __import__(config.get('DEFAULT', 'DHT')+'.DHT', globals(), locals(), ['DHT']) +assert IDHT.implementedBy(DHT.DHT), "You must provide a DHT implementation that implements the IDHT interface." +myDHT = DHT.DHT() + +if not config.getboolean('DEFAULT', 'DHT-only'): + log.msg('Starting main application server') + from apt_dht.apt_dht import AptDHT + myapp = AptDHT(myDHT) + site = myapp.getSite() + s = strports.service('tcp:'+config.get('DEFAULT', 'port'), channel.HTTPFactory(site)) + s.setServiceParent(application) +else: + myDHT.loadConfig(config, config.get('DEFAULT', 'DHT')) + myDHT.join() if __name__ == '__main__': # Run on command line