Session : sig ... endval mechanism : stringperform the server side authentication negotiation.
send_challenge_and_expect_response should be used to perform a challenge/response
exchange. If the client sent an initial response then the initial challenge will
be quietly discarded.
If the authentication flow has been completed, return Allow session or Deny msg
as appropriate to complete the flow.
If the negotiation fails for any reason (e.g. malformed client message or
network error) send_challenge_and_expect_response will raise, you should allow
this to bubble up.
You should use Monitor.protect to do any necessary cleanup.
val negotiate : log:Async_smtp__.Mail_log.t ‑> session ‑> send_challenge_and_expect_response:(string ‑> string Async_smtp.Smtp_monad.t) ‑> session Async_smtp.Smtp_monad.tperform the server side authentication negotiation.
send_challenge_and_expect_response should be used to perform a challenge/response
exchange. If the client sent an initial response then the initial challenge will
be quietly discarded.
If the authentication flow has been completed, return Allow session or Deny msg
as appropriate to complete the flow.
If the negotiation fails for any reason (e.g. malformed client message or
network error) send_challenge_and_expect_response will raise, you should allow
this to bubble up.
You should use Monitor.protect to do any necessary cleanup.