Exemplo n.º 1
0
    def test_crypto_rc4(self):

        link1 = s_link.chopLinkUrl('tcp://127.0.0.1:0?rc4key=asdfasdf')

        data = {}

        def wootmesg(sock, mesg):
            data['foo'] = mesg[1].get('foo')
            return ('woot2', {})

        daemon = s_daemon.Daemon()
        daemon.setMesgMethod('woot1', wootmesg)

        daemon.runLinkServer(link1)

        relay = s_link.initLinkRelay(link1)
        client = relay.initLinkClient()

        repl = client.sendAndRecv('woot1', foo=2)

        self.assertEqual(repl[0], 'woot2')
        self.assertEqual(data.get('foo'), 2)

        client.fini()
        daemon.fini()
Exemplo n.º 2
0
    def test_link_tcp_client(self):

        data = {'count':0}
        def sockinit(event):
            data['count'] += 1

        mesgs = []
        def wootmesg(sock,mesg):
            mesgs.append(mesg)
            return tufo('woot',foo=mesg[1].get('id'))

        link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?zerosig=1')
        #link = tufo('tcp',host='127.0.0.1',port=0)

        daemon = s_daemon.Daemon()
        daemon.on('link:sock:init',sockinit)
        daemon.setMesgMethod('woot',wootmesg)

        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)

        link[1]['trans'] = True
        client = relay.initLinkClient()

        reply = client.sendAndRecv('woot',id=1)
        self.assertEqual( reply[1].get('foo'), 1 )

        reply = client.sendAndRecv('woot',id=2)
        self.assertEqual( reply[1].get('foo'), 2 )

        self.assertEqual( data.get('count'), 3)

        client.fini()
        daemon.fini()
Exemplo n.º 3
0
    def __init__(self, link):
        EventBus.__init__(self)

        self.link = link
        self.relay = s_link.initLinkRelay(link)
        self.client = self._init_client()

        self._tele_with = {}    # tid:client for with blocks

        # objname is path minus leading "/"
        self.objname = link[1].get('path')[1:]
Exemplo n.º 4
0
    def runLinkPeer(self, link):
        '''
        Run and manage a new LinkPeer.
        '''
        relay = s_link.initLinkRelay(link)
        peer = relay.initLinkPeer()

        peer.on('link:sock:mesg', self.dist)
        peer.on('link:sock:init', self.dist)
        peer.on('link:sock:fini', self.dist)

        self.onfini(peer.fini)
        return peer.runLinkPeer()
Exemplo n.º 5
0
    def test_daemon_timeout(self):
        link = tufo('tcp',host='127.0.0.1',port=0,timeout=0.1)

        daemon = s_daemon.Daemon()
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        sock = relay.initClientSock()

        self.assertEqual( sock.recvobj(),None)

        sock.fini()
        daemon.fini()
Exemplo n.º 6
0
    def runLinkPeer(self, link):
        '''
        Run and manage a new LinkPeer.
        '''
        relay = s_link.initLinkRelay(link)
        peer = relay.initLinkPeer()

        peer.on('link:sock:mesg',self.dist)
        peer.on('link:sock:init',self.dist)
        peer.on('link:sock:fini',self.dist)

        self.onfini(peer.fini)
        return peer.runLinkPeer()
Exemplo n.º 7
0
    def test_daemon_timeout(self):
        link = tufo('tcp', host='127.0.0.1', port=0, timeout=0.1)

        daemon = s_daemon.Daemon()
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        sock = relay.initClientSock()

        self.assertEqual(sock.recvobj(), None)

        sock.fini()
        daemon.fini()
Exemplo n.º 8
0
    def test_link_client_retry(self):
        link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?retry=2')

        daemon = s_daemon.Daemon()
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        client = relay.initLinkClient()

        daemon.fini()

        self.assertRaises( s_link.RetryExceeded, client.sendAndRecv, 'woot' )

        client.fini()
Exemplo n.º 9
0
    def test_link_client_retry(self):
        link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?retry=2')

        daemon = s_daemon.Daemon()
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        client = relay.initLinkClient()

        daemon.fini()

        self.assertRaises(s_link.RetryExceeded, client.sendAndRecv, 'woot')

        client.fini()
Exemplo n.º 10
0
    def runLinkServer(self, link):
        '''
        Run and manage a new LinkServer.

        Example:

            link = tufo('tcp',host='0.0.0.0',port=80)
            daemon.runLinkServer(link)
        '''
        relay = s_link.initLinkRelay(link)
        server = relay.initLinkServer()

        server.on('link:sock:mesg', self.dist)
        server.on('link:sock:init', self.dist)
        server.on('link:sock:fini', self.dist)

        self.onfini(server.fini)
        return server.runLinkServer()
Exemplo n.º 11
0
    def runLinkServer(self, link):
        '''
        Run and manage a new LinkServer.

        Example:

            link = tufo('tcp',host='0.0.0.0',port=80)
            daemon.runLinkServer(link)
        '''
        relay = s_link.initLinkRelay( link )
        server = relay.initLinkServer()

        server.on('link:sock:mesg',self.dist)
        server.on('link:sock:init',self.dist)
        server.on('link:sock:fini',self.dist)

        self.onfini(server.fini)
        return server.runLinkServer()
Exemplo n.º 12
0
    def test_daemon_extend(self):
        def onwoot(sock, mesg):
            sock.sendobj(('woot', {'foo': 'bar'}))

        daemon = s_daemon.Daemon()
        daemon.setMesgMethod('woot', onwoot)

        link = tufo('tcp', host='127.0.0.1', port=0)
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        sock = relay.initClientSock()

        self.assertIsNotNone(sock)

        sock.sendobj(('woot', {}))
        mesg = sock.recvobj()

        self.assertEqual(mesg[0], 'woot')
        self.assertEqual(mesg[1].get('foo'), 'bar')

        sock.fini()
        daemon.fini()
Exemplo n.º 13
0
    def test_link_tcp_client(self):

        data = {'count': 0}

        def sockinit(event):
            data['count'] += 1

        mesgs = []

        def wootmesg(sock, mesg):
            mesgs.append(mesg)
            return tufo('woot', foo=mesg[1].get('id'))

        link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?zerosig=1')
        #link = tufo('tcp',host='127.0.0.1',port=0)

        daemon = s_daemon.Daemon()
        daemon.on('link:sock:init', sockinit)
        daemon.setMesgMethod('woot', wootmesg)

        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)

        link[1]['trans'] = True
        client = relay.initLinkClient()

        reply = client.sendAndRecv('woot', id=1)
        self.assertEqual(reply[1].get('foo'), 1)

        reply = client.sendAndRecv('woot', id=2)
        self.assertEqual(reply[1].get('foo'), 2)

        self.assertEqual(data.get('count'), 3)

        client.fini()
        daemon.fini()
Exemplo n.º 14
0
    def test_daemon_extend(self):

        def onwoot(sock,mesg):
            sock.sendobj( ('woot',{'foo':'bar'}) )

        daemon = s_daemon.Daemon()
        daemon.setMesgMethod('woot',onwoot)

        link = tufo('tcp',host='127.0.0.1',port=0)
        daemon.runLinkServer(link)

        relay = s_link.initLinkRelay(link)
        sock = relay.initClientSock()

        self.assertIsNotNone(sock)

        sock.sendobj( ('woot',{}) )
        mesg = sock.recvobj()

        self.assertEqual( mesg[0], 'woot' )
        self.assertEqual( mesg[1].get('foo'), 'bar' )

        sock.fini()
        daemon.fini()
Exemplo n.º 15
0
    def test_crypto_rc4(self):

        link1 = s_link.chopLinkUrl('tcp://127.0.0.1:0?rc4key=asdfasdf')

        data = {}
        def wootmesg(sock,mesg):
            data['foo'] = mesg[1].get('foo')
            return ('woot2',{})

        daemon = s_daemon.Daemon()
        daemon.setMesgMethod('woot1',wootmesg)

        daemon.runLinkServer(link1)

        relay = s_link.initLinkRelay(link1)
        client = relay.initLinkClient()

        repl = client.sendAndRecv('woot1',foo=2)

        self.assertEqual( repl[0], 'woot2' )
        self.assertEqual( data.get('foo'), 2)

        client.fini()
        daemon.fini()