anchor.diff:          Database  -> Opts3 = [Opts2 | ["database", 0, Database, 0]]
       end,
       send([<<196608:?int32>>, Opts3, 0], State2),
  -%% TODO    Async   = proplists:get_value(async, Opts, undefined),
  +    %% TODO    Async   = proplists:get_value(async, Opts, undefined),
       setopts(State2, [{active, true}]),
  -    {ok,
  -     State2#state{on_message = fun(M, S) -> auth(User, Password, M, S) end},
  -     Timeout}.
  -
  -handle_call(Call, _From, State) ->
  -    {stop, {unsupported_call, Call}, State}.
  +    {noreply,
  +     State2#state{on_message = fun(M, S) -> auth(Username, Password, M, S) end},
  +     Timeout};
   
   handle_cast(cancel, State = #state{backend = {Pid, Key}}) ->
       {ok, {Addr, Port}} = inet:peername(State#state.sock),
  
positive.code: 
  %% -- internal functions --
  
  start_ssl($S, _Flag, Opts, State) ->
      #state{sock = S1, timeout = Timeout} = State,
      case ssl:connect(S1, Opts, Timeout) of
          {ok, S2}        -> State#state{mod = ssl, sock = S2};
          {error, Reason} -> exit({ssl_negotiation_failed, Reason})
      end;
  
  start_ssl($N, Flag, _Opts, State) ->
      case Flag of
          true     -> State;
          required -> exit(ssl_not_available)
      end.
  
  setopts(#state{mod = Mod, sock = Sock}, Opts) ->
  
negative.code: -include("pgsql.hrl").
  -include("pgsql_binary.hrl").
  
  -record(state, {mod, sock, tail, backend, on_message, ready, timeout}).
  
  %% -- client interface --
  
  