Compare commits

...

8 Commits
master ... v0.7

Author SHA1 Message Date
Andri Yngvason 4de85acadb Release v0.7.2 2023-11-05 21:18:13 +00:00
Andri Yngvason 2466f3a1d1 Relax auth parameter sanitation
Since more authentication modes have been added, it's no longer a
requirement to have key files set.
2023-11-05 21:15:59 +00:00
Lucas Servén Marín 51d82a183f man: document websocket flag
Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
2023-11-05 21:15:56 +00:00
Andri Yngvason 4a518986b8 Sanitise buffer damage from compositor
Some compositors fail to send properly bounded damage regions. Let's
not crash when that happens.
2023-11-04 23:33:51 +00:00
Andri Yngvason f9b129e096 ctl-server: Add null-check for info.seat 2023-10-14 10:48:25 +00:00
Christopher Snowhill e035f642a6 Add null seat pointer checks 2023-10-14 10:48:07 +00:00
Andri Yngvason 53cc5d185c meson: Bump neatvnc version requirement 2023-10-04 22:52:31 +00:00
Andri Yngvason 6ee3303c68 Release v0.7.0 2023-10-04 22:11:26 +00:00
4 changed files with 23 additions and 13 deletions

View File

@ -1,7 +1,7 @@
project(
'wayvnc',
'c',
version: '0.6.0',
version: '0.7.2',
license: 'ISC',
default_options: [
'c_std=gnu11',
@ -54,7 +54,7 @@ wayland_client = dependency('wayland-client')
jansson = dependency('jansson')
aml_version = ['>=0.3.0', '<0.4.0']
neatvnc_version = ['>=0.6.0', '<0.7.0']
neatvnc_version = ['>=0.7.0', '<0.8.0']
neatvnc_project = subproject(
'neatvnc',

View File

@ -369,7 +369,10 @@ static struct cmd_response* generate_vnc_client_list(struct ctl* self)
json_object_set_new(packed, "username",
json_string(info.username));
json_object_set_new(packed, "seat", json_string(info.seat));
if (info.seat)
json_object_set_new(packed, "seat",
json_string(info.seat));
json_array_append_new(response->data, packed);
}

View File

@ -527,7 +527,7 @@ static void client_info(const struct ctl_server_client* client_handle,
info->id = client->id;
info->hostname = nvnc_client_get_hostname(vnc_client);
info->username = nvnc_client_get_auth_username(vnc_client);
info->seat = client->seat->name;
info->seat = client->seat ? client->seat->name : NULL;
}
static int get_output_list(struct ctl* ctl,
@ -948,6 +948,9 @@ void wayvnc_process_frame(struct wayvnc* self)
nvnc_fb_set_transform(buffer->nvnc_fb,
(enum nvnc_transform)buffer_transform);
pixman_region_intersect_rect(&damage, &damage, 0, 0, buffer->width,
buffer->height);
nvnc_display_feed_buffer(self->nvnc_display, buffer->nvnc_fb,
&damage);
@ -999,18 +1002,14 @@ int check_cfg_sanity(struct cfg* cfg)
if (!nvnc_has_auth()) {
nvnc_log(NVNC_LOG_ERROR, "Authentication can't be enabled because it was not selected during build");
return -1;
}
if (!cfg->certificate_file && !cfg->rsa_private_key_file) {
nvnc_log(NVNC_LOG_ERROR, "Authentication enabled, but missing certificate_file");
rc = -1;
}
if (!cfg->private_key_file && !cfg->rsa_private_key_file) {
nvnc_log(NVNC_LOG_ERROR, "Authentication enabled, but missing private_key_file");
if (!!cfg->certificate_file != !!cfg->private_key_file) {
nvnc_log(NVNC_LOG_ERROR, "Need both certificate_file and private_key_file for TLS");
rc = -1;
}
if (!cfg->username && !cfg->enable_pam) {
nvnc_log(NVNC_LOG_ERROR, "Authentication enabled, but missing username");
rc = -1;
@ -1020,6 +1019,11 @@ int check_cfg_sanity(struct cfg* cfg)
nvnc_log(NVNC_LOG_ERROR, "Authentication enabled, but missing password");
rc = -1;
}
if (cfg->relax_encryption) {
nvnc_log(NVNC_LOG_WARNING, "Authentication enabled with relaxed encryption; not all sessions are guaranteed to be encrypted");
}
return rc;
}
@ -1095,7 +1099,7 @@ static void client_destroy(void* obj)
.id = self->id,
.hostname = nvnc_client_get_hostname(self->nvnc_client),
.username = nvnc_client_get_auth_username(self->nvnc_client),
.seat = self->seat->name,
.seat = self->seat ? self->seat->name : NULL,
};
ctl_server_event_disconnected(wayvnc->ctl, &info, wayvnc->nr_clients);
@ -1143,7 +1147,7 @@ static void on_nvnc_client_new(struct nvnc_client* client)
.id = wayvnc_client->id,
.hostname = nvnc_client_get_hostname(client),
.username = nvnc_client_get_auth_username(client),
.seat = wayvnc_client->seat->name,
.seat = wayvnc_client->seat ? wayvnc_client->seat->name : NULL,
};
ctl_server_event_connected(self->ctl, &info, self->nr_clients);

View File

@ -52,6 +52,9 @@ wayvnc - A VNC server for wlroots based Wayland compositors.
*-v,--verbose*
Be more verbose. Same as setting `--log-level=info`.
*-w,--websocket*
Create a websocket.
*-L,--log-level*
Set log level. The levels are: error, warning, info, debug, trace and
quiet.