Exemplo n.º 1
0
    def _send_m_search(self, address: str, packet: SSDPDatagram, fut: 'asyncio.Future[SSDPDatagram]') -> None:
        if not self.transport:
            if not fut.done():
                fut.set_exception(UPnPError("SSDP transport not connected"))
            return
        assert packet.st is not None
        self._pending_searches.append(
            PendingSearch(address, packet.st, fut)
        )
        self.transport.sendto(packet.encode().encode(), (SSDP_IP_ADDRESS, SSDP_PORT))

        # also send unicast
        log.debug("send m search to %s: %s", address, packet.st)
        self.transport.sendto(packet.encode().encode(), (address, SSDP_PORT))
Exemplo n.º 2
0
 def test_deserialize_and_reserialize(self):
     packet1 = SSDPDatagram.decode(self.packet)
     packet2 = SSDPDatagram("M-SEARCH", self.datagram_args)
     self.assertEqual(packet2.encode(), packet1.encode())