'Receive EXACTLY the number of bytes requested from the file object.
Blocks until the required number of bytes have been received.'

def _readall(self, file, count):

    data = ''
    while (len(data) < count):
        d = file.read((count - len(data)))
        if (not d):
            raise GeneralProxyError('Connection    closed    unexpectedly')
        data += d
    return data
