def sasl.first
bend-kit-postgres@0.3.0.0 · postgres.bend:304
import bend-kit-postgres@0.3.0.0/postgres.bend as Postgres
import Base
import bend-kit-postgres@0.3.0.0/codec.bend as Codec
import bend-kit-postgres@0.3.0.0/scram.bend as Scram
304def sasl.first(c: Conn, +pass: String, f: Result<&1, &1, U32 & String, Scram.First & String>) -> IO(Result<&1, &1, Failure, Conn>):
305 match f:
306 case Fail{(code, why)}:
307 abort(Conn, c, Auth{why})
308 case Done{(st, msg)}:
309 do IO<Result<&1, &1, Failure, Conn>>:
310 m : Result<&1, &1, Failure, Conn & Codec.Back> <- exchange(c, Codec.SASLInitial{bytes(Scram.mechanism()), bytes(msg)})
311 sasl.cont(st, pass, m)