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
Beispiel #4
0
 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