Пример #1
0
    def __init__(self, args, url):
        self.args = args

        self.tuntap = tuntap.tuntap(args.tuntap)

        self.ws = WebSocket()
        self.ws.connect(url)

        self.greenlets = [
            gevent.spawn(self.read_ws),
            gevent.spawn(self.read_fd)
        ]
Пример #2
0
            try:
                msg = os.tp_read(self.tuntap.fd, 1500)
                if not msg:
                    break
            except IOError:
                break
            if self.ws.closed:
                break
            self.ws.send(msg, True)

    def on_open(self):
        self.reader = gevent.spawn(self.read_fd)

    def on_close(self, reason):
        if (hasattr(self, 'reader')):
            self.reader.kill()

    def on_message(self, msg):
        if not msg:
            return
        os.tp_write(self.tuntap.fd, msg)

if __name__ == "__main__":
    server.tuntap = tuntap.tuntap(args.tuntap)
    wss = WebSocketServer((args.src, args.port), Resource({args.loc: server}))

    try:
        wss.serve_forever()
    except KeyboardInterrupt:
        wss.close()