def METHOD_NAME(self, content, code, message):
    # 401 handled in GCM.process()
    if code in (400, 404):
        raise RouterException(content)
    data = json.loads(content)
    if not data.get('results'):
        raise RouterException("Recv'd invalid response from GCM")
    reg_id = message.payload['registration_ids'][0]
    for res in data['results']:
        if 'message_id' in res:
            self.success[reg_id] = res['message_id']
            if 'registration_id' in res:
                self.canonicals[reg_id] = res['registration_id']
        else:
            if res['error'] in ['Unavailable', 'InternalServerError']:
                self.unavailable.append(reg_id)
            elif res['error'] == 'NotRegistered':
                self.not_registered.append(reg_id)
            else:
                self.failed[reg_id] = res['error']
    return self