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)

Uses (17)

Used by (1)