Esempio n. 1
0
    def execute(self, code, callback = None):        

        s = attempt_new_socket(self.port)
        try:
            connection = Connection(s)
            connection.write_message( 1, str(code))
            (msgtype, payload) = connection.read_message()

            success = msgtype == 2
            print "[%s] [%s]" % (msgtype, payload)
            if callback is not None:
                callback(success, payload)
            
            return success
        finally:
            s.close()
    def handle(self):
        global last_request
        connection = Connection(self.request, verbose = verbose)
        try:
            while 1:
                (msgtype, msg) = connection.read_message()
                last_request = datetime.now()

                logging.debug( "[%i] [%s]" % (msgtype, msg))
                if msgtype == 1:
                    # execute code                    
                    km = initialize_km()
                    out, error = execute(km, msg)
                    logging.debug( "[complete] [%s] [%s]" % (out, error))

                    if error is None:
                        connection.write_message( 2, out )
                    else:
                        connection.write_message( 3, error['error'] )
                else:
                    raise RuntimeError("unknown msgtype : %s" % str(msgtype))
        except SocketDisconnected:
            logging.info("Client disconnected")