diff options
Diffstat (limited to 'common/rfb/ServerParams.cxx')
-rw-r--r-- | common/rfb/ServerParams.cxx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/common/rfb/ServerParams.cxx b/common/rfb/ServerParams.cxx index e4691e19..4b8f6136 100644 --- a/common/rfb/ServerParams.cxx +++ b/common/rfb/ServerParams.cxx @@ -24,6 +24,7 @@ #include <stdexcept> +#include <core/LogWriter.h> #include <core/string.h> #include <rfb/ledStates.h> @@ -33,6 +34,8 @@ using namespace rfb; +static core::LogWriter vlog("ServerParams"); + ServerParams::ServerParams() : majorVersion(0), minorVersion(0), supportsQEMUKeyEvent(false), @@ -67,8 +70,14 @@ void ServerParams::setDimensions(int width, int height) void ServerParams::setDimensions(int width, int height, const ScreenSet& layout) { - if (!layout.validate(width, height)) + if (!layout.validate(width, height)) { + char buffer[2048]; + vlog.debug("Invalid screen layout for %dx%d:", width, height); + layout.print(buffer, sizeof(buffer)); + vlog.debug("%s", buffer); + throw std::invalid_argument("Attempted to configure an invalid screen layout"); + } width_ = width; height_ = height; |