package mnet-happy-eyeballs

  1. Overview
  2. Docs
Connecting to a remote host via IP version 4 or 6 using mnet

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mnet-0.0.8.tbz
sha256=07233e57f836eadd9566dbc2c7e81a0da058c52c40e8cf38eb9b2f178a9fa537
sha512=e190d793c9950a85e3fc8865f26a222c2763ad8f2c2972cfb5fe10926f2ecc39d75b4f970065cafa9526c4d1edb8b3574dd4b37893fca6de144fe7ced4a23bb0

doc/CHANGES.html

v0.0.8 (2026-10-07)

  • Upgrade to utcp.0.0.8 (@dinosaure, [!70][70])
  • Be sure that Mnet_{ssh,tls} don't emit effects when we close the connection (@dinosaure, [!70][70])

    • Also fix Mnet_ssh.close to use `write_without_interruption in all situation (@dinosaure, [c552a4a][c552a4a])
    • Inhibit possible exception when we send EOF through SSH (@dinosaure, [c2fc7fe][c2fc7fe])
  • Send back the exit-code through SSH (@dinosaure, [!71][71])
  • Intervene write_{,without_}interruption on mnet-tls (@dinosaure, fix [!70][70], [876adfa][876adfa])
  • Avoid an exception leak on mnet-dhcp (@dinosaure, [!72][72])
  • Fix mnet-happy-eyeballs and don't lose some events when we timeout (@dinosaure, [!73][73])
  • Fix a possible exception when we decode ARPv4 packets (@dinosaure, [!74][74])
  • Only use unprivileged ports for DNS packets (@dinosaure, [!76][76])
  • Don't fill our ropes/diet with unknown datas when we receive fragments (@dinosaure, [!77][77])
  • Fix a possible exception when we decode IPv4 packets (@dinosaure, [!78][78])
  • Fix a possible exception when we decode DNS packets (@dinosaure, [!79][79])
  • Remove an assert false on our UDP stack (@dinosaure, [!80][80])
  • Be able to read/write TOS flags on IPv4 packets (@dinosaure, [!81][81])
  • Optimize a bit when we write Ethernet frame (@dinosaure, [!82][82])
  • Update to awa.0.7.0 (@hannesm, [!83][83])
  • Remove bin dependency to generate smaller unikernels (@dinosaure, [!84][84])
  • Improve Mnet_cli.stack and returns directly a 'a Mkernel.arg instead of arguments (@dinosaure, [!85][85])
  • Come back to the CLI for logs as Mirage (and remove the re dependency) (@dinosaure, [!86][86])

v0.0.7 (2026-09-08)

  • Use the last version of bin (@dinosaure, !67)
  • Rename mnet.ke (conflict with ke) to mnet.ring (@dinosaure, !68)

v0.0.6 (2026-09-03)

  • Add TCP.read_bigarray (@dinosaure, !62)
  • Add documentation on mnet.ke and improve it (@dinosaure, @hannesm, !63, !64)
  • Fix memory usage of mnet (@dinosaure, spotted by @hannesm, !65)

v0.0.5 (2026-08-28)

  • We can close multiple times a TCP connection (@dinosaure, @hannesm, !47)
  • Use warning names instead of numbers (@hannesm, !46)
  • Remove doublon about Ethernet.mac{,addr} (spotted by @hannesm, @dinosaure, !48)
  • Fix how we select our router on IPv6 (@reynir, !51)
  • Upgrade mnet with mkernel.0.0.4 (@hannesm, !53)
  • Use Mkernel.finally to finalize our daemon (@dinosaure, @reynir, !54)
  • Sync OPAM files with dune dependencies (@hannesm, !55)
  • Move command-line helpers to their own packages (@hannesm, @dinosaure, !56)
  • Introduce the new module Mnet_dhcp.Or_static which mix DHCP and our TCP/IP stack (@reynir, @hannesm, !52)
  • Be able to specify its own IPv6 gateway (instead of get them from RA) (@reynir, @hannesm, !50)
  • Improve the API of Mnet.TCP and provide a buffered flow and a direct flow

    breaking change TCP.get is renamed to TCP.read and TCP.{really_,}read to TCP.{really_,}input.

    (@dinosaure, @hannesm, !58)

  • Improve a bit our mnet-dns implementation and our interface (@dinosaure, !59)

v0.0.4 (2026-07-30)

  • Add the support of DHCP and the new package mnet-dhcp (@dinosaure, @reynir, !34)
  • Add a basic implementation of the SSH client (@dinosaure, !33)
  • Fix the compilation for OCaml 5.5 (@dinosaure, @kit-ty-kate, !36, #3)
  • Use Miou.Mutex.protect when we want to signal a Notify.t value (@dinosaure, [!35][35])
  • Replace our internal Bstr.t by bytes when it's about buffering on the TCP stack (@dinosaure, !38)
  • Use the new interface of utcp.0.0.6 (@dinosaure, !38)
  • Add ?ip on Mnet_tls.client_of_fd (@hannesm, !40)
  • Add a hard limit for incoming passive TCP connections (@dinosaure, @hannesm, !42)
  • Improve throughput for mnet-tls (@dinosaure, @hannesm, !39)
  • Fix how we handle active connection and use utcp.0.0.7 (@dinosaure, @hannesm, !43)

v0.0.3 (2026-06-09)

  • Minor simplification of mnet-tls about handshake (@hannesm, !28)
  • Improve mnet-cli (add setup_logs) (@dinosaure, !30)
  • Be able to return the TCP daemon (and be able to kill it) (@dinosaure, !31)
  • Add a new mnet-ssh package which implements SSH for unikernels (@dinosaure, !29)

v0.0.2 (2026-05-06)

  • Improve our unikernel example and our resolver, it's able to take a domain-name as an argument (@hannesm, !14)
  • Improve our IPv4 routing (@hannes, @reynir, @dinosaure, !16)
  • Improve mnet-cli and add titles for some options (@dinosaure, !17)
  • Catch exceptions when we read on TCP and/or TLS connections for DNS packets (@dinosaure, !18)
  • Fix how we try to instantiate a connection to nameservers (@dinosaure, @hannesm, !19)
  • Fix how we push new happy-eyeballs actions (@dinosaure, !20)
  • Add options for happy-eyeballs (@dinosaure, !22)
  • Fix our mnet-tls implementation and pass a flow after its handshake even if the flow was closed (on read and write side) (@dinosaure, !23)
  • Try to send TCP packets from our TCP timer directly without interruptions instead of push it into our queue (@dinosaure, !24)
  • Be able to resolve domain-name into our happy-eyeballs implementation (@dinosaure, !25)
  • Fix our mnet-dns implementation:

    • we fix how we read DNS packet from TCP and/or TLS connections
    • we fix how we try to instantiate a new connection to nameservers

    (@dinosaure, !26)

v0.0.1 (2026-02-17)

  • First public release of mnet