package verdict

  1. Overview
  2. Docs

Source file host.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type t =
  [ `Ip of Ipaddr.t
  | `Name of [ `host ] Domain_name.t
  ]

let of_string host =
  match Ipaddr.of_string host with
  | Ok ip -> Ok (`Ip ip)
  | Error _ ->
    (match Domain_name.of_string host with
     | Error (`Msg reason) -> Error reason
     | Ok name ->
       (match Domain_name.host name with
        | Error (`Msg reason) -> Error reason
        | Ok name ->
          if Domain_name.to_strings name = [] then Error "empty host" else Ok (`Name name)))
;;