anchor.diff:      {noreply, NewState :: state()} |
       {noreply, NewState :: state(), timeout() | hibernate} |
       {stop, Reason :: term(), NewState :: state()}.
  -handle_info(upgrade_protocol, #state{ip = Hostname} = State) ->
  +handle_info({upgrade_protocol, Hostname}, State) ->
       case socket_send(State, protocol_utils:protocol_upgrade_request(Hostname)) of
           {ok, NewState} ->
               {noreply, NewState, ?PROTO_CONNECTION_TIMEOUT};
  
positive.code:     case router:route_message(Msg) of
          ok ->
              {ok, State};
          {ok, ServerMsg} ->
              case send_server_message(State, ServerMsg) of
                  % Serialization errors should not break ready connection
  
negative.code:     socket :: ssl:socket(),
      socket_mode = active_once :: active_always | active_once,
      transport :: module(),
  
      % transport messages
      ok :: atom(),
  