Commit Graph

411 Commits (79d24ae0ca91ad0b38f0953547b74915940b4ace)

Author SHA1 Message Date
Andri Yngvason 79d24ae0ca stream-gnutls: Handle EAGAIN correctly 2023-04-11 20:33:13 +00:00
Andri Yngvason 4b5e4d628d stream-gnutls: Fix use after free 2023-04-11 20:32:37 +00:00
Andri Yngvason 6a5ea71289 stream: Add a TODO about cleaning up struct 2023-04-11 19:54:25 +00:00
Andri Yngvason afc0256b2f stream-tcp: EAGAIN is not an error
This fixes inadvertent treatment of a normal situation as an error.
2023-04-10 11:36:59 +00:00
Andri Yngvason 5530b22fde server: Reduce SO_SNDBUF to 4096
This will allow us to more accuately gauge the back-pressure on the socket.
2023-04-08 13:40:24 +00:00
Andri Yngvason aa6fadf2fd server: Use stream_exec_and_send for ntp 2023-04-08 13:40:24 +00:00
Andri Yngvason 0cdbf6a602 stream: Add exec_and_send function
This allows us to execute a function right before a leaves the send queue
and is really only useful for NTP as far as I can tell.
2023-04-08 13:02:45 +00:00
Andri Yngvason 19172140ba Add NTP inspired latency tracking and time sync 2023-04-07 21:24:22 +00:00
Andri Yngvason 8847511596 Implement websocket 2023-04-07 12:47:49 +00:00
Andri Yngvason e385a98238 stream: Add a cork to pause sending 2023-04-07 12:47:49 +00:00
Andri Yngvason 979d10ce62 Turn stream into abstract interface class 2023-04-06 21:02:39 +00:00
Andri Yngvason 2cefc7febb test: pixels: Revert accidental change 2023-03-23 10:18:28 +00:00
Andri Yngvason 1081ff35cd test: pixels: Use unsigned numeric literals
This fixes type promotion issues with the swap32 macro.
2023-03-22 09:28:06 +00:00
Andri Yngvason e6931239bc .github: Add a pull request template 2023-02-26 11:27:01 +00:00
Andri Yngvason 796b9bc20e Add a CONTRIBUTING.md 2023-02-26 11:25:46 +00:00
Philipp Zabel 6f1c12f376 examples: draw: Demonstrate desktop resizing
Let whiteboard size follow client window size for clients that support
the ExtendedDesktopSize pseudo-encoding.
2023-02-25 11:03:44 +00:00
Philipp Zabel e19c9ad600 Implement desktop resizing
Implement minimal support for ExtendedDesktopSize pseudo-encoding
and SetDesktopSize client message.

The opaque nvnc_desktop_layout structure contains all information
from the SetDesktopSize client message.
2023-02-25 11:03:44 +00:00
Andri Yngvason eacebad277 Remove _clang-format
It's not helpful
2023-02-24 15:25:48 +00:00
Andri Yngvason 8b3dc1ae60 Release v0.6.0 2023-01-22 13:06:36 +00:00
Andri Yngvason cdf990db75 meson: Require specific version of aml 2023-01-22 13:06:36 +00:00
Philipp Zabel afe37b983d stream: Fix remote closing TLS connection
If a TLS stream is closed by the remote VNC client,
stream__remote_closed must be called to signal the server.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2022-11-30 15:26:28 +00:00
Andri Yngvason bc87cbbb7d meson: Set default warning level to 2 2022-11-26 18:19:24 +00:00
Jim Ramsay 332be4d471 Add nvnc_client_close API
This allows the user or application to terminate any given nvnc_client
connection at any time.

Signed-off-by: Jim Ramsay <i.am@jimramsay.com>
2022-11-24 16:08:06 +00:00
Andri Yngvason 8f979c9928 Pass nvnc_client to cut-text callback 2022-11-20 22:42:01 +00:00
Andri Yngvason 79f26924ea Add functions for listing clients 2022-11-20 12:03:18 +00:00
Andri Yngvason 8a7509bd3a raw: Allocate conservatively sized buffers 2022-11-05 13:54:01 +00:00
Andri Yngvason f31ddf7fe9 enc-util: Add function to calculate region area 2022-11-05 13:52:55 +00:00
Andri Yngvason 3647457f6d server: Properly handle stream write errors
This fixes leaked rcbufs when clients disconnect.
2022-11-05 13:22:14 +00:00
Andri Yngvason fbe8631add raw: Fix worker data dependencies 2022-11-05 13:22:14 +00:00
Andri Yngvason 935ce4e98d Remove push/pull encoder interface
Think of it as a failed experiment.
2022-11-05 10:15:56 +00:00
Jim Ramsay 036b549fd8 Record authenticated username for each connected client
Signed-off-by: Jim Ramsay <jramsay@redhat.com>
2022-11-04 09:41:14 +00:00
Jim Ramsay 86bd2ced85 Record hostname for each connected client
Signed-off-by: Jim Ramsay <jramsay@redhat.com>
2022-11-04 09:41:14 +00:00
Andri Yngvason 73e1089f06 zrle: Unref result in destroy 2022-10-30 13:53:10 +00:00
Andri Yngvason b525608a06 raw: Unref result in destroy 2022-10-30 13:52:52 +00:00
Andri Yngvason b3c1d5d1dc stream: Use MSG_NOSIGNAL
Without MSG_NOSIGNAL, sending to closed sockets will generate SIGPIPE.
2022-10-30 13:07:13 +00:00
Andri Yngvason 95742676c9 zrle: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 91dc5da243 raw: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 727b2f727e tight: Keep reference to encoder while encoding 2022-10-30 12:44:05 +00:00
Andri Yngvason 8f2d137046 server: Make encoder inert when closing client 2022-10-30 12:44:05 +00:00
Andri Yngvason baaf84eab9 Reference count encoders 2022-10-30 12:44:05 +00:00
Andri Yngvason 48b070af5a server: Free cursor buffers on close 2022-10-30 12:44:05 +00:00
Andri Yngvason adef210252 fb-pool: Add setter for fb allocator 2022-10-29 18:40:02 +00:00
Andri Yngvason 411530b5da meson: Ack aml API changes 2022-10-29 11:50:34 +00:00
Andri Yngvason efb5ab956c Add debug logging for tcp address binding 2022-10-24 20:55:38 +00:00
Andri Yngvason 3588670c81 server: Replace abort() with NVNC_LOG_PANIC 2022-10-24 09:16:59 +00:00
Andri Yngvason 3c4a069ba2 tight: Disable chroma subsampling at q=9
This avoids color banding at the highest quality level.
2022-10-23 19:05:32 +00:00
Philipp Zabel df84f371fe Fix fallthrough warnings in murmurhash
Fix two -Wimplicit-fallthrough warnings in the murmurhash function:

  ../src/murmurhash.c: In function 'murmurhash':
  ../src/murmurhash.c:71:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
     71 |     case 3: k ^= (tail[2] << 16);
        |             ~~^~~~~~~~~~~~~~~~~~
  ../src/murmurhash.c:72:5: note: here
     72 |     case 2: k ^= (tail[1] << 8);
        |     ^~~~
  ../src/murmurhash.c:72:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
     72 |     case 2: k ^= (tail[1] << 8);
        |             ~~^~~~~~~~~~~~~~~~~
  ../src/murmurhash.c:74:5: note: here
     74 |     case 1:
        |     ^~~~
2022-10-15 10:00:43 +00:00
Jeroen Hofstee 5b2a062f0e don't resize an encoder if it is not set 2022-10-15 09:59:05 +00:00
Philipp Zabel 1b929afb2c Only set HAVE_LIBAVUTIL if libav is actually used
src/log.c uses av_log_set_level() and av_log_set_callback() from
libavutil if HAVE_LIBAVUTIL is set, so the libavutil dependence
must be added at the same time. Since libav logging is only used
by the h264 code, enable it all together for now.
2022-10-15 09:57:53 +00:00
Andri Yngvason b932f3e2e0 h264-encoder: Set async_depth=1
This fixes stalling during encoding. The FFmpeg devs seem to think that it's
normal to change the default behaviour or their code, so this needs to be
fixed here instead.

Fixes #73
2022-09-10 15:48:15 +00:00