diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py index a2d951ed..461486f7 100755 --- a/src/bitmessagemain.py +++ b/src/bitmessagemain.py @@ -57,6 +57,7 @@ from network.networkthread import BMNetworkThread from network.receivequeuethread import ReceiveQueueThread from network.announcethread import AnnounceThread from network.invthread import InvThread +from network.addrthread import AddrThread from network.downloadthread import DownloadThread # Helper Functions @@ -276,6 +277,9 @@ class Main: downloadThread = DownloadThread() downloadThread.daemon = True downloadThread.start() + state.addrThread = AddrThread() + state.addrThread.daemon = True + state.addrThread.start() connectToStream(1) diff --git a/src/network/addrthread.py b/src/network/addrthread.py new file mode 100644 index 00000000..a6c401ab --- /dev/null +++ b/src/network/addrthread.py @@ -0,0 +1,30 @@ +import Queue +import threading + +import addresses +from helper_threading import StoppableThread +from network.connectionpool import BMConnectionPool +from queues import addrQueue +import protocol +import state + +class AddrThread(threading.Thread, StoppableThread): + def __init__(self): + threading.Thread.__init__(self, name="AddrThread") + self.initStop() + self.name = "AddrThread" + + def run(self): + while not state.shutdown: + chunk = [] + while True: + try: + data = addrQueue.get(False) + chunk.append((data[0], data[1])) + except Queue.Empty: + break + + #finish + + addrQueue.iterate() + self.stop.wait(1) diff --git a/src/state.py b/src/state.py index 618b6c92..1b12831e 100644 --- a/src/state.py +++ b/src/state.py @@ -24,6 +24,7 @@ sqlReady = False # set to true by sqlTread when ready for processing maximumNumberOfHalfOpenConnections = 0 invThread = None +addrThread = None ownAddresses = {}