'Consume a message and execute the client action.'

def HandleMessage(self, message):

    message.auth_state = rdf_flows.GrrMessage.AuthorizationState.AUTHENTICATED
    if hasattr(self, message.name):
        return getattr(self, message.name)(message.payload)
    self.RecordCall(message.name, message.payload)
    action_cls = self.action_classes[message.name]
    action = action_cls(grr_worker=self.client_worker)
    action.Execute(message)
    self.action_counts[message.name] += 1
    return self.client_worker.Drain()
