-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)
+ factory = myapp.getHTTPFactory()
+ s = strports.service('tcp:'+config.get('DEFAULT', 'port'), factory)
+ s.setServiceParent(application)
+else:
+ myDHT.loadConfig(config, config.get('DEFAULT', 'DHT'))
+ myDHT.join()