Skip to content

Commit

Permalink
Fix for z25#74 forwarding subscription requests was reversed and emit…
Browse files Browse the repository at this point in the history
…ter nodes wanting to subscribe to a sensor never were send
  • Loading branch information
sphaero committed Jun 5, 2015
1 parent 5b8fb25 commit a7ff452
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/zocp.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,19 @@ def signal_subscribe(self, recv_peer, receiver, emit_peer, emitter):
if receiver not in self.peers_capabilities:
self.peer_get(recv_peer, {receiver: {}})

if emit_peer == self.uuid():
# we are the emitter so register the receiver
# update subscribers in capability tree
subscriber = (recv_peer.hex, receiver)
subscribers = self.capability[emitter]["subscribers"]
if subscriber not in subscribers:
subscribers.append(subscriber)
self._on_modified(data={emitter: {"subscribers": subscribers}})
msg = json.dumps({'SUB': [emit_peer.hex, emitter, recv_peer.hex, receiver]})
logger.warning("SELF SUBSCR")
self.whisper(recv_peer, msg.encode('utf-8'))
return

msg = json.dumps({'SUB': [emit_peer.hex, emitter, recv_peer.hex, receiver]})
self.whisper(emit_peer, msg.encode('utf-8'))

Expand Down Expand Up @@ -657,7 +670,7 @@ def _handle_SUB(self, data, peer, name, grp):
if recv_peer != peer:
# check if this should be forwarded (third party subscription request)
logger.debug("ZOCP SUB : forwarding subscription request: %s" % data)
self.signal_subscribe(emit_peer, emitter, recv_peer, receiver)
self.signal_subscribe(recv_peer, receiver,emit_peer, emitter)
return

if emitter is not None:
Expand Down

0 comments on commit a7ff452

Please sign in to comment.