def sasl.cont
bend-kit-postgres@0.3.0.0 · postgres.bend:289
import bend-kit-postgres@0.3.0.0/postgres.bend as Postgres
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import bend-kit-postgres@0.3.0.0/codec.bend as Codec
import bend-kit-postgres@0.3.0.0/scram.bend as Scram
289def sasl.cont(st: Scram.First, +pass: String, r: Result<&1, &1, Failure, Conn & Codec.Back>) -> IO(Result<&1, &1, Failure, Conn>):
290 match r:
291 case Fail{e}:
292 IO.pure(Result<&1, &1, Failure, Conn>, Fail{e})
293 case Done{(c, m)}:
294 match m:
295 case Codec.AuthSASLContinue{data}:
296 do IO<Result<&1, &1, Failure, Conn>>:
297 f : Result<&1, &1, U32 & String, Scram.Final & String> <- Scram.respond(st, Bytes.to_string(data), pass)
298 sasl.respond(c, f)
299 case Codec.ErrorResponse{fs}:
300 reject(Conn, c, fs)
301 case _:
302 abort(Conn, c, Malformed{})