def request(self, request, info): from logs import lg from p2p import p2p_service from main import settings words = request.Payload.split(" ") try: mode = words[1][:10] except: lg.exc() return None if mode != "route" and mode != "listen": lg.out(8, "service_broadcasting.request DENIED, wrong mode provided : %s" % mode) return None if not settings.enableBroadcastRouting(): lg.out(8, "service_broadcasting.request DENIED, broadcast routing disabled") return p2p_service.SendFail(request, "broadcast routing disabled") from broadcast import broadcaster_node if not broadcaster_node.A(): lg.out(8, "service_broadcasting.request DENIED, broadcast routing disabled") return p2p_service.SendFail(request, "broadcast routing disabled") if broadcaster_node.A().state not in ["BROADCASTING", "OFFLINE", "BROADCASTERS?"]: lg.out(8, "service_broadcasting.request DENIED, current state is : %s" % broadcaster_node.A().state) return p2p_service.SendFail(request, "currently not broadcasting") if mode == "route": broadcaster_node.A("new-broadcaster-connected", request.OwnerID) lg.out(8, "service_broadcasting.request ACCEPTED, mode: %s" % words) return p2p_service.SendAck(request, "accepted") if mode == "listen": broadcaster_node.A().add_listener(request.OwnerID, " ".join(words[2:])) lg.out(8, "service_broadcasting.request ACCEPTED, mode: %s" % words[1]) return p2p_service.SendAck(request, "accepted") return None
def request(self, json_payload, newpacket, info): from logs import lg from p2p import p2p_service from main import settings # words = newpacket.Payload.split(' ') try: mode = json_payload['action'] except: lg.exc() return p2p_service.SendFail(newpacket, 'invalid json payload') if mode != 'route' and mode != 'listen': lg.out( 8, "service_broadcasting.request DENIED, wrong mode provided : %s" % mode) return p2p_service.SendFail(newpacket, 'invalid request') if not settings.enableBroadcastRouting(): lg.out( 8, "service_broadcasting.request DENIED, broadcast routing disabled" ) return p2p_service.SendFail(newpacket, 'broadcast routing disabled') from broadcast import broadcaster_node if not broadcaster_node.A(): lg.out( 8, "service_broadcasting.request DENIED, broadcast routing disabled" ) return p2p_service.SendFail(newpacket, 'broadcast routing disabled') if broadcaster_node.A().state not in [ 'BROADCASTING', 'OFFLINE', 'BROADCASTERS?', ]: lg.out( 8, "service_broadcasting.request DENIED, current state is : %s" % broadcaster_node.A().state) return p2p_service.SendFail(newpacket, 'currently not broadcasting') if mode == 'route': broadcaster_node.A('new-broadcaster-connected', newpacket.OwnerID) lg.out(8, "service_broadcasting.request ACCEPTED, mode: %s" % words) return p2p_service.SendAck(newpacket, 'accepted') if mode == 'listen': broadcaster_node.A().add_listener(newpacket.OwnerID, ' '.join(words[2:])) lg.out( 8, "service_broadcasting.request ACCEPTED, mode: %s" % words[1]) return p2p_service.SendAck(newpacket, 'accepted') return p2p_service.SendAck(newpacket, 'bad request')
def start(self): from broadcast import broadcasters_finder from broadcast import broadcaster_node from broadcast import broadcast_listener from broadcast import broadcast_service from main.config import conf from main import settings broadcasters_finder.A("init") if settings.enableBroadcastRouting(): broadcaster_node.A("init", broadcast_service.on_incoming_broadcast_message) broadcaster_node.A().addStateChangedCallback(self._on_broadcaster_node_switched) else: broadcast_listener.A("init", broadcast_service.on_incoming_broadcast_message) broadcast_listener.A().addStateChangedCallback(self._on_broadcast_listener_switched) broadcast_listener.A("connect", self.scope) conf().addCallback("services/broadcasting/routing-enabled", self._on_broadcast_routing_enabled_disabled) return True
def start(self): from twisted.internet.defer import Deferred from broadcast import broadcasters_finder from broadcast import broadcaster_node from broadcast import broadcast_listener from broadcast import broadcast_service from main.config import conf from main import settings self.starting_deferred = Deferred() broadcasters_finder.A('init') if settings.enableBroadcastRouting(): broadcaster_node.A('init', broadcast_service.on_incoming_broadcast_message) broadcaster_node.A().addStateChangedCallback( self._on_broadcaster_node_switched) else: broadcast_listener.A( 'init', broadcast_service.on_incoming_broadcast_message) broadcast_listener.A().addStateChangedCallback( self._on_broadcast_listener_switched) broadcast_listener.A('connect', self.scope) conf().addConfigNotifier('services/broadcasting/routing-enabled', self._on_broadcast_routing_enabled_disabled) return self.starting_deferred