Compare commits
No commits in common. "8c0f68e2d553dc3eb81411a9879d9586353e83a3" and "b1a21063818e404337735731b258f62088426fda" have entirely different histories.
8c0f68e2d5
...
b1a2106381
2 changed files with 31 additions and 45 deletions
|
|
@ -56,9 +56,6 @@ class Peer(object):
|
||||||
for line in fd:
|
for line in fd:
|
||||||
if line:
|
if line:
|
||||||
try:
|
try:
|
||||||
revision = int(line.split(',', 1)[0][1:])
|
|
||||||
if revision <= self.info.get('revision', -1):
|
|
||||||
continue
|
|
||||||
data = json.loads(line)
|
data = json.loads(line)
|
||||||
except:
|
except:
|
||||||
logger.debug('failed to parse line: %s', line)
|
logger.debug('failed to parse line: %s', line)
|
||||||
|
|
|
||||||
73
oml/nodes.py
73
oml/nodes.py
|
|
@ -202,34 +202,28 @@ class Node(Thread):
|
||||||
def _send_response(self):
|
def _send_response(self):
|
||||||
with db.session():
|
with db.session():
|
||||||
u = user.models.User.get(self.user_id)
|
u = user.models.User.get(self.user_id)
|
||||||
send_response = u and u.peered or u.queued
|
if u and u.peered or u.queued:
|
||||||
if u:
|
|
||||||
user_pending = u.pending
|
|
||||||
user_peered = u.peered
|
|
||||||
user_queued = u.queued
|
|
||||||
if DEBUG_NODES:
|
|
||||||
logger.debug('go online peered=%s queued=%s %s (%s)', u.peered, u.queued, u.id, u.nickname)
|
|
||||||
|
|
||||||
if send_response:
|
|
||||||
try:
|
|
||||||
self.online = self.can_connect()
|
|
||||||
except:
|
|
||||||
if DEBUG_NODES:
|
if DEBUG_NODES:
|
||||||
logger.debug('failed to connect to %s', self.user_id)
|
logger.debug('go online peered=%s queued=%s %s (%s)', u.peered, u.queued, u.id, u.nickname)
|
||||||
self.online = False
|
try:
|
||||||
if self.online:
|
self.online = self.can_connect()
|
||||||
if DEBUG_NODES:
|
except:
|
||||||
logger.debug('connected to %s', self.url)
|
|
||||||
if user_queued:
|
|
||||||
if DEBUG_NODES:
|
if DEBUG_NODES:
|
||||||
logger.debug('queued peering event pending=%s peered=%s', user_pending, user_peered)
|
logger.debug('failed to connect to %s', self.user_id)
|
||||||
if user_pending == 'sent':
|
self.online = False
|
||||||
self.peering('requestPeering')
|
if self.online:
|
||||||
elif user_pending == '' and user_peered:
|
if DEBUG_NODES:
|
||||||
self.peering('acceptPeering')
|
logger.debug('connected to %s', self.url)
|
||||||
else:
|
if u.queued:
|
||||||
#fixme, what about cancel/reject peering here?
|
if DEBUG_NODES:
|
||||||
self.peering('removePeering')
|
logger.debug('queued peering event pending=%s peered=%s', u.pending, u.peered)
|
||||||
|
if u.pending == 'sent':
|
||||||
|
self.peering('requestPeering')
|
||||||
|
elif u.pending == '' and u.peered:
|
||||||
|
self.peering('acceptPeering')
|
||||||
|
else:
|
||||||
|
#fixme, what about cancel/reject peering here?
|
||||||
|
self.peering('removePeering')
|
||||||
|
|
||||||
def trigger_status(self):
|
def trigger_status(self):
|
||||||
if self.online is not None:
|
if self.online is not None:
|
||||||
|
|
@ -323,26 +317,21 @@ class Node(Thread):
|
||||||
def peering(self, action):
|
def peering(self, action):
|
||||||
with db.session():
|
with db.session():
|
||||||
u = user.models.User.get_or_create(self.user_id)
|
u = user.models.User.get_or_create(self.user_id)
|
||||||
user_info = u.info
|
if action in ('requestPeering', 'acceptPeering'):
|
||||||
if action in ('requestPeering', 'acceptPeering'):
|
r = self.request(action, settings.preferences['username'], u.info.get('message'))
|
||||||
r = self.request(action, settings.preferences['username'], user_info.get('message'))
|
else:
|
||||||
else:
|
r = self.request(action, u.info.get('message'))
|
||||||
r = self.request(action, user_info.get('message'))
|
if r != None:
|
||||||
if r is not None:
|
|
||||||
with db.session():
|
|
||||||
u = user.models.User.get(self.user_id)
|
|
||||||
u.queued = False
|
u.queued = False
|
||||||
if 'message' in u.info:
|
if 'message' in u.info:
|
||||||
del u.info['message']
|
del u.info['message']
|
||||||
u.save()
|
u.save()
|
||||||
else:
|
else:
|
||||||
logger.debug('peering failed? %s %s', action, r)
|
logger.debug('peering failed? %s %s', action, r)
|
||||||
if action in ('cancelPeering', 'rejectPeering', 'removePeering'):
|
if action in ('cancelPeering', 'rejectPeering', 'removePeering'):
|
||||||
self.online = False
|
self.online = False
|
||||||
with db.session():
|
trigger_event('peering.%s'%action.replace('Peering', ''), u.json())
|
||||||
u = user.models.User.get(self.user_id)
|
return True
|
||||||
trigger_event('peering.%s' % action.replace('Peering', ''), u.json())
|
|
||||||
return True
|
|
||||||
|
|
||||||
headers = {
|
headers = {
|
||||||
'X-Node-Protocol': settings.NODE_PROTOCOL,
|
'X-Node-Protocol': settings.NODE_PROTOCOL,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue