anchor.diff:      Digest1 = hex(erlang:md5([Password, Username])),
       Str = ["md5", hex(erlang:md5([Digest1, Salt])), 0],
       send(State, $p, Str),
  -    {State, Timeout};
  +    {noreply, State, Timeout};
   
   auth(_Username, _Password, {$R, <<M:?int32, _/binary>>}, State) ->
       case M of
  
positive.code:     OnTimeout(State);
  
  handle_info({_, Sock, Data2}, #state{data = Data, sock = Sock} = State) ->
      on_data({State#state{data = <<Data/binary, Data2/binary>>}, infinity}).
  
  on_data({#state{data = Data, on_message = OnMessage} = State, Timeout}) ->
      case pgsql_wire:decode_message(Data) of
          {Message, Tail} ->
              on_data(OnMessage(Message, State#state{data = Tail}));
          _ ->
              {noreply, State, Timeout}
      end.
  
negative.code: auth(_Username, Password, {$R, <<3:?int32>>}, State) ->
      #state{timeout = Timeout} = State,
      send(State, $p, [Password, 0]),
      {noreply, State, Timeout};
  
  %% AuthenticationMD5Password
  auth(Username, Password, {$R, <<5:?int32, Salt:4/binary>>}, State) ->
  