package hvsock

  1. Overview
  2. Docs

Module Hvsock.SocketSource

An interface for hypervisor sockets which hides as many of the differences between Linux, Windows and Mac as possible.

Sourceexception Unsupported_platform of string

An operation cannot be performed on this platform

Sourcetype sockaddr

A socket address which can either be listened on or connected to.

Sourceval sockaddr_of_uri : Uri.t -> sockaddr

Parse a URI as a socket address. This currently supports

  • vsock://:80
  • hvsock://<VM GUID>/3049197C-9A4E-4FBF-9367-97F792F16994
  • hvsock://<VM name>/3049197C-9A4E-4FBF-9367-97F792F16994
  • vsock://2:80/
  • hyperkit://:80/Users/foo/Library/Containers/com.docker.docker/Data/vms/0
Sourceval to_hyperv : sockaddr -> Af_hyperv.sockaddr option

Expose the AF_HYPERV socket address, if one exists

Sourceval to_vsock : sockaddr -> Af_vsock.sockaddr option

Expose the AF_VSOCK socket address, if one exists

Sourceval to_hyperkit : sockaddr -> Hyperkit.sockaddr option

Expose the hyperkit socket address, if one exists

include Af_common.S with type sockaddr := sockaddr and type t = Unix.file_descr
Sourceval string_of_sockaddr : sockaddr -> string
Sourceval create : unit -> t

create () creates an unbound socket

Sourceval bind : t -> sockaddr -> unit

bind socket sockaddr binds socket to sockaddr

Sourceval listen : t -> int -> unit

listen socket queue_length sets the socket to listening mode with the given maximum queue length

Sourceval accept : t -> t * sockaddr

accept fd accepts a single connection

Sourceval connect : ?timeout_ms:int -> t -> sockaddr -> unit

connect ?timeout_ms fd sockaddr connects to a remote socket. On Windows the raw connect call can block forever if the server is not running when the call is executed (even if the server starts up afterwards) there is a default timeout of 300ms. On timeout this will raise Unix_error(Unix.ETIMEDOUT)

Sourceval writev : t -> Cstruct.t list -> int

Write a list of buffers

Sourceval read_into : t -> Cstruct.t -> int

Read into a buffer, returning the number of bytes written

Sourceval shutdown_read : t -> unit

Close the read half of the connection

Sourceval shutdown_write : t -> unit

Close the write half of the connection

Sourceval close : t -> unit

Close both halves of the connection

OCaml

Innovation. Community. Security.