anchor.diff:            end,
             case erlang:size(Rest) of
               0 -> %% It was a whole package
  -              {noreply, State#state{out_buffer = <<>>, out_expires=0}};
  +              {noreply, State#state{out_buffer = <<>>, out_expires=0, apns_recv = 1}};
               _ ->
                 handle_info(
                   {ssl, SslSocket, Rest}, State#state{out_buffer = <<>>, out_expires=0})
  
positive.code:                 out_buffer = <<>> :: binary(),
                  queue             :: pid(),
                  out_expires       :: integer(),
                  error_logger_fun  :: fun((string(), list()) -> _),
                  info_logger_fun   :: fun((string(), list()) -> _),
                  name              :: atom() | string()}).
  
negative.code:            , State = #state{out_socket = SslSocket
                             , info_logger_fun = InfoLoggerFun
                             , name = Name
  						   			, apns_recv = ApnsRecv
                              }) ->
    InfoLoggerFun("[ ~p ] APNS disconnected socket:~p  apns_recv:~p", [Name, SslSocket, ApnsRecv]),
    {noreply, State#state{out_socket=undefined}};
  
  handle_info(Request, State) ->
    InfoLoggerFun = State#state.info_logger_fun,
    InfoLoggerFun("unknown_request Request:~p, out:~p in:~p  apns_recv:~p", [Request, State#state.out_socket, State#state.in_socket, State#state.apns_recv]),
    {stop, {unknown_request, Request}, State}.
  
  %% @hidden
  