'Verify the server response to a \'control\' endpoint POST message.
We consider the message correct if and only if we can decrypt it
properly. Note that in practice we can not use the HTTP status to figure out
if the request worked because captive proxies have a habit of lying and
returning a HTTP success code even when there is no connectivity.
Args:
http_object: The HTTPObject returned from the HTTP transaction.
Returns:
True if the http_object is correct. False if it is not valid.
Side Effect:
Fill in the decoded_data attribute in the http_object.'

def VerifyServerControlResponse(self, http_object):

    if (http_object.code != 200):
        return False
    try:
        (http_object.messages, http_object.source, http_object.nonce) = self.communicator.DecryptMessage(http_object.data)
        return True
    except communicator.DecodingError as e:
        logging.info('Protobuf    decode    error:    %s.', e)
        return False
