Releases: any1/neatvnc
Releases · any1/neatvnc
v0.8.1
v0.8.0
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 withnvnc_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
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
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
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
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