def _list_objects(self, client_kwargs, path, max_request_entries):
        """
        Lists objects.

        args:
            client_kwargs (dict): Client arguments.
            path (str): Path relative to current locator.
            max_request_entries (int): If specified, maximum entries returned
                by request.

        Returns:
            generator of tuple: object name str, object header dict
        """
        kwargs = dict(prefix=path)
        if max_request_entries:
            kwargs['limit'] = max_request_entries
        else:
            kwargs['full_listing'] = True

        with _handle_client_exception():
            response = self.client.get_container(
                client_kwargs['container'], **kwargs)

        for obj in response[1]:
            yield obj.pop('name'), obj