Skip to content

Releases: any1/neatvnc

v0.8.1

01 Aug 22:47
Compare
Choose a tag to compare

This release fixes a security vulnerability.

Package maintainers are advised to upgrade ASAP.

The vulnerability was reported by Dane Bouchie and Travis Wise.

v0.8.0

25 Feb 12:10
Compare
Choose a tag to compare

Highlights

  • The colour map pixel format as described in RFC 6143 has been implemented. Before, the client would just get disconnected if they requested it. Now they get a map that emulates RGB332.
  • Momentary interception of log messages. The user can now set a thread-local log hander and then set it back to the default.
  • Philipp Zabel made the code more consistent with the style guide.

Breaking Changes

  • nvnc_client_get_hostname has been replaced with nvnc_client_get_address

Bugfixes

These have already been released as part of the v0.7 branch, but they will also be enumerated here.

  • Apple's Diffie-Hellman authentication (security type 30) has been fixed.
  • A new client connection no longer causes a DNS lookup.
  • Clients are now allowed to request more than 32 encodings (#108)
  • Zlib streams are now preserved when a client switches between encodings (#109)

Shortlog

Andri Yngvason (24):
      Set version for next release
      README: Enumerate dependencies for crypto
      Don't use tag for git version
      server: Fix double-free on failed Apple DH
      crypto: Initialise AES-ECB decode context correctly
      server: Remove DNS lookup
      server: Don't complete fb update more than once
      logging: Export default log function
      logging: Add method to set thread local log function
      logging: Set log function to default when unset
      Replace nvnc_client_get_hostname with nvnc_client_get_address
      h264-encoder: Use AV_FRAME_FLAG_KEY instead of key_frame
      server: Allow server to request more than 32 encodings
      Warn when client chooses non-true-color pixel format
      Keep zlib streams when switching encodings
      pixels: Add strings for RGB222 and BGR222
      server: Log pixel format choice
      server: Log encodings reported by client
      server: Drop current frame if formats change
      server: Extract encoder initialisation function
      Consolidate security handshake result handling
      Implement colour map
      Add option to enable experimental features
      Release v0.8.0

Philipp Zabel (3):
      Indent wrapped argument lists with two tabs (function definitions)
      Indent wrapped argument lists with two tabs (function calls)
      Remove superfluous whitespace

v0.7.2

02 Feb 22:47
Compare
Choose a tag to compare

This release fixes a couple of bugs:

  • Clients are now allowed to request more than 32 encodings (#108)
  • Zlib streams are now preserved when a client switches between encodings (#109)

Changes

Andri Yngvason (2):
      server: Allow server to request more than 32 encodings
      Keep zlib streams when switching encodings

v0.7.1

05 Nov 20:47
Compare
Choose a tag to compare

This release fixes a couple of bugs.

  • Apple's Diffie-Hellman authentication (security type 30) has been fixed.
  • A new client connection no longer causes a DNS lookup.

Changes

Andri Yngvason (4):
      server: Fix double-free on failed Apple DH
      crypto: Initialise AES-ECB decode context correctly
      server: Remove DNS lookup
      Release v0.7.1

v0.7.0

04 Oct 22:13
Compare
Choose a tag to compare

Highlights

  • Desktop resizing
  • Software pixel buffers with less than 32 bits per pixel are now supported
  • The server may now choose to open a websocket instead of a regular TCP socket
  • The RSA-AES and RSA-AES-256 security types have now been implemented
  • A Diffie-Hellman based security type from Apple is also implemented, although not recommended
  • Murmurhash in the damage refinery has been replaced with xxHash, which performs much better in my tests so far

Bugfixes

  • Users should now get proper feedback when authentication fails

Changes

Andri Yngvason (69):
      Remove _clang-format
      Add a CONTRIBUTING.md
      .github: Add a pull request template
      test: pixels: Use unsigned numeric literals
      test: pixels: Revert accidental change
      Turn stream into abstract interface class
      stream: Add a cork to pause sending
      Implement websocket
      Add NTP inspired latency tracking and time sync
      stream: Add exec_and_send function
      server: Use stream_exec_and_send for ntp
      server: Reduce SO_SNDBUF to 4096
      stream-tcp: EAGAIN is not an error
      stream: Add a TODO about cleaning up struct
      stream-gnutls: Fix use after free
      stream-gnutls: Handle EAGAIN correctly
      server: Set SO_SNDBUF to 65536
      meson: Ignore format-truncation warnings
      ws-handshake: Handle protocol & version fields
      stream-ws: Sanitise handshake input
      http: Remove unused code
      http: Re-order includes
      http: Stop memory leak in failure path
      http: Only support GET method
      stream: Move tls specific member into tls impl
      stream: Allocate enough for tls upgrade
      server: Actually send a reason when handshake fails
      server: Defer client_unref in close_after_write
      Add abstract interface for low level crypto
      stream: Integrate cipher
      Implement Apple's Diffie-Hellman based security type 30
      crypto: Add RSA and AES-EAX
      crypto: Integrate message handling into cipher
      Implement RSA-AES
      Add temporary api function to enable auth without tls
      stream-ws: Inherit stream-tcp
      stream-ws: Clean up exec-and-send resources
      Create dedicated RSA-AES stream
      crypto: Add helper functions for hashing
      server: Use hash_{one,many}
      crypto: Add AES256-EAX cipher
      crypto: Remove unused code
      crypto: Add sha256
      server: Define rsa-aes server key length constant
      crypto: Make deleting NULL pointers noop
      server: Clean up crypto resources on disconnect
      Implement RSA-AES-256 security type
      Add base64 encoder & decoder
      ws-handshake: Use own base64 and SHA1 implementations
      Export base64 encoder and decoder
      crypto: Add method to import RSA private keys
      API: Add method to set RSA credentials
      server: Allow arbitrary RSA key length
      Remove logging of sensitive information
      API: Consolidate setup of security constraints
      websocket: Add some missing copyright notices
      Replace strlcpy with strncpy
      Notify client about NTP support
      server: Use memcpy instead of strncpy for username/password
      stream: rsa-aes: Unref payload after encoding
      Revert "Export base64 encoder and decoder"
      server: Use uint32_t for security result failure path
      damage-refinery: Replace murmurhash with XXH3
      crypto-nettle: Fix use after free
      server: Free RSA creds on close
      server: Defer cleaning up client resources on close
      damage-refinery: Use scalar xxh3 implementation

MazTheMan (2):
      Implement 24 bit pixel formats for raw and tight
      zrle: fix for source format of 24 bits

Philipp Zabel (3):
      Implement desktop resizing
      examples: draw: Demonstrate desktop resizing
      meson: Fix Meson warning about missing check kwarg in run_command() calls

v0.6.0

23 Jan 10:36
Compare
Choose a tag to compare

Highlights

  • The client now has control over h264 quality settings
  • Left & right scrolling is now supported
  • A custom framebuffer allocator function can now be assigned
  • The following functions have been added
    • A function for querying client side cursor support
    • A function to get the hostname of a connected client
    • A function to get the credentials of an authenticated client
    • A function for listing connected clients
    • A function for disconnecting a client

Bug fixes

  • A race condition when a client tries to resize the display before it has an encoder
  • Cursor buffers are now freed on close
  • Various race conditions in encoders
  • Spurious exits due to SIGPIPE
  • Occasional leaked buffers when clients disconnect
  • Clients no longer linger on exit with TLS

Changes

Andri Yngvason (36):
      Fix jpeg quality setting
      h264: Set quality according to client's wishes
      stream: Remove stray ampersand in tls handshake failure code path
      Add constants for left and right scroll
      README: Remove client compatibility table
      README: Reorder dependencies
      README: Upgrade dependency list
      examples: draw: Fix cursor setter argument order
      resampler: Use transformed width as destination stride
      Revert "h264-encoder: Add 30 bit color depth formats"
      server: Fix encoding selection for sw frames
      h264-encoder: Set async_depth=1
      tight: Disable chroma subsampling at q=9
      server: Replace abort() with NVNC_LOG_PANIC
      Add debug logging for tcp address binding
      meson: Ack aml API changes
      fb-pool: Add setter for fb allocator
      server: Free cursor buffers on close
      Reference count encoders
      server: Make encoder inert when closing client
      tight: Keep reference to encoder while encoding
      raw: Keep reference to encoder while encoding
      zrle: Keep reference to encoder while encoding
      stream: Use MSG_NOSIGNAL
      raw: Unref result in destroy
      zrle: Unref result in destroy
      Remove push/pull encoder interface
      raw: Fix worker data dependencies
      server: Properly handle stream write errors
      enc-util: Add function to calculate region area
      raw: Allocate conservatively sized buffers
      Add functions for listing clients
      Pass nvnc_client to cut-text callback
      meson: Set default warning level to 2
      meson: Require specific version of aml
      Release v0.6.0

Jeroen Hofstee (1):
      don't resize an encoder if it is not set

Jim Ramsay (3):
      Record hostname for each connected client
      Record authenticated username for each connected client
      Add nvnc_client_close API

Philipp Zabel (4):
      Allow to query client-side cursor support
      Only set HAVE_LIBAVUTIL if libav is actually used
      Fix fallthrough warnings in murmurhash
      stream: Fix remote closing TLS connection

v0.5.4

10 Sep 15:58
Compare
Choose a tag to compare

This fixes stalling during h264 encoding. The FFmpeg devs seem to think that it's normal to change the default behaviour of their code, so this needs to be fixed here instead.

v0.5.3

23 Aug 22:42
Compare
Choose a tag to compare
Andri Yngvason (3):
      Revert "h264-encoder: Add 30 bit color depth formats"
      server: Fix encoding selection for sw frames

v0.5.2

23 Aug 21:28
Compare
Choose a tag to compare
Andri Yngvason (3):
      stream: Remove stray ampersand in tls handshake failure code path
      resampler: Use transformed width as destination stride

v0.5.1

09 Jul 21:48
Compare
Choose a tag to compare
Andri Yngvason (3):
      meson: Use partial_dependency() for libdrm cflags
      test: meson: Add missing libdrm_inc dependency

Jan Beich (1):
      server: add missing header after f20ffb5e1efe