anchor.diff:        {noreply, state()} | {stop, ssl_closed | {unknown_request, X}, state()}.
   handle_info( {ssl, SslSocket, Data}
              , State = #state{ out_socket = SslSocket
  -                           , connection = #apns_connection{error_fun = Error}
  +                           , connection = #apns_connection{error_fun = Error, feedback_fun = DeleteSubscription}
                              , out_buffer = CurrentBuffer
                              , error_logger_fun = ErrorLoggerFun
                              , name = Name
  
positive.code:                         BinToken, Payload, Msg#apns_msg.priority) of
          ok ->
            {noreply, State#state{out_expires = Timeout}};
        {error, Reason} ->
          apns_queue:fail(State#state.queue, Msg#apns_msg.id),
          {stop, {error, Reason}, State}
      end
  
negative.code:       case Command of
          8 -> %% Error
            Status = parse_status(StatusCode),
            {MsgFailed, RestMsg} = apns_queue:fail(State#state.queue, MsgId),
            case Status of 
                invalid_token -> 
                    DeviceToken = MsgFailed#apns_msg.device_token,
                    call(DeleteSubscription, [{ok, DeviceToken}]);
                _ -> ok
            end,
            [send_message(self(), M) || M <- RestMsg],
            try call(Error, [MsgId, Status]) of
              stop -> throw({stop, {msg_error, MsgId, Status}, State});
  