Merge branch 'feature/KASM-2797_force_full_frame' into 'master'

Add /api/send_full_frame

Closes KASM-2797

See merge request kasm-technologies/internal/KasmVNC!50
This commit is contained in:
Anthony Merrill
2022-08-14 16:13:32 +00:00
5 changed files with 47 additions and 0 deletions

View File

@@ -49,6 +49,8 @@
extern "C" {
void vncSetGlueContext(int screenIndex);
extern int wakeuppipe[2];
}
using namespace rfb;
@@ -307,6 +309,15 @@ void XserverDesktop::handleSocketEvent(int fd, bool read, bool write)
{
try {
if (read) {
if (fd == wakeuppipe[0]) {
unsigned char buf;
while (::read(fd, &buf, 1) > 0);
server->refreshClients();
return;
}
if (handleListenerEvent(fd, &listeners, server))
return;
}

View File

@@ -17,8 +17,10 @@
* USA.
*/
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <set>
@@ -50,6 +52,8 @@
extern "C" {
void vncSetGlueContext(int screenIndex);
int wakeuppipe[2];
}
using namespace rfb;
@@ -228,6 +232,11 @@ void vncExtensionInit(void)
dummyY < 16)
vncFatalError("Invalid value to %s", Server::maxVideoResolution.getName());
pipe(wakeuppipe);
const int flags = fcntl(wakeuppipe[0], F_GETFL, 0);
fcntl(wakeuppipe[0], F_SETFL, flags | O_NONBLOCK);
vncSetNotifyFd(wakeuppipe[0], 0, true, false);
initialised = true;
}