Browse Source

Add AccessSetDesktopSize right.

So clients with limited access rights can not affect it.
tags/v1.4.90
Michal Srb 9 years ago
parent
commit
b318b8f978

+ 8
- 7
common/rfb/SConnection.cxx View File

static LogWriter vlog("SConnection"); static LogWriter vlog("SConnection");


// AccessRights values // AccessRights values
const SConnection::AccessRights SConnection::AccessView = 0x0001;
const SConnection::AccessRights SConnection::AccessKeyEvents = 0x0002;
const SConnection::AccessRights SConnection::AccessPtrEvents = 0x0004;
const SConnection::AccessRights SConnection::AccessCutText = 0x0008;
const SConnection::AccessRights SConnection::AccessDefault = 0x03ff;
const SConnection::AccessRights SConnection::AccessNoQuery = 0x0400;
const SConnection::AccessRights SConnection::AccessFull = 0xffff;
const SConnection::AccessRights SConnection::AccessView = 0x0001;
const SConnection::AccessRights SConnection::AccessKeyEvents = 0x0002;
const SConnection::AccessRights SConnection::AccessPtrEvents = 0x0004;
const SConnection::AccessRights SConnection::AccessCutText = 0x0008;
const SConnection::AccessRights SConnection::AccessSetDesktopSize = 0x0010;
const SConnection::AccessRights SConnection::AccessDefault = 0x03ff;
const SConnection::AccessRights SConnection::AccessNoQuery = 0x0400;
const SConnection::AccessRights SConnection::AccessFull = 0xffff;




SConnection::SConnection(bool reverseConnection_) SConnection::SConnection(bool reverseConnection_)

+ 8
- 7
common/rfb/SConnection.h View File

// is up to the derived class. // is up to the derived class.


typedef rdr::U16 AccessRights; typedef rdr::U16 AccessRights;
static const AccessRights AccessView; // View display contents
static const AccessRights AccessKeyEvents; // Send key events
static const AccessRights AccessPtrEvents; // Send pointer events
static const AccessRights AccessCutText; // Send/receive clipboard events
static const AccessRights AccessDefault; // The default rights, INCLUDING FUTURE ONES
static const AccessRights AccessNoQuery; // Connect without local user accepting
static const AccessRights AccessFull; // All of the available AND FUTURE rights
static const AccessRights AccessView; // View display contents
static const AccessRights AccessKeyEvents; // Send key events
static const AccessRights AccessPtrEvents; // Send pointer events
static const AccessRights AccessCutText; // Send/receive clipboard events
static const AccessRights AccessSetDesktopSize; // Change desktop size
static const AccessRights AccessDefault; // The default rights, INCLUDING FUTURE ONES
static const AccessRights AccessNoQuery; // Connect without local user accepting
static const AccessRights AccessFull; // All of the available AND FUTURE rights
virtual void setAccessRights(AccessRights ar) = 0; virtual void setAccessRights(AccessRights ar) = 0;


// Other methods // Other methods

+ 4
- 0
common/rfb/ServerCore.cxx View File

("SendCutText", ("SendCutText",
"Send clipboard changes to clients.", "Send clipboard changes to clients.",
true); true);
rfb::BoolParameter rfb::Server::acceptSetDesktopSize
("AcceptSetDesktopSize",
"Accept set desktop size events from clients.",
true);
rfb::BoolParameter rfb::Server::queryConnect rfb::BoolParameter rfb::Server::queryConnect
("QueryConnect", ("QueryConnect",
"Prompt the local user to accept or reject incoming connections.", "Prompt the local user to accept or reject incoming connections.",

+ 1
- 0
common/rfb/ServerCore.h View File

static BoolParameter acceptPointerEvents; static BoolParameter acceptPointerEvents;
static BoolParameter acceptCutText; static BoolParameter acceptCutText;
static BoolParameter sendCutText; static BoolParameter sendCutText;
static BoolParameter acceptSetDesktopSize;
static BoolParameter queryConnect; static BoolParameter queryConnect;


}; };

+ 3
- 0
common/rfb/VNCSConnectionST.cxx View File

{ {
unsigned int result; unsigned int result;


if (!(accessRights & AccessSetDesktopSize)) return;
if (!rfb::Server::acceptSetDesktopSize) return;

// Don't bother the desktop with an invalid configuration // Don't bother the desktop with an invalid configuration
if (!layout.validate(fb_width, fb_height)) { if (!layout.validate(fb_width, fb_height)) {
writer()->writeExtendedDesktopSize(reasonClient, resultInvalid, writer()->writeExtendedDesktopSize(reasonClient, resultInvalid,

Loading…
Cancel
Save