'Get the complete prefix listing and reverse it on the proxy.
This is only necessary if we encounter a response from a
container-server that does not respect the ``reverse`` param
included by default in ``_listing_pages_iter``. This may happen
during rolling upgrades from pre-2.6.0 swift.
:param failed_marker: the marker that was used when we encountered
the non-reversed listing
:param failed_listing: the non-reversed listing that was encountered.
If ``failed_marker`` is blank, we can use this
to save ourselves a request
:returns: an iterator over all objects starting with ``lprefix`` (up
to but not including the failed marker) in reverse order'

def _in_proxy_reverse_listing(self, account_name, lcontainer, lprefix, env, failed_marker, failed_listing):

    complete_listing = []
    if (not failed_marker):
        complete_listing.extend(failed_listing)
        marker = complete_listing[(-1)]['name'].encode('utf8')
    else:
        marker = ''
    try:
        for page in self._listing_pages_iter(account_name, lcontainer, lprefix, env, marker, end_marker=failed_marker, reverse=False):
            complete_listing.extend(page)
    except ListingIterNotFound:
        pass
    return reversed(complete_listing)
