added addpeer command and misc bug fixes
parent
71bff27245
commit
dd9a54f7c6
|
@ -133,6 +133,7 @@ class OnionrCommunicate:
|
|||
return
|
||||
|
||||
def downloadBlock(self, hash):
|
||||
'''download a block from random order of peers'''
|
||||
peerList = self._core.listPeers()
|
||||
blocks = ''
|
||||
for i in peerList:
|
||||
|
|
|
@ -329,7 +329,8 @@ class Core:
|
|||
c = conn.cursor()
|
||||
command = (data, peer)
|
||||
# TODO: validate key on whitelist
|
||||
|
||||
if key not in ('id', 'text', 'name', 'pgpKey', 'hmacKey', 'blockDBHash', 'forwardKey', 'dateSeen', 'bytesStored', 'trust'):
|
||||
raise Exception("Got invalid database key when setting peer info")
|
||||
c.execute('UPDATE peers SET ' + key + ' = ? where id=?', command)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
|
|
@ -109,6 +109,14 @@ class Onionr:
|
|||
os.remove('.onionr-lock')
|
||||
elif command == 'stop':
|
||||
self.killDaemon()
|
||||
elif command == 'addpeer':
|
||||
try:
|
||||
newPeer = sys.argv[2]
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
logger.info("Adding peer.")
|
||||
self.onionrCore.addPeer(newPeer)
|
||||
elif command in ('listpeers', 'list-peers'):
|
||||
logger.info('Peer list:\n')
|
||||
for i in self.onionrCore.listPeers():
|
||||
|
|
|
@ -51,7 +51,7 @@ class OnionrTests(unittest.TestCase):
|
|||
myCore = core.Core()
|
||||
if not os.path.exists('data/peers.db'):
|
||||
myCore.createPeerDB()
|
||||
if myCore.addPeer('facebookcorewwwi.onion') and not myCore.addPeer('invalidpeer.onion'):
|
||||
if myCore.addPeer('2ks5c5bm6zk3ejqg.onion') and not myCore.addPeer('invalidpeer.onion'):
|
||||
self.assertTrue(True)
|
||||
else:
|
||||
self.assertTrue(False)
|
||||
|
|
Loading…
Reference in New Issue