package krb

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Internal.ServerSource

type 'connection handle_client := Async.Socket.Address.Inet.t -> 'connection -> unit Async.Deferred.t
type ('authorize, 'r) krb_args := ?on_kerberos_error: [ `Call of Async.Socket.Address.Inet.t -> exn -> unit | `Ignore | `Raise ] -> ?on_handshake_error: [ `Call of Async.Socket.Address.Inet.t -> exn -> unit | `Ignore | `Raise ] -> ?on_handler_error: [ `Call of Async.Socket.Address.Inet.t -> exn -> unit | `Ignore | `Raise ] -> authorize:'authorize -> krb_mode:Mode.Server.t -> 'r
type ('authorize, 'connection) serve := ('authorize, Async.Tcp.Where_to_listen.inet -> 'connection handle_client -> (Async.Socket.Address.Inet.t, int) Server.t Async.Deferred.Or_error.t) krb_args async_tcp_server_args
Sourceval create_handler : (Authorize.t, Async_protocol.Connection.t handle_client -> (Async.Socket.Address.Inet.t -> Async.Reader.t -> Async.Writer.t -> unit Async.Deferred.t) Async.Deferred.Or_error.t) krb_args
Sourcemodule Krb_or_anon_conn : sig ... end

This is a bit misleading because it doesn't work with an unkerberized tcp client. It is in an Internal module because it is useful for implementing kerberized rpc serve_with_anon.

The create_with_anon server peeks the first few bytes to check if the client is sending a kerberos protocol header. If the unkerberized tcp client is expecting the server to send some initial bytes, it will be waiting until something presumably times out because the server is waiting for the client to send bytes also.

OCaml

Innovation. Community. Security.