Skip to content

Latest commit

 

History

History
205 lines (146 loc) · 9.87 KB

CHANGELOG.md

File metadata and controls

205 lines (146 loc) · 9.87 KB

  • waitfordata: overlay to delay connection initiation until first data is attempted to be written to it
  • Dockerfile updates
  • lengthprefixed: overlay - alternative to base64 mode
  • Fix for #23 - "happy eyeballs" for ws:// and wss:// URLs.

  • Option to stop sending or replying to WebSocket pings after specified amount of sent or received pings (for testing idling disconnection behaviour of counterparts).
  • --exec-exit-on-disconnect
  • Print Location: header value in error message when facing a redirect instead of a WebSocket connection.
  • Other minor fixes

Changes

  • --preamble (-p) options to prepend static text to Websocat sessions. For use to authenticate and subscribe to something over WebSocket. Note that specifying passwords on command line may be insecure. Also command line handling around -p is finicky. There is also --preamble-reverse (-P) option to prepend similar chunk in the reverse direction.
  • --compress-{zlib,deflate,gzip} and respective --uncompress-... options to modify binary WebSocket messages going to/from a WebSocket. Note that it is not related to permessage-deflate, which does similar thing, but on lower level.
  • exit_on_specific_byte: overlay to trigger exit when specific byte is encountered. For interactive tty usage.
  • --client-pkcs12-der to specify client identity certificate for connecting to wss:// or ssl: that requires mutual authentication.
  • openssl-probe is now active by default on Linux, to support for overriding CA lists using environment variables.
  • Incoming WebSocket frames and message are now limited by default, to prevent memory stuffing denial of service. But the default limit is big (100 megabytes). Use --max-ws-frame-length and --max-ws-message-length options to override.
  • Cargo.lock is now oriented for building with modern Rust compiler. There is Cargo.lock.legacy with dependencies manually locked to versions that support Rust 1.46.0.

Changes

  • Add --close-status-code and --close-reason
  • Fix --queue-len option that took no effect
  • Fix racing to connect to multiple resolved addresses in tcp: specifier (i.e. "happy eyeballs") - now it skips errors if there is a working connection. This does not fix ws://localhost unfortunately.
  • crypto: overlay and associated options
  • prometheus: overlay and associated options
  • random: specifier

Changes

  • ssl Cargo feature is now enabled by default
  • vendored_openssl Cargo feature is now not enabled by default
  • --stdout-announce-listening-ports option to print message when server port is ready to accept clients.
  • --no-close option now also affects Websocket server mode, not just client
  • timestamp: overlay to mangle message, prepending current timestamp as text
  • --print-ping-rtts option
  • Updated deps for #138 (not checked whether all yanks are resolved although).

Changes

  • --accept-from-fd option for better systemd intergration
  • exec:/cmd:/sh-c: specifiers now don't terminate process prematurely
  • --foreachmsg-wait-read for better foreachmsg: overlay behaviour. Now foreachmsg:exec:./myscript is more meaningul.
  • --basic-auth option to insert basic authentication header more easily
  • Websocket close message is now logged in debug mode

Changes

  • Websocat now does not set terminal to nonblocking mode if isatty by default. This should help with #76.
  • New overlay log: that prints bytes as they travel though Websocat, for debugging.

Changes

  • UDP multicast options
  • foreachmsg: overlay - run specifier (i.e. connect somewhere or execute a program) on each WebSocket message instead of on each WebSocket connection.
  • Various minor options like --max-messages or zero-length message handling.
  • Low-level Websocket features: --just-generate-key and --just-generate-accept options which help generating HTTP headers for WebSockets. ws-lowlevel-server: and ws-lowlevel-client: overlays to use expose WebSocket's data encoder/decoder without HTTP part.
  • Basic http:// client with arbitrary method, uri and so on.
  • Delay for autoreconnect: overlay
  • More pre-built release assets
  • Base64 mode for binary WebSocket messages
  • Prefixes for text and binary WebSocket messages, allowing to discriminate incoming binary and text WebSocket messages and intermix outgoing binary and text WebSocket messages.
  • Sort-of-unfinished http-post-sse: specifier allowing to use HTTP server-sent events (in one direction) and POST request bodies (in the other direction) instead of (or in addition to) a WebSocket and to bridge them together. This mode is not tested properly although.

Changes

  • Using client URI's like websocat ws://user:password@host/ now adds basic authentication HTTP header to request
  • New command-line option: --header-to-env
  • Minor dependencies update
  • Built with newer Rust on newer Debian

Changes

  • New options: --server-protocol, --ping-timeout, --ping-interval, --server-header
  • Fixed replying to WebSocket pings
  • Fixed replying to requests with Sec-WebSocket-Protocol.

Changes

Changes

Changes

  • Static files aside from the websocket for easy prototyping
  • SOCKS5 proxy client
  • wss:// listener
  • Setting environment variables for exec:
  • Sending SIGHUP signal to child process on client disconnect
  • --jsonrpc mode

Changes

  • --set-environment option and --static-file

Changes

Changes

Changes

Changes

Changes

Changes

  • Unix sockets
  • Executing programs and command lines
  • Unidirectional mode
  • Text mode (don't rely on it)

Changes

Changes