Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No SIGPIPE on Windows #212

Merged
merged 1 commit into from
Oct 29, 2020
Merged

No SIGPIPE on Windows #212

merged 1 commit into from
Oct 29, 2020

Conversation

dra27
Copy link
Contributor

@dra27 dra27 commented Oct 28, 2020

Arguably mean of Sys.set_signal to fail when you ask it to ignore a signal which isn't available, but we are where we are!

I haven't checked, but SIGPIPE should be available on Cygwin, so it's intentional that this is just Sys.win32

@talex5 talex5 merged commit 4e1fdf8 into mirage:master Oct 29, 2020
talex5 added a commit to talex5/opam-repository that referenced this pull request Dec 28, 2020
…pc and capnp-rpc-unix (0.9.0)

CHANGES:

- Add connection progress indicator (@talex5 mirage/capnp-rpc#220).
  Clients can now use `Capnp_rpc_unix.with_cap_exn` to show a progress indicator while waiting to connect.
  It will use the log if enabled.
  If not, but stderr is a tty, it shows a message while connecting and then erases it (if connecting takes longer than 0.5s).
  If stderr is not a tty, it just prints a message there.

- Use `Mirage_crypto_rng_lwt.initialize` instead of `Mirage_crypto_rng_unix.initialize` (@hannesm mirage/capnp-rpc#217).
  The former periodically feeds entropy to the RNG, while the latter seeds the RNG only once.

- Set TCP_KEEPIDLE=60 if possible (@talex5 mirage/capnp-rpc#214).
  Cap'n Proto connections tend to be long lived and we therefore turn on the `SO_KEEPALIVE` option.
  However, the default keepalive timeout of 2 hours is much too long for some networks.
  In particular, Docker's libnetwork silently drops idle connections after about 10 minutes.

Windows support:

- Prevent crash if ExtUnix wasn't built with sockopt (@MisterDA mirage/capnp-rpc#218).
  If ExtUnix isn't built with sockopt then the symbol `have_sockopt_int` isn't available and an exception is raised.
  This may be the case on some environments (e.g., ExtUnix built with mingw-w64).
  It is a workaround until support for `TCP_KEEPIDLE` is added for these environments (e.g., using Winsock instead).

- There is no SIGPIPE on Windows (@dra27 mirage/capnp-rpc#212).

- Switch from "capnpc" to "capnp compile" (@talex5 mirage/capnp-rpc#213).
  `capnpc` seems to be the old name, and isn't present on Windows.

Build changes:

- Remove Travis and Dockerfile (@talex5 mirage/capnp-rpc#220).
  Travis is very slow and error-prone now, and ocaml-ci generates a working Dockerfile automatically for people who want it.

- Include transitive dependencies in opam files (@talex5 mirage/capnp-rpc#219).
  Patch generated by https://github.com/ocurrent/opam-dune-lint/

- Require `tcpip.unix` specifically to get the checksum stubs linked (@hannesm mirage/capnp-rpc#216).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants