59 lines
2.3 KiB
OCaml
59 lines
2.3 KiB
OCaml
|
|
(*
|
||
|
|
* Copyright (c) 2014 Anil Madhavapeddy <anil@recoil.org>
|
||
|
|
*
|
||
|
|
* Permission to use, copy, modify, and distribute this software for any
|
||
|
|
* purpose with or without fee is hereby granted, provided that the above
|
||
|
|
* copyright notice and this permission notice appear in all copies.
|
||
|
|
*
|
||
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||
|
|
*
|
||
|
|
*)
|
||
|
|
|
||
|
|
(** Convert to and from [Unix] to [Ipaddr] representations
|
||
|
|
|
||
|
|
{e v5.6.1 - {{:https://github.com/mirage/ocaml-ipaddr} homepage}} *)
|
||
|
|
|
||
|
|
val to_inet_addr : Ipaddr.t -> Unix.inet_addr
|
||
|
|
(** [to_inet_addr ip] is the {!Unix.inet_addr} equivalent of the IPv4 or IPv6
|
||
|
|
address [ip]. *)
|
||
|
|
|
||
|
|
val of_inet_addr : Unix.inet_addr -> Ipaddr.t
|
||
|
|
(** [of_inet_addr ip] is the {!Ipaddr.t} equivalent of the {!Unix.inet_addr}
|
||
|
|
[ip]. *)
|
||
|
|
|
||
|
|
module V4 : sig
|
||
|
|
val to_inet_addr : Ipaddr.V4.t -> Unix.inet_addr
|
||
|
|
(** [to_inet_addr ip] is the {!Unix.inet_addr} equivalent of the IPv4 address
|
||
|
|
[ip]. *)
|
||
|
|
|
||
|
|
val of_inet_addr_exn : Unix.inet_addr -> Ipaddr.V4.t
|
||
|
|
(** [of_inet_addr_exn ip] is the {!Ipaddr.t} equivalent of the
|
||
|
|
{!Unix.inet_addr} [ip] IPv4 address. Raises {!Ipaddr.Parse_error} if [ip]
|
||
|
|
is not a valid representation of an IPv4 address. *)
|
||
|
|
|
||
|
|
val of_inet_addr : Unix.inet_addr -> Ipaddr.V4.t option
|
||
|
|
(** Same as [of_inet_addr_exn] but returns an option type instead of raising
|
||
|
|
an exception. *)
|
||
|
|
end
|
||
|
|
|
||
|
|
module V6 : sig
|
||
|
|
val to_inet_addr : Ipaddr.V6.t -> Unix.inet_addr
|
||
|
|
(** [to_inet_addr ip] is the {!Unix.inet_addr} equivalent of the IPv6 address
|
||
|
|
[ip]. *)
|
||
|
|
|
||
|
|
val of_inet_addr_exn : Unix.inet_addr -> Ipaddr.V6.t
|
||
|
|
(** [of_inet_addr_exn ip] is the {!Ipaddr.t} equivalent of the
|
||
|
|
{!Unix.inet_addr} [ip] IPv6 address. Raises {!Ipaddr.Parse_error} if [ip]
|
||
|
|
is not a valid representation of an IPv6 address. *)
|
||
|
|
|
||
|
|
val of_inet_addr : Unix.inet_addr -> Ipaddr.V6.t option
|
||
|
|
(** Same as [of_inet_addr_exn] but returns an option type instead of raising
|
||
|
|
an exception. *)
|
||
|
|
end
|