mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2026-01-23 02:14:29 +00:00
VNC-275 added explicit keepalive
This commit is contained in:
parent
e54f263e55
commit
c088ab3d1a
9 changed files with 32 additions and 2 deletions
2
.gitmodules
vendored
2
.gitmodules
vendored
|
|
@ -1,7 +1,7 @@
|
|||
[submodule "kasmweb"]
|
||||
path = kasmweb
|
||||
url = https://github.com/kasmtech/noVNC.git
|
||||
branch = master
|
||||
branch = feature/VNC-275_server_idle_timeout
|
||||
[submodule "kasmvnc-functional-tests"]
|
||||
path = kasmvnc-functional-tests
|
||||
url = git@gitlab.com:kasm-technologies/internal/kasmvnc-functional-tests.git
|
||||
|
|
|
|||
|
|
@ -104,3 +104,7 @@ void SMsgHandler::setDesktopSize(int fb_width, int fb_height,
|
|||
cp.height = fb_height;
|
||||
cp.screenLayout = layout;
|
||||
}
|
||||
|
||||
void SMsgHandler::keepAlive()
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ namespace rfb {
|
|||
|
||||
virtual void sendStats(const bool toClient = true) = 0;
|
||||
virtual void handleFrameStats(rdr::U32 all, rdr::U32 render) = 0;
|
||||
virtual void keepAlive();
|
||||
|
||||
virtual bool canChangeKasmSettings() const = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -106,6 +106,9 @@ void SMsgReader::readMsg()
|
|||
case msgTypeUnixRelay:
|
||||
readUnixRelay();
|
||||
break;
|
||||
case msgTypeKeepAlive:
|
||||
readKeepAlive();
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown message type %d\n", msgType);
|
||||
throw Exception("unknown message type");
|
||||
|
|
@ -319,6 +322,11 @@ void SMsgReader::readFrameStats()
|
|||
handler->handleFrameStats(all, render);
|
||||
}
|
||||
|
||||
void SMsgReader::readKeepAlive()
|
||||
{
|
||||
handler->keepAlive();
|
||||
}
|
||||
|
||||
void SMsgReader::readQEMUMessage()
|
||||
{
|
||||
int subType = is->readU8();
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ namespace rfb {
|
|||
void readRequestStats();
|
||||
void readFrameStats();
|
||||
void readBinaryClipboard();
|
||||
void readKeepAlive();
|
||||
|
||||
void readQEMUMessage();
|
||||
void readQEMUKeyEvent();
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ static LogWriter vlog("VNCSConnST");
|
|||
|
||||
static Cursor emptyCursor(0, 0, Point(0, 0), NULL);
|
||||
|
||||
namespace {
|
||||
const rdr::U32 CLIENT_KEEPALIVE_KEYSYM = 1;
|
||||
}
|
||||
|
||||
extern rfb::BoolParameter disablebasicauth;
|
||||
|
||||
extern "C" char unixrelaynames[MAX_UNIX_RELAYS][MAX_UNIX_RELAY_NAME_LEN];
|
||||
|
|
@ -861,6 +865,10 @@ public:
|
|||
void VNCSConnectionST::keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down) {
|
||||
rdr::U32 lookup;
|
||||
|
||||
if (keycode == 0 && keysym == CLIENT_KEEPALIVE_KEYSYM) {
|
||||
return;
|
||||
}
|
||||
|
||||
lastEventTime = time(0);
|
||||
server->lastUserInputTime = lastEventTime;
|
||||
if (!(accessRights & AccessKeyEvents)) return;
|
||||
|
|
@ -1699,6 +1707,11 @@ void VNCSConnectionST::handleFrameStats(rdr::U32 all, rdr::U32 render)
|
|||
frameTracking = false;
|
||||
}
|
||||
|
||||
void VNCSConnectionST::keepAlive()
|
||||
{
|
||||
// Keepalive traffic should not influence idle disconnect timers.
|
||||
}
|
||||
|
||||
// setCursor() is called whenever the cursor has changed shape or pixel format.
|
||||
// If the client supports local cursor then it will arrange for the cursor to
|
||||
// be sent to the client.
|
||||
|
|
|
|||
|
|
@ -172,6 +172,7 @@ namespace rfb {
|
|||
|
||||
virtual void sendStats(const bool toClient = true);
|
||||
virtual void handleFrameStats(rdr::U32 all, rdr::U32 render);
|
||||
virtual void keepAlive();
|
||||
|
||||
bool is_owner() const {
|
||||
bool read, write, owner;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ namespace rfb {
|
|||
const int msgTypeUpgradeToUdp = 181;
|
||||
const int msgTypeSubscribeUnixRelay = 182;
|
||||
const int msgTypeUnixRelay = 183;
|
||||
const int msgTypeKeepAlive = 184;
|
||||
|
||||
const int msgTypeServerFence = 248;
|
||||
const int msgTypeUserAddedToSession = 253;
|
||||
|
|
@ -61,6 +62,7 @@ namespace rfb {
|
|||
//const int msgTypeUpgradeToUdp = 181;
|
||||
//const int msgTypeSubscribeUnixRelay = 182;
|
||||
//const int msgTypeUnixRelay = 183;
|
||||
//const int msgTypeKeepAlive = 184;
|
||||
|
||||
const int msgTypeClientFence = 248;
|
||||
|
||||
|
|
|
|||
2
kasmweb
2
kasmweb
|
|
@ -1 +1 @@
|
|||
Subproject commit da6b8f3cfbed05891380f33aa4ca541c99d1f4c6
|
||||
Subproject commit 52b190d8feabe54b029420450011e36d26bc7cfc
|
||||
Loading…
Add table
Add a link
Reference in a new issue