]> source.dussan.org Git - tigervnc.git/commitdiff
Use standard library naming for exceptions 1853/head
authorPierre Ossman <ossman@cendio.se>
Sun, 20 Oct 2024 09:06:13 +0000 (11:06 +0200)
committerPierre Ossman <ossman@cendio.se>
Wed, 6 Nov 2024 20:24:36 +0000 (21:24 +0100)
This makes things more consistent since we mix with the standard library
exceptions so often.

81 files changed:
common/network/Socket.cxx
common/network/TcpSocket.cxx
common/network/UnixSocket.cxx
common/os/Mutex.cxx
common/os/Thread.cxx
common/rdr/Exception.cxx
common/rdr/Exception.h
common/rdr/FdInStream.cxx
common/rdr/FdOutStream.cxx
common/rdr/FileInStream.cxx
common/rdr/MemInStream.h
common/rdr/RandomStream.cxx
common/rdr/TLSException.cxx
common/rdr/TLSException.h
common/rdr/TLSInStream.cxx
common/rdr/TLSOutStream.cxx
common/rfb/CConnection.cxx
common/rfb/CConnection.h
common/rfb/CMsgReader.cxx
common/rfb/CSecurityDH.cxx
common/rfb/CSecurityRSAAES.cxx
common/rfb/CSecurityTLS.cxx
common/rfb/CSecurityVeNCrypt.cxx
common/rfb/DecodeManager.cxx
common/rfb/Exception.h
common/rfb/HextileDecoder.cxx
common/rfb/JpegDecompressor.cxx
common/rfb/PixelFormat.cxx
common/rfb/RREDecoder.cxx
common/rfb/SConnection.cxx
common/rfb/SConnection.h
common/rfb/SMsgReader.cxx
common/rfb/SSecurity.h
common/rfb/SSecurityPlain.cxx
common/rfb/SSecurityRSAAES.cxx
common/rfb/SSecurityTLS.cxx
common/rfb/SSecurityVeNCrypt.cxx
common/rfb/SSecurityVncAuth.cxx
common/rfb/TightDecoder.cxx
common/rfb/VNCSConnectionST.cxx
common/rfb/ZRLEDecoder.cxx
tests/perf/decperf.cxx
tests/perf/encperf.cxx
unix/tx/TXDialog.h
unix/vncconfig/vncconfig.cxx
unix/x0vncserver/x0vncserver.cxx
vncviewer/CConn.cxx
vncviewer/ServerDialog.cxx
vncviewer/Surface_Win32.cxx
vncviewer/UserDialog.cxx
vncviewer/parameters.cxx
vncviewer/vncviewer.cxx
win/rfb_win32/CleanDesktop.cxx
win/rfb_win32/Clipboard.cxx
win/rfb_win32/CompatibleBitmap.h
win/rfb_win32/CurrentUser.cxx
win/rfb_win32/DIBSectionBuffer.cxx
win/rfb_win32/DeviceContext.cxx
win/rfb_win32/DeviceFrameBuffer.cxx
win/rfb_win32/Dialog.cxx
win/rfb_win32/IconInfo.h
win/rfb_win32/IntervalTimer.h
win/rfb_win32/LaunchProcess.cxx
win/rfb_win32/LocalMem.h
win/rfb_win32/MonitorInfo.cxx
win/rfb_win32/MsgWindow.cxx
win/rfb_win32/RegConfig.cxx
win/rfb_win32/Registry.cxx
win/rfb_win32/SInput.cxx
win/rfb_win32/Security.cxx
win/rfb_win32/Service.cxx
win/rfb_win32/SocketManager.cxx
win/rfb_win32/TsSessions.cxx
win/rfb_win32/WMCursor.cxx
win/rfb_win32/WMPoller.cxx
win/rfb_win32/Win32Util.cxx
win/vncconfig/Legacy.cxx
win/vncconfig/vncconfig.cxx
win/winvnc/QueryConnectDialog.cxx
win/winvnc/VNCServerWin32.cxx
win/winvnc/winvnc.cxx

index 03844acd33569acfc2fcfbe6919de5b04d139a87..879a63d0f71d65dffe583d0f837a7f98527f8ec1 100644 (file)
@@ -55,7 +55,7 @@ void network::initSockets() {
   WSADATA initResult;
   
   if (WSAStartup(requiredVersion, &initResult) != 0)
-    throw rdr::SocketException("unable to initialise Winsock2", errorNumber);
+    throw rdr::socket_error("unable to initialise Winsock2", errorNumber);
 #else
   signal(SIGPIPE, SIG_IGN);
 #endif
@@ -163,7 +163,7 @@ Socket* SocketListener::accept() {
 
   // Accept an incoming connection
   if ((new_sock = ::accept(fd, nullptr, nullptr)) < 0)
-    throw rdr::SocketException("unable to accept new connection", errorNumber);
+    throw rdr::socket_error("unable to accept new connection", errorNumber);
 
   // Create the socket object & check connection is allowed
   Socket* s = createSocket(new_sock);
@@ -181,7 +181,7 @@ void SocketListener::listen(int sock)
   if (::listen(sock, 5) < 0) {
     int e = errorNumber;
     closesocket(sock);
-    throw rdr::SocketException("unable to set socket to listening mode", e);
+    throw rdr::socket_error("unable to set socket to listening mode", e);
   }
 
   fd = sock;
index 455df749b5b21d58f096330e9fc53238d95b2240..bf603755b283c1bad96c79d27b23f420a3369e61 100644 (file)
@@ -85,15 +85,15 @@ int network::findFreeTcpPort (void)
   addr.sin_addr.s_addr = INADDR_ANY;
 
   if ((sock = socket (AF_INET, SOCK_STREAM, 0)) < 0)
-    throw SocketException ("unable to create socket", errorNumber);
+    throw socket_error("unable to create socket", errorNumber);
 
   addr.sin_port = 0;
   if (bind (sock, (struct sockaddr *)&addr, sizeof (addr)) < 0)
-    throw SocketException ("unable to find free port", errorNumber);
+    throw socket_error("unable to find free port", errorNumber);
 
   socklen_t n = sizeof(addr);
   if (getsockname (sock, (struct sockaddr *)&addr, &n) < 0)
-    throw SocketException ("unable to get port number", errorNumber);
+    throw socket_error("unable to get port number", errorNumber);
 
   closesocket (sock);
   return ntohs(addr.sin_port);
@@ -137,7 +137,7 @@ TcpSocket::TcpSocket(const char *host, int port)
   hints.ai_next = nullptr;
 
   if ((result = getaddrinfo(host, nullptr, &hints, &ai)) != 0) {
-    throw GAIException("unable to resolve host by name", result);
+    throw getaddrinfo_error("unable to resolve host by name", result);
   }
 
   sock = -1;
@@ -178,7 +178,7 @@ TcpSocket::TcpSocket(const char *host, int port)
     if (sock == -1) {
       err = errorNumber;
       freeaddrinfo(ai);
-      throw SocketException("unable to create socket", err);
+      throw socket_error("unable to create socket", err);
     }
 
   /* Attempt to connect to the remote host */
@@ -205,7 +205,7 @@ TcpSocket::TcpSocket(const char *host, int port)
     if (err == 0)
       throw std::runtime_error("No useful address for host");
     else
-      throw SocketException("unable to connect to socket", err);
+      throw socket_error("unable to connect to socket", err);
   }
 
   // Take proper ownership of the socket
@@ -302,7 +302,7 @@ TcpListener::TcpListener(const struct sockaddr *listenaddr,
   int sock;
 
   if ((sock = socket (listenaddr->sa_family, SOCK_STREAM, 0)) < 0)
-    throw SocketException("unable to create listening socket", errorNumber);
+    throw socket_error("unable to create listening socket", errorNumber);
 
   memcpy (&sa, listenaddr, listenaddrlen);
 #ifdef IPV6_V6ONLY
@@ -310,7 +310,7 @@ TcpListener::TcpListener(const struct sockaddr *listenaddr,
     if (setsockopt (sock, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&one, sizeof(one))) {
       int e = errorNumber;
       closesocket(sock);
-      throw SocketException("unable to set IPV6_V6ONLY", e);
+      throw socket_error("unable to set IPV6_V6ONLY", e);
     }
   }
 #endif /* defined(IPV6_V6ONLY) */
@@ -328,14 +328,14 @@ TcpListener::TcpListener(const struct sockaddr *listenaddr,
                  (char *)&one, sizeof(one)) < 0) {
     int e = errorNumber;
     closesocket(sock);
-    throw SocketException("unable to create listening socket", e);
+    throw socket_error("unable to create listening socket", e);
   }
 #endif
 
   if (bind(sock, &sa.u.sa, listenaddrlen) == -1) {
     int e = errorNumber;
     closesocket(sock);
-    throw SocketException("failed to bind socket", e);
+    throw socket_error("failed to bind socket", e);
   }
 
   listen(sock);
@@ -446,7 +446,7 @@ void network::createTcpListeners(std::list<SocketListener*> *listeners,
   snprintf (service, sizeof (service) - 1, "%d", port);
   service[sizeof (service) - 1] = '\0';
   if ((result = getaddrinfo(addr, service, &hints, &ai)) != 0)
-    throw GAIException("unable to resolve listening address", result);
+    throw getaddrinfo_error("unable to resolve listening address", result);
 
   try {
     createTcpListeners(listeners, ai);
@@ -485,7 +485,7 @@ void network::createTcpListeners(std::list<SocketListener*> *listeners,
     try {
       new_listeners.push_back(new TcpListener(current->ai_addr,
                                               current->ai_addrlen));
-    } catch (SocketException& e) {
+    } catch (socket_error& e) {
       // Ignore this if it is due to lack of address family support on
       // the interface or on the system
       if (e.err != EADDRNOTAVAIL && e.err != EAFNOSUPPORT) {
@@ -633,7 +633,7 @@ TcpFilter::Pattern TcpFilter::parsePattern(const char* p) {
     }
 
     if ((result = getaddrinfo (parts[0].c_str(), nullptr, &hints, &ai)) != 0) {
-      throw GAIException("unable to resolve host by name", result);
+      throw getaddrinfo_error("unable to resolve host by name", result);
     }
 
     memcpy (&pattern.address.u.sa, ai->ai_addr, ai->ai_addrlen);
index 4b82b4b728ed7f76f6f10834268efd3fbbcc4ba5..c8517300cb7730870b1318f221dac72e5a6b2081 100644 (file)
@@ -53,12 +53,12 @@ UnixSocket::UnixSocket(const char *path)
   socklen_t salen;
 
   if (strlen(path) >= sizeof(addr.sun_path))
-    throw SocketException("socket path is too long", ENAMETOOLONG);
+    throw socket_error("socket path is too long", ENAMETOOLONG);
 
   // - Create a socket
   sock = socket(AF_UNIX, SOCK_STREAM, 0);
   if (sock == -1)
-    throw SocketException("unable to create socket", errno);
+    throw socket_error("unable to create socket", errno);
 
   // - Attempt to connect
   memset(&addr, 0, sizeof(addr));
@@ -72,7 +72,7 @@ UnixSocket::UnixSocket(const char *path)
   }
 
   if (result == -1)
-    throw SocketException("unable to connect to socket", err);
+    throw socket_error("unable to connect to socket", err);
 
   setFd(sock);
 }
@@ -119,11 +119,11 @@ UnixListener::UnixListener(const char *path, int mode)
   int err, result;
 
   if (strlen(path) >= sizeof(addr.sun_path))
-    throw SocketException("socket path is too long", ENAMETOOLONG);
+    throw socket_error("socket path is too long", ENAMETOOLONG);
 
   // - Create a socket
   if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
-    throw SocketException("unable to create listening socket", errno);
+    throw socket_error("unable to create listening socket", errno);
 
   // - Delete existing socket (ignore result)
   unlink(path);
@@ -138,14 +138,14 @@ UnixListener::UnixListener(const char *path, int mode)
   umask(saved_umask);
   if (result < 0) {
     close(fd);
-    throw SocketException("unable to bind listening socket", err);
+    throw socket_error("unable to bind listening socket", err);
   }
 
   // - Set socket mode
   if (chmod(path, mode) < 0) {
     err = errno;
     close(fd);
-    throw SocketException("unable to set socket mode", err);
+    throw socket_error("unable to set socket mode", err);
   }
 
   listen(fd);
index b82de4152eceb1ead99db24b8635b9db4e441487..1889e66b436638a718f6f2ed8e526174397dc2e6 100644 (file)
@@ -43,7 +43,7 @@ Mutex::Mutex()
   systemMutex = new pthread_mutex_t;
   ret = pthread_mutex_init((pthread_mutex_t*)systemMutex, nullptr);
   if (ret != 0)
-    throw rdr::PosixException("Failed to create mutex", ret);
+    throw rdr::posix_error("Failed to create mutex", ret);
 #endif
 }
 
@@ -67,7 +67,7 @@ void Mutex::lock()
 
   ret = pthread_mutex_lock((pthread_mutex_t*)systemMutex);
   if (ret != 0)
-    throw rdr::PosixException("Failed to lock mutex", ret);
+    throw rdr::posix_error("Failed to lock mutex", ret);
 #endif
 }
 
@@ -80,7 +80,7 @@ void Mutex::unlock()
 
   ret = pthread_mutex_unlock((pthread_mutex_t*)systemMutex);
   if (ret != 0)
-    throw rdr::PosixException("Failed to unlock mutex", ret);
+    throw rdr::posix_error("Failed to unlock mutex", ret);
 #endif
 }
 
@@ -97,7 +97,7 @@ Condition::Condition(Mutex* mutex_)
   systemCondition = new pthread_cond_t;
   ret = pthread_cond_init((pthread_cond_t*)systemCondition, nullptr);
   if (ret != 0)
-    throw rdr::PosixException("Failed to create condition variable", ret);
+    throw rdr::posix_error("Failed to create condition variable", ret);
 #endif
 }
 
@@ -120,14 +120,14 @@ void Condition::wait()
                                  (CRITICAL_SECTION*)mutex->systemMutex,
                                  INFINITE);
   if (!ret)
-    throw rdr::Win32Exception("Failed to wait on condition variable", GetLastError());
+    throw rdr::win32_error("Failed to wait on condition variable", GetLastError());
 #else
   int ret;
 
   ret = pthread_cond_wait((pthread_cond_t*)systemCondition,
                           (pthread_mutex_t*)mutex->systemMutex);
   if (ret != 0)
-    throw rdr::PosixException("Failed to wait on condition variable", ret);
+    throw rdr::posix_error("Failed to wait on condition variable", ret);
 #endif
 }
 
@@ -140,7 +140,7 @@ void Condition::signal()
 
   ret = pthread_cond_signal((pthread_cond_t*)systemCondition);
   if (ret != 0)
-    throw rdr::PosixException("Failed to signal condition variable", ret);
+    throw rdr::posix_error("Failed to signal condition variable", ret);
 #endif
 }
 
@@ -153,6 +153,6 @@ void Condition::broadcast()
 
   ret = pthread_cond_broadcast((pthread_cond_t*)systemCondition);
   if (ret != 0)
-    throw rdr::PosixException("Failed to broadcast condition variable", ret);
+    throw rdr::posix_error("Failed to broadcast condition variable", ret);
 #endif
 }
index e99be63e24879085409f641b919305ee92959823..6dca75a1d1d451f8e3d35f57cf7f782f23fdccb5 100644 (file)
@@ -66,7 +66,7 @@ void Thread::start()
 #ifdef WIN32
   *(HANDLE*)threadId = CreateThread(nullptr, 0, startRoutine, this, 0, nullptr);
   if (*(HANDLE*)threadId == nullptr)
-    throw rdr::Win32Exception("Failed to create thread", GetLastError());
+    throw rdr::win32_error("Failed to create thread", GetLastError());
 #else
   int ret;
   sigset_t all, old;
@@ -76,14 +76,14 @@ void Thread::start()
   sigfillset(&all);
   ret = pthread_sigmask(SIG_SETMASK, &all, &old);
   if (ret != 0)
-    throw rdr::PosixException("Failed to mask signals", ret);
+    throw rdr::posix_error("Failed to mask signals", ret);
 
   ret = pthread_create((pthread_t*)threadId, nullptr, startRoutine, this);
 
   pthread_sigmask(SIG_SETMASK, &old, nullptr);
 
   if (ret != 0)
-    throw rdr::PosixException("Failed to create thread", ret);
+    throw rdr::posix_error("Failed to create thread", ret);
 #endif
 
   running = true;
@@ -99,13 +99,13 @@ void Thread::wait()
 
   ret = WaitForSingleObject(*(HANDLE*)threadId, INFINITE);
   if (ret != WAIT_OBJECT_0)
-    throw rdr::Win32Exception("Failed to join thread", GetLastError());
+    throw rdr::win32_error("Failed to join thread", GetLastError());
 #else
   int ret;
 
   ret = pthread_join(*(pthread_t*)threadId, nullptr);
   if (ret != 0)
-    throw rdr::PosixException("Failed to join thread", ret);
+    throw rdr::posix_error("Failed to join thread", ret);
 #endif
 }
 
index 65bd9720785c38ea0061b6f04a84af1f8ba20876..694ee359891ec015ec6811aecd6de6dfc076c261 100644 (file)
 using namespace rdr;
 
 
-GAIException::GAIException(const char* s, int err_)
+getaddrinfo_error::getaddrinfo_error(const char* s, int err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", s,
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-GAIException::GAIException(const std::string& s, int err_)
+getaddrinfo_error::getaddrinfo_error(const std::string& s, int err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", s.c_str(),
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-std::string GAIException::strerror(int err_) const
+std::string getaddrinfo_error::strerror(int err_) const
 {
 #ifdef _WIN32
   char str[256];
@@ -71,21 +71,21 @@ std::string GAIException::strerror(int err_) const
 #endif
 }
 
-PosixException::PosixException(const char* what_arg, int err_)
+posix_error::posix_error(const char* what_arg, int err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", what_arg,
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-PosixException::PosixException(const std::string& what_arg, int err_)
+posix_error::posix_error(const std::string& what_arg, int err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", what_arg.c_str(),
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-std::string PosixException::strerror(int err_) const
+std::string posix_error::strerror(int err_) const
 {
 #ifdef _WIN32
   char str[256];
@@ -100,21 +100,21 @@ std::string PosixException::strerror(int err_) const
 }
 
 #ifdef WIN32
-Win32Exception::Win32Exception(const char* what_arg, unsigned err_)
+win32_error::win32_error(const char* what_arg, unsigned err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", what_arg,
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-Win32Exception::Win32Exception(const std::string& what_arg, unsigned err_)
+win32_error::win32_error(const std::string& what_arg, unsigned err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", what_arg.c_str(),
                                    strerror(err_).c_str(), err_)),
     err(err_)
 {
 }
 
-std::string Win32Exception::strerror(unsigned err_) const
+std::string win32_error::strerror(unsigned err_) const
 {
   wchar_t wstr[256];
   char str[256];
index 3e0ec46703fa9c99008e386da8c6336fda491ed3..f3f878cbb85bc52b42d4fc9991cbcf6bf66967d0 100644 (file)
 
 namespace rdr {
 
-  class PosixException : public std::runtime_error {
+  class posix_error : public std::runtime_error {
   public:
     int err;
-    PosixException(const char* what_arg, int err_);
-    PosixException(const std::string& what_arg, int err_);
+    posix_error(const char* what_arg, int err_);
+    posix_error(const std::string& what_arg, int err_);
   private:
     std::string strerror(int err_) const;
   };
 
 #ifdef WIN32
-  class Win32Exception : public std::runtime_error {
+  class win32_error : public std::runtime_error {
   public:
     unsigned err;
-    Win32Exception(const char* what_arg, unsigned err_);
-    Win32Exception(const std::string& what_arg, unsigned err_);
+    win32_error(const char* what_arg, unsigned err_);
+    win32_error(const std::string& what_arg, unsigned err_);
   private:
     std::string strerror(unsigned err_) const;
   };
 #endif
 
 #ifdef WIN32
-  class SocketException : public Win32Exception {
+  class socket_error : public win32_error {
   public:
-    SocketException(const char* what_arg, unsigned err_) : Win32Exception(what_arg, err_) {}
-    SocketException(const std::string& what_arg, unsigned err_) : Win32Exception(what_arg, err_) {}
+    socket_error(const char* what_arg, unsigned err_) : win32_error(what_arg, err_) {}
+    socket_error(const std::string& what_arg, unsigned err_) : win32_error(what_arg, err_) {}
   };
 #else
-  class SocketException : public PosixException {
+  class socket_error : public posix_error {
   public:
-    SocketException(const char* what_arg, unsigned err_) : PosixException(what_arg, err_) {}
-    SocketException(const std::string& what_arg, unsigned err_) : PosixException(what_arg, err_) {}
+    socket_error(const char* what_arg, unsigned err_) : posix_error(what_arg, err_) {}
+    socket_error(const std::string& what_arg, unsigned err_) : posix_error(what_arg, err_) {}
   };
 #endif
 
-  class GAIException : public std::runtime_error {
+  class getaddrinfo_error : public std::runtime_error {
   public:
     int err;
-    GAIException(const char* s, int err_);
-    GAIException(const std::string& s, int err_);
+    getaddrinfo_error(const char* s, int err_);
+    getaddrinfo_error(const std::string& s, int err_);
   private:
     std::string strerror(int err_) const;
   };
 
-  class EndOfStream : public std::runtime_error {
+  class end_of_stream : public std::runtime_error {
   public:
-    EndOfStream() : std::runtime_error("End of stream") {}
+    end_of_stream() : std::runtime_error("End of stream") {}
   };
 
 }
index bddee482f77cd55cc2372d1d5f8d8730e24f438f..23ea2f8cc8b17306d5aa7f5df38c471fb5798ca2 100644 (file)
@@ -92,7 +92,7 @@ size_t FdInStream::readFd(uint8_t* buf, size_t len)
   } while (n < 0 && errorNumber == EINTR);
 
   if (n < 0)
-    throw SocketException("select", errorNumber);
+    throw socket_error("select", errorNumber);
 
   if (n == 0)
     return 0;
@@ -102,9 +102,9 @@ size_t FdInStream::readFd(uint8_t* buf, size_t len)
   } while (n < 0 && errorNumber == EINTR);
 
   if (n < 0)
-    throw SocketException("read", errorNumber);
+    throw socket_error("read", errorNumber);
   if (n == 0)
-    throw EndOfStream();
+    throw end_of_stream();
 
   return n;
 }
index 1b6049caeba8f19432c2e7e907ee84cc7e85abba..6db8c0bb224cbc8231a90e2a449b7e4156e16852 100644 (file)
@@ -117,7 +117,7 @@ size_t FdOutStream::writeFd(const uint8_t* data, size_t length)
   } while (n < 0 && errorNumber == EINTR);
 
   if (n < 0)
-    throw SocketException("select", errorNumber);
+    throw socket_error("select", errorNumber);
 
   if (n == 0)
     return 0;
@@ -134,7 +134,7 @@ size_t FdOutStream::writeFd(const uint8_t* data, size_t length)
   } while (n < 0 && (errorNumber == EINTR));
 
   if (n < 0)
-    throw SocketException("write", errorNumber);
+    throw socket_error("write", errorNumber);
 
   gettimeofday(&lastWrite, nullptr);
 
index db646a7e4b04dcdd94d8d0fc311edf566c0415ad..df09ea768cb3e717261c068fc0d3d52c3fdcac86 100644 (file)
@@ -33,7 +33,7 @@ FileInStream::FileInStream(const char *fileName)
 {
   file = fopen(fileName, "rb");
   if (!file)
-    throw PosixException("fopen", errno);
+    throw posix_error("fopen", errno);
 }
 
 FileInStream::~FileInStream(void) {
@@ -48,9 +48,9 @@ bool FileInStream::fillBuffer()
   size_t n = fread((uint8_t*)end, 1, availSpace(), file);
   if (n == 0) {
     if (ferror(file))
-      throw PosixException("fread", errno);
+      throw posix_error("fread", errno);
     if (feof(file))
-      throw EndOfStream();
+      throw end_of_stream();
     return false;
   }
   end += n;
index e10273b16565dee1d4b3bf30436a2a571a2b88be..78ee2dee4dbf9c5c6382d7e550da6d03289dcdab 100644 (file)
@@ -59,7 +59,7 @@ namespace rdr {
 
   private:
 
-    bool overrun(size_t /*needed*/) override { throw EndOfStream(); }
+    bool overrun(size_t /*needed*/) override { throw end_of_stream(); }
     const uint8_t* start;
     bool deleteWhenDone;
   };
index 449a84c0aebcf1512a7d8d7ff6d501e889cdbdea..485259cf14e8feeb1c926e02565dbeab592ddeb7 100644 (file)
@@ -89,7 +89,7 @@ bool RandomStream::fillBuffer() {
 #ifdef RFB_HAVE_WINCRYPT
   if (provider) {
     if (!CryptGenRandom(provider, availSpace(), (uint8_t*)end))
-      throw rdr::Win32Exception("unable to CryptGenRandom", GetLastError());
+      throw rdr::win32_error("unable to CryptGenRandom", GetLastError());
     end += availSpace();
   } else {
 #else
@@ -97,8 +97,8 @@ bool RandomStream::fillBuffer() {
   if (fp) {
     size_t n = fread((uint8_t*)end, 1, availSpace(), fp);
     if (n <= 0)
-      throw rdr::PosixException("reading /dev/urandom or /dev/random failed",
-                                errno);
+      throw rdr::posix_error("reading /dev/urandom or /dev/random "
+                             "failed", errno);
     end += n;
   } else {
 #else
index 7061f38b145f8f3e4641ac045889cf2af1aaf2ef..ccff6090ca92f2107ddb775e1a611fb70fc33e00 100644 (file)
@@ -35,7 +35,7 @@
 using namespace rdr;
 
 #ifdef HAVE_GNUTLS
-TLSException::TLSException(const char* s, int err_)
+tls_error::tls_error(const char* s, int err_)
   : std::runtime_error(rfb::format("%s: %s (%d)", s,
                                    gnutls_strerror(err_), err_)),
     err(err_)
index f58b618ded9870cd94b4a30d9fb6967cbd6dbfb7..cfa73f697f7da40941ec1b7565b1bfa044922e92 100644 (file)
 
 namespace rdr {
 
-  class TLSException : public std::runtime_error {
+  class tls_error : public std::runtime_error {
   public:
     int err;
-    TLSException(const char* s, int err_);
+    tls_error(const char* s, int err_);
   };
 
 }
index 3418c68eddbe2703aa1401d82c80b9322e439baa..7c867e88c21197dd97fb8de65c9ebbd33bca7931 100644 (file)
@@ -54,12 +54,12 @@ ssize_t TLSInStream::pull(gnutls_transport_ptr_t str, void* data, size_t size)
       size = in->avail();
   
     in->readBytes((uint8_t*)data, size);
-  } catch (EndOfStream&) {
+  } catch (end_of_stream&) {
     return 0;
-  } catch (SocketException& e) {
+  } catch (socket_error& e) {
     vlog.error("Failure reading TLS data: %s", e.what());
     gnutls_transport_set_errno(self->session, e.err);
-    self->saved_exception = new SocketException(e);
+    self->saved_exception = new socket_error(e);
     return -1;
   } catch (std::exception& e) {
     vlog.error("Failure reading TLS data: %s", e.what());
@@ -121,10 +121,10 @@ size_t TLSInStream::readTLS(uint8_t* buf, size_t len)
     throw *saved_exception;
 
   if (n < 0)
-    throw TLSException("readTLS", n);
+    throw tls_error("readTLS", n);
 
   if (n == 0)
-    throw EndOfStream();
+    throw end_of_stream();
 
   return n;
 }
index 4c6c3f473a45390499f479fe8e2d31febfab5354..1e555fc15ffa2885cc104567f01c5cff70190508 100644 (file)
@@ -46,10 +46,10 @@ ssize_t TLSOutStream::push(gnutls_transport_ptr_t str, const void* data,
   try {
     out->writeBytes((const uint8_t*)data, size);
     out->flush();
-  } catch (SocketException& e) {
+  } catch (socket_error& e) {
     vlog.error("Failure sending TLS data: %s", e.what());
     gnutls_transport_set_errno(self->session, e.err);
-    self->saved_exception = new SocketException(e);
+    self->saved_exception = new socket_error(e);
     return -1;
   } catch (std::exception& e) {
     vlog.error("Failure sending TLS data: %s", e.what());
@@ -118,7 +118,7 @@ size_t TLSOutStream::writeTLS(const uint8_t* data, size_t length)
     throw *saved_exception;
 
   if (n < 0)
-    throw TLSException("writeTLS", n);
+    throw tls_error("writeTLS", n);
 
   return n;
 }
index 8a718b5f2d3b63c2fcd91e515dd73050329d96ab..a4d6d17354a3592069422ee38d2df23da8e22b45 100644 (file)
@@ -172,7 +172,7 @@ bool CConnection::processVersionMsg()
   if (sscanf(verStr, "RFB %03d.%03d\n",
              &majorVersion, &minorVersion) != 2) {
     state_ = RFBSTATE_INVALID;
-    throw ProtocolException("reading version failed: not an RFB server?");
+    throw protocol_error("reading version failed: not an RFB server?");
   }
 
   server.setVersion(majorVersion, minorVersion);
@@ -185,10 +185,10 @@ bool CConnection::processVersionMsg()
     vlog.error("Server gave unsupported RFB protocol version %d.%d",
                server.majorVersion, server.minorVersion);
     state_ = RFBSTATE_INVALID;
-    throw ProtocolException(format("Server gave unsupported RFB "
-                                   "protocol version %d.%d",
-                                   server.majorVersion,
-                                   server.minorVersion));
+    throw protocol_error(format("Server gave unsupported RFB protocol "
+                                "version %d.%d",
+                                server.majorVersion,
+                                server.minorVersion));
   } else if (server.beforeVersion(3,7)) {
     server.setVersion(3,3);
   } else if (server.afterVersion(3,8)) {
@@ -235,7 +235,7 @@ bool CConnection::processSecurityTypesMsg()
         secType = secTypeInvalid;
     } else {
       vlog.error("Unknown 3.3 security type %d", secType);
-      throw ProtocolException("Unknown 3.3 security type");
+      throw protocol_error("Unknown 3.3 security type");
     }
 
   } else {
@@ -285,7 +285,7 @@ bool CConnection::processSecurityTypesMsg()
   if (secType == secTypeInvalid) {
     state_ = RFBSTATE_INVALID;
     vlog.error("No matching security types");
-    throw ProtocolException("No matching security types");
+    throw protocol_error("No matching security types");
   }
 
   state_ = RFBSTATE_SECURITY;
@@ -329,12 +329,12 @@ bool CConnection::processSecurityResultMsg()
     vlog.debug("auth failed - too many tries");
     break;
   default:
-    throw ProtocolException("Unknown security result from server");
+    throw protocol_error("Unknown security result from server");
   }
 
   if (server.beforeVersion(3,8)) {
     state_ = RFBSTATE_INVALID;
-    throw AuthFailureException("Authentication failed");
+    throw auth_error("Authentication failed");
   }
 
   state_ = RFBSTATE_SECURITY_REASON;
@@ -360,7 +360,7 @@ bool CConnection::processSecurityReasonMsg()
   reason[len] = '\0';
 
   state_ = RFBSTATE_INVALID;
-  throw AuthFailureException(reason.data());
+  throw auth_error(reason.data());
 }
 
 bool CConnection::processInitMsg()
index 3f277d7163b566c607dbb065d88e52fdfe786483..9101bf26729d978838ed5e7084ee16b1d43978c1 100644 (file)
@@ -273,7 +273,7 @@ namespace rfb {
     bool processSecurityResultMsg();
     bool processSecurityReasonMsg();
     bool processInitMsg();
-    void throwAuthFailureException();
+    void throwAuthError();
     void securityCompleted();
 
     void requestNewUpdate();
index 17c92227a68018271da6669ce3082c4b2d8e20f5..3025959f03c457f87e7e07734737d87db9cf6f18 100644 (file)
@@ -119,7 +119,7 @@ bool CMsgReader::readMsg()
       ret = readEndOfContinuousUpdates();
       break;
     default:
-      throw ProtocolException(format("Unknown message type %d", currentMsgType));
+      throw protocol_error(format("Unknown message type %d", currentMsgType));
     }
 
     if (ret)
@@ -301,7 +301,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
     return false;
 
   if (len < 4)
-    throw ProtocolException("Invalid extended clipboard message");
+    throw protocol_error("Invalid extended clipboard message");
   if (len > maxCutText) {
     vlog.error("Extended clipboard message too long (%d bytes) - ignoring", len);
     is->skip(len);
@@ -323,7 +323,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
     }
 
     if (len < (int32_t)(4 + 4*num))
-      throw ProtocolException("Invalid extended clipboard message");
+      throw protocol_error("Invalid extended clipboard message");
 
     num = 0;
     for (i = 0;i < 16;i++) {
@@ -348,7 +348,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
         continue;
 
       if (!zis.hasData(4))
-        throw ProtocolException("Extended clipboard decode error");
+        throw protocol_error("Extended clipboard decode error");
 
       lengths[num] = zis.readU32();
 
@@ -361,7 +361,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
           size_t chunk;
 
           if (!zis.hasData(1))
-            throw ProtocolException("Extended clipboard decode error");
+            throw protocol_error("Extended clipboard decode error");
 
           chunk = zis.avail();
           if (chunk > lengths[num])
@@ -377,7 +377,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
       }
 
       if (!zis.hasData(lengths[num]))
-        throw ProtocolException("Extended clipboard decode error");
+        throw protocol_error("Extended clipboard decode error");
 
       buffers[num] = new uint8_t[lengths[num]];
       zis.readBytes(buffers[num], lengths[num]);
@@ -407,7 +407,7 @@ bool CMsgReader::readExtendedClipboard(int32_t len)
       handler->handleClipboardNotify(flags);
       break;
     default:
-      throw ProtocolException("Invalid extended clipboard action");
+      throw protocol_error("Invalid extended clipboard action");
     }
   }
 
@@ -473,7 +473,7 @@ bool CMsgReader::readRect(const Rect& r, int encoding)
     vlog.error("Rect too big: %dx%d at %d,%d exceeds %dx%d",
            r.width(), r.height(), r.tl.x, r.tl.y,
             handler->server.width(), handler->server.height());
-    throw ProtocolException("Rect too big");
+    throw protocol_error("Rect too big");
   }
 
   if (r.is_empty())
@@ -485,7 +485,7 @@ bool CMsgReader::readRect(const Rect& r, int encoding)
 bool CMsgReader::readSetXCursor(int width, int height, const Point& hotspot)
 {
   if (width > maxCursorSize || height > maxCursorSize)
-    throw ProtocolException("Too big cursor");
+    throw protocol_error("Too big cursor");
 
   std::vector<uint8_t> rgba(width*height*4);
 
@@ -549,7 +549,7 @@ bool CMsgReader::readSetXCursor(int width, int height, const Point& hotspot)
 bool CMsgReader::readSetCursor(int width, int height, const Point& hotspot)
 {
   if (width > maxCursorSize || height > maxCursorSize)
-    throw ProtocolException("Too big cursor");
+    throw protocol_error("Too big cursor");
 
   int data_len = width * height * (handler->server.pf().bpp/8);
   int mask_len = ((width+7)/8) * height;
@@ -595,7 +595,7 @@ bool CMsgReader::readSetCursor(int width, int height, const Point& hotspot)
 bool CMsgReader::readSetCursorWithAlpha(int width, int height, const Point& hotspot)
 {
   if (width > maxCursorSize || height > maxCursorSize)
-    throw ProtocolException("Too big cursor");
+    throw protocol_error("Too big cursor");
 
   const PixelFormat rgbaPF(32, 32, false, true, 255, 255, 255, 16, 8, 0);
   ManagedPixelBuffer pb(rgbaPF, width, height);
@@ -656,7 +656,7 @@ bool CMsgReader::readSetCursorWithAlpha(int width, int height, const Point& hots
 bool CMsgReader::readSetVMwareCursor(int width, int height, const Point& hotspot)
 {
   if (width > maxCursorSize || height > maxCursorSize)
-    throw ProtocolException("Too big cursor");
+    throw protocol_error("Too big cursor");
 
   uint8_t type;
 
@@ -750,7 +750,7 @@ bool CMsgReader::readSetVMwareCursor(int width, int height, const Point& hotspot
 
     handler->setCursor(width, height, hotspot, data.data());
   } else {
-    throw ProtocolException("Unknown cursor type");
+    throw protocol_error("Unknown cursor type");
   }
 
   return true;
index ca110cb2c237aa2cbbf2b0544dafd6c874662866..d8308cbf8a7c51eb2ab5512828d3c60a2198cae4 100644 (file)
@@ -86,9 +86,9 @@ bool CSecurityDH::readKey()
   uint16_t gen = is->readU16();
   keyLength = is->readU16();
   if (keyLength < MinKeyLength)
-    throw ProtocolException("DH key is too short");
+    throw protocol_error("DH key is too short");
   if (keyLength > MaxKeyLength)
-    throw ProtocolException("DH key is too long");
+    throw protocol_error("DH key is too long");
   if (!is->hasDataOrRestore(keyLength * 2))
     return false;
   is->clearRestorePoint();
index 11c392d5b1765e25cf462a40b39d1fcfceb5176e..96fd20cd6a8de903ab42663eb11da8d11e24de5a 100644 (file)
@@ -174,9 +174,9 @@ bool CSecurityRSAAES::readPublicKey()
   is->setRestorePoint();
   serverKeyLength = is->readU32();
   if (serverKeyLength < MinKeyLength)
-    throw ProtocolException("server key is too short");
+    throw protocol_error("server key is too short");
   if (serverKeyLength > MaxKeyLength)
-    throw ProtocolException("server key is too long");
+    throw protocol_error("server key is too long");
   size_t size = (serverKeyLength + 7) / 8;
   if (!is->hasDataOrRestore(size * 2))
     return false;
@@ -189,7 +189,7 @@ bool CSecurityRSAAES::readPublicKey()
   nettle_mpz_set_str_256_u(serverKey.n, size, serverKeyN);
   nettle_mpz_set_str_256_u(serverKey.e, size, serverKeyE);
   if (!rsa_public_key_prepare(&serverKey))
-    throw ProtocolException("server key is invalid");
+    throw protocol_error("server key is invalid");
   return true;
 }
 
@@ -215,7 +215,7 @@ void CSecurityRSAAES::verifyServer()
     "Please verify that the information is correct and press \"Yes\". "
     "Otherwise press \"No\"", f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]);
   if (!cc->showMsgBox(MsgBoxFlags::M_YESNO, title, text.c_str()))
-    throw AuthCancelledException();
+    throw auth_cancelled();
 }
 
 void CSecurityRSAAES::writeRandom()
@@ -255,7 +255,7 @@ bool CSecurityRSAAES::readRandom()
   is->setRestorePoint();
   size_t size = is->readU16();
   if (size != clientKey.size)
-    throw ProtocolException("client key length doesn't match");
+    throw protocol_error("client key length doesn't match");
   if (!is->hasDataOrRestore(size))
     return false;
   is->clearRestorePoint();
@@ -268,7 +268,7 @@ bool CSecurityRSAAES::readRandom()
   if (!rsa_decrypt(&clientKey, &randomSize, serverRandom, x) ||
       randomSize != (size_t)keySize / 8) {
     mpz_clear(x);
-    throw ProtocolException("failed to decrypt server random");
+    throw protocol_error("failed to decrypt server random");
   }
   mpz_clear(x);
   return true;
@@ -397,7 +397,7 @@ bool CSecurityRSAAES::readHash()
     sha256_digest(&ctx, hashSize, realHash);
   }
   if (memcmp(hash, realHash, hashSize) != 0)
-    throw ProtocolException("hash doesn't match");
+    throw protocol_error("hash doesn't match");
   return true;
 }
 
@@ -427,7 +427,7 @@ bool CSecurityRSAAES::readSubtype()
     return false;
   subtype = rais->readU8();
   if (subtype != secTypeRA2UserPass && subtype != secTypeRA2Pass)
-    throw ProtocolException("unknown RSA-AES subtype");
+    throw protocol_error("unknown RSA-AES subtype");
   return true;
 }
 
index fc1cde8e2b59f260d559ca2a0f2fd4f616d9a3cc..3761ca30bfad31e705d517864055d46d3a42b446 100644 (file)
@@ -80,7 +80,7 @@ CSecurityTLS::CSecurityTLS(CConnection* cc_, bool _anon)
 {
   int err = gnutls_global_init();
   if (err != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("gnutls_global_init()", err);
+    throw rdr::tls_error("gnutls_global_init()", err);
 }
 
 void CSecurityTLS::shutdown()
@@ -146,15 +146,15 @@ bool CSecurityTLS::processMsg()
       return false;
 
     if (is->readU8() == 0)
-      throw ProtocolException("Server failed to initialize TLS session");
+      throw protocol_error("Server failed to initialize TLS session");
 
     ret = gnutls_init(&session, GNUTLS_CLIENT);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_init()", ret);
+      throw rdr::tls_error("gnutls_init()", ret);
 
     ret = gnutls_set_default_priority(session);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_set_default_priority()", ret);
+      throw rdr::tls_error("gnutls_set_default_priority()", ret);
 
     setParam();
 
@@ -177,7 +177,7 @@ bool CSecurityTLS::processMsg()
 
     vlog.error("TLS Handshake failed: %s\n", gnutls_strerror (err));
     shutdown();
-    throw rdr::TLSException("TLS Handshake failed", err);
+    throw rdr::tls_error("TLS Handshake failed", err);
   }
 
   vlog.debug("TLS handshake completed with %s",
@@ -215,7 +215,7 @@ void CSecurityTLS::setParam()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_priority_direct()", ret);
+      throw rdr::tls_error("gnutls_set_priority_direct()", ret);
     }
   } else if (anon) {
     const char *err;
@@ -227,7 +227,7 @@ void CSecurityTLS::setParam()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_default_priority_append()", ret);
+      throw rdr::tls_error("gnutls_set_default_priority_append()", ret);
     }
 #else
     // We don't know what the system default priority is, so we guess
@@ -248,7 +248,7 @@ void CSecurityTLS::setParam()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_priority_direct()", ret);
+      throw rdr::tls_error("gnutls_set_priority_direct()", ret);
     }
 #endif
   }
@@ -256,17 +256,17 @@ void CSecurityTLS::setParam()
   if (anon) {
     ret = gnutls_anon_allocate_client_credentials(&anon_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_anon_allocate_client_credentials()", ret);
+      throw rdr::tls_error("gnutls_anon_allocate_client_credentials()", ret);
 
     ret = gnutls_credentials_set(session, GNUTLS_CRD_ANON, anon_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_credentials_set()", ret);
+      throw rdr::tls_error("gnutls_credentials_set()", ret);
 
     vlog.debug("Anonymous session has been set");
   } else {
     ret = gnutls_certificate_allocate_credentials(&cert_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_certificate_allocate_credentials()", ret);
+      throw rdr::tls_error("gnutls_certificate_allocate_credentials()", ret);
 
     if (gnutls_certificate_set_x509_system_trust(cert_cred) < 1)
       vlog.error("Could not load system certificate trust store");
@@ -279,7 +279,7 @@ void CSecurityTLS::setParam()
 
     ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cert_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_credentials_set()", ret);
+      throw rdr::tls_error("gnutls_credentials_set()", ret);
 
     if (gnutls_server_name_set(session, GNUTLS_NAME_DNS,
                                client->getServerName(),
@@ -312,12 +312,12 @@ void CSecurityTLS::checkSession()
     return;
 
   if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
-    throw ProtocolException("unsupported certificate type");
+    throw protocol_error("unsupported certificate type");
 
   err = gnutls_certificate_verify_peers2(session, &status);
   if (err != 0) {
     vlog.error("server certificate verification failed: %s", gnutls_strerror(err));
-    throw rdr::TLSException("server certificate verification()", err);
+    throw rdr::tls_error("server certificate verification()", err);
   }
 
   if (status != 0) {
@@ -334,13 +334,13 @@ void CSecurityTLS::checkSession()
                                                          &status_str,
                                                          0);
       if (err != GNUTLS_E_SUCCESS)
-        throw rdr::TLSException("Failed to get certificate error description", err);
+        throw rdr::tls_error("Failed to get certificate error description", err);
 
       error = (const char*)status_str.data;
 
       gnutls_free(status_str.data);
 
-      throw ProtocolException(format("Invalid server certificate: %s",
+      throw protocol_error(format("Invalid server certificate: %s",
                                      error.c_str()));
     }
 
@@ -349,7 +349,7 @@ void CSecurityTLS::checkSession()
                                                        &status_str,
                                                        0);
     if (err != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("Failed to get certificate error description", err);
+      throw rdr::tls_error("Failed to get certificate error description", err);
 
     vlog.info("Server certificate errors: %s", status_str.data);
 
@@ -360,7 +360,7 @@ void CSecurityTLS::checkSession()
 
   cert_list = gnutls_certificate_get_peers(session, &cert_list_size);
   if (!cert_list_size)
-    throw ProtocolException("empty certificate chain");
+    throw protocol_error("empty certificate chain");
 
   /* Process only server's certificate, not issuer's certificate */
   gnutls_x509_crt_t crt;
@@ -368,7 +368,7 @@ void CSecurityTLS::checkSession()
 
   err = gnutls_x509_crt_import(crt, &cert_list[0], GNUTLS_X509_FMT_DER);
   if (err != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("Failed to decode server certificate", err);
+    throw rdr::tls_error("Failed to decode server certificate", err);
 
   if (gnutls_x509_crt_check_hostname(crt, client->getServerName()) == 0) {
     vlog.info("Server certificate doesn't match given server name");
@@ -407,12 +407,12 @@ void CSecurityTLS::checkSession()
 
   if ((known != GNUTLS_E_NO_CERTIFICATE_FOUND) &&
       (known != GNUTLS_E_CERTIFICATE_KEY_MISMATCH)) {
-    throw rdr::TLSException("Could not load known hosts database", known);
+    throw rdr::tls_error("Could not load known hosts database", known);
   }
 
   err = gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &info);
   if (err != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("Could not find certificate to display", err);
+    throw rdr::tls_error("Could not find certificate to display", err);
 
   len = strlen((char*)info.data);
   for (size_t i = 0; i < len - 1; i++) {
@@ -444,7 +444,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unknown certificate issuer",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~(GNUTLS_CERT_INVALID |
                   GNUTLS_CERT_SIGNER_NOT_FOUND |
@@ -464,7 +464,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Certificate is not yet valid",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_NOT_ACTIVATED;
     }
@@ -483,7 +483,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Expired certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_EXPIRED;
     }
@@ -502,7 +502,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Insecure certificate algorithm",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_INSECURE_ALGORITHM;
     }
@@ -527,7 +527,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Certificate hostname mismatch",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
     }
   } else if (known == GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
     std::string text;
@@ -553,7 +553,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unexpected server certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~(GNUTLS_CERT_INVALID |
                   GNUTLS_CERT_SIGNER_NOT_FOUND |
@@ -576,7 +576,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unexpected server certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_NOT_ACTIVATED;
     }
@@ -597,7 +597,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unexpected server certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_EXPIRED;
     }
@@ -618,7 +618,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unexpected server certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
 
       status &= ~GNUTLS_CERT_INSECURE_ALGORITHM;
     }
@@ -645,7 +645,7 @@ void CSecurityTLS::checkSession()
       if (!cc->showMsgBox(MsgBoxFlags::M_YESNO,
                            "Unexpected server certificate",
                            text.c_str()))
-        throw AuthCancelledException();
+        throw auth_cancelled();
     }
   }
 
index 606fd96f6069933d4615c5b3e9f345b4db1f27a3..1b6ecf22059fa640bdcb06c3176d673f1ef84012 100644 (file)
@@ -105,7 +105,7 @@ bool CSecurityVeNCrypt::processMsg()
       os->writeU8(0);
       os->writeU8(0);
       os->flush();
-      throw ProtocolException("The server reported an unsupported VeNCrypt version");
+      throw protocol_error("The server reported an unsupported VeNCrypt version");
      }
 
      haveSentVersion = true;
@@ -117,8 +117,8 @@ bool CSecurityVeNCrypt::processMsg()
       return false;
 
     if (is->readU8())
-      throw ProtocolException("The server reported it could not "
-                              "support the VeNCrypt version");
+      throw protocol_error("The server reported it could not "
+                           "support the VeNCrypt version");
 
     haveAgreedVersion = true;
   }
@@ -131,7 +131,7 @@ bool CSecurityVeNCrypt::processMsg()
     nAvailableTypes = is->readU8();
 
     if (!nAvailableTypes)
-      throw ProtocolException("The server reported no VeNCrypt sub-types");
+      throw protocol_error("The server reported no VeNCrypt sub-types");
 
     availableTypes = new uint32_t[nAvailableTypes];
     haveNumberOfTypes = true;
@@ -172,7 +172,7 @@ bool CSecurityVeNCrypt::processMsg()
 
       /* Set up the stack according to the chosen type: */
       if (chosenType == secTypeInvalid || chosenType == secTypeVeNCrypt)
-        throw ProtocolException("No valid VeNCrypt sub-type");
+        throw protocol_error("No valid VeNCrypt sub-type");
 
       vlog.info("Choosing security type %s (%d)", secTypeName(chosenType),
                 chosenType);
@@ -191,7 +191,7 @@ bool CSecurityVeNCrypt::processMsg()
      * happen, since if the server supports 0 sub-types, it doesn't support
      * this security type
      */
-    throw ProtocolException("The server reported 0 VeNCrypt sub-types");
+    throw protocol_error("The server reported 0 VeNCrypt sub-types");
   }
 
   return csecurity->processMsg();
index 0475d62d087505e573953e0b88f06cecfc16edde..09118f36e644e021e787ebb6ec78a62e5d7b473b 100644 (file)
@@ -114,14 +114,14 @@ bool DecodeManager::decodeRect(const Rect& r, int encoding,
 
   if (!Decoder::supported(encoding)) {
     vlog.error("Unknown encoding %d", encoding);
-    throw ProtocolException("Unknown encoding");
+    throw protocol_error("Unknown encoding");
   }
 
   if (!decoders[encoding]) {
     decoders[encoding] = Decoder::createDecoder(encoding);
     if (!decoders[encoding]) {
       vlog.error("Unknown encoding %d", encoding);
-      throw ProtocolException("Unknown encoding");
+      throw protocol_error("Unknown encoding");
     }
   }
 
index 3b81b4a732aab51f81cc263a51cf96a87a764d2a..0e74209ca4c94682c7ae0d979f19a93590b0f948 100644 (file)
 #include <stdexcept>
 
 namespace rfb {
-  class ProtocolException : public std::runtime_error {
+  class protocol_error : public std::runtime_error {
   public:
-    ProtocolException(const char* what_arg) : std::runtime_error(what_arg) {}
-    ProtocolException(const std::string& what_arg) : std::runtime_error(what_arg) {}
+    protocol_error(const char* what_arg) : std::runtime_error(what_arg) {}
+    protocol_error(const std::string& what_arg) : std::runtime_error(what_arg) {}
   };
 
-  class AuthFailureException : public std::runtime_error {
+  class auth_error : public std::runtime_error {
   public:
-    AuthFailureException(const char* reason) : std::runtime_error(reason) {}
-    AuthFailureException(std::string& reason) : std::runtime_error(reason) {}
+    auth_error(const char* reason) : std::runtime_error(reason) {}
+    auth_error(std::string& reason) : std::runtime_error(reason) {}
   };
 
-  class AuthCancelledException : public std::runtime_error {
+  class auth_cancelled : public std::runtime_error {
   public:
-    AuthCancelledException()
+    auth_cancelled()
       : std::runtime_error("Authentication cancelled") {}
   };
 }
index d440b1af2ec52d7a8ecde5149326c3b935143dd9..35ec79285fd6c9d1bd4fc3679216839aea331112 100644 (file)
@@ -189,7 +189,7 @@ void HextileDecoder::hextileDecode(const Rect& r, rdr::InStream* is,
           int w = ((wh >> 4) & 15) + 1;
           int h = (wh & 15) + 1;
           if (x + w > 16 || y + h > 16) {
-            throw ProtocolException("HEXTILE_DECODE: Hextile out of bounds");
+            throw protocol_error("HEXTILE_DECODE: Hextile out of bounds");
           }
           ptr = buf + y * t.width() + x;
           int rowAdd = t.width() - w;
index 60c215fc78c66999da5126dc0c6c320742d719e1..10c9e49cd62ee4036c8aa68641e5d333ee33953d 100644 (file)
@@ -217,7 +217,7 @@ void JpegDecompressor::decompress(const uint8_t *jpegBuf,
     jpeg_abort_decompress(dinfo);
     if (dstBufIsTemp && dstBuf) delete[] dstBuf;
     if (rowPointer) delete[] rowPointer;
-    throw ProtocolException("Tight Decoding: Wrong JPEG data received.\n");
+    throw protocol_error("Tight Decoding: Wrong JPEG data received.\n");
   }
 
   while (dinfo->output_scanline < dinfo->output_height) {
index a538deb72041780c701d243243ad7f1619ab034e..e312b3c91c16992172f991f59f01ced36f39550c 100644 (file)
@@ -180,7 +180,7 @@ void PixelFormat::read(rdr::InStream* is)
   }
 
   if (!isSane())
-    throw ProtocolException("invalid pixel format");
+    throw protocol_error("invalid pixel format");
 
   updateState();
 }
index 4f2db0710c0e9767040a387fc87715cf5dc051be..53ddc2da49edb3d3b68bb6977ff56f7a19668c8d 100644 (file)
@@ -107,7 +107,7 @@ void RREDecoder::rreDecode(const Rect& r, rdr::InStream* is,
     int h = is->readU16();
 
     if (((x+w) > r.width()) || ((y+h) > r.height()))
-      throw ProtocolException("RRE decode error");
+      throw protocol_error("RRE decode error");
 
     pb->fillRect(pf, Rect(r.tl.x+x, r.tl.y+y, r.tl.x+x+w, r.tl.y+y+h), &pix);
   }
index 6e58b3b463e8e1c49e8ee3f21a302b2b1e5c67a3..0cde5bc69a55470e17aff37b577501ec566f9c27 100644 (file)
@@ -123,7 +123,7 @@ bool SConnection::processVersionMsg()
   if (sscanf(verStr, "RFB %03d.%03d\n",
              &majorVersion, &minorVersion) != 2) {
     state_ = RFBSTATE_INVALID;
-    throw ProtocolException("reading version failed: not an RFB client?");
+    throw protocol_error("reading version failed: not an RFB client?");
   }
 
   client.setVersion(majorVersion, minorVersion);
@@ -215,7 +215,7 @@ void SConnection::processSecurityType(int secType)
   secTypes = security.GetEnabledSecTypes();
   if (std::find(secTypes.begin(), secTypes.end(),
                 secType) == secTypes.end())
-    throw ProtocolException("Requested security type not available");
+    throw protocol_error("Requested security type not available");
 
   vlog.info("Client requests security type %s(%d)",
             secTypeName(secType),secType);
@@ -234,8 +234,8 @@ bool SConnection::processSecurityMsg()
   try {
     if (!ssecurity->processMsg())
       return false;
-  } catch (AuthFailureException& e) {
-    vlog.error("AuthFailureException: %s", e.what());
+  } catch (auth_error& e) {
+    vlog.error("Authentication error: %s", e.what());
     state_ = RFBSTATE_SECURITY_FAILURE;
     // Introduce a slight delay of the authentication failure response
     // to make it difficult to brute force a password
@@ -320,7 +320,7 @@ void SConnection::failConnection(const char* message)
   }
 
   state_ = RFBSTATE_INVALID;
-  throw ProtocolException(message);
+  throw protocol_error(message);
 }
 
 void SConnection::failConnection(const std::string& message)
@@ -474,9 +474,9 @@ void SConnection::approveConnection(bool accept, const char* reason)
   } else {
     state_ = RFBSTATE_INVALID;
     if (reason)
-      throw AuthFailureException(reason);
+      throw auth_error(reason);
     else
-      throw AuthFailureException("Connection rejected");
+      throw auth_error("Connection rejected");
   }
 }
 
index 886972af79ab9b8c1c3fb06fabd5c239aac813b1..ccffa74fc153f654fda1129788d25c56d4a63e99 100644 (file)
@@ -68,12 +68,13 @@ namespace rfb {
     // data is available.
     bool processMsg();
 
-    // approveConnection() is called to either accept or reject the connection.
-    // If accept is false, the reason string gives the reason for the
-    // rejection.  It can either be called directly from queryConnection() or
-    // later, after queryConnection() has returned.  It can only be called when
-    // in state RFBSTATE_QUERYING.  On rejection, an AuthFailureException is
-    // thrown, so this must be handled appropriately by the caller.
+    // approveConnection() is called to either accept or reject the
+    // connection. If accept is false, the reason string gives the
+    // reason for the rejection.  It can either be called directly from
+    // queryConnection() or later, after queryConnection() has returned.
+    // It can only be called when in state RFBSTATE_QUERYING.  On
+    // rejection, an auth_error is thrown, so this must be handled
+    // appropriately by the caller.
     void approveConnection(bool accept, const char* reason=nullptr);
 
 
index ee37370efa049b2f497aaa519ffcefe54b3cfdcc..fcc0a63c812dc5439611efa70b718a1abec358e6 100644 (file)
@@ -107,7 +107,7 @@ bool SMsgReader::readMsg()
     break;
   default:
     vlog.error("unknown message type %d", currentMsgType);
-    throw ProtocolException("unknown message type");
+    throw protocol_error("unknown message type");
   }
 
   if (ret)
@@ -334,7 +334,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
     return false;
 
   if (len < 4)
-    throw ProtocolException("Invalid extended clipboard message");
+    throw protocol_error("Invalid extended clipboard message");
   if (len > maxCutText) {
     vlog.error("Extended clipboard message too long (%d bytes) - ignoring", len);
     is->skip(len);
@@ -356,7 +356,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
     }
 
     if (len < (int32_t)(4 + 4*num))
-      throw ProtocolException("Invalid extended clipboard message");
+      throw protocol_error("Invalid extended clipboard message");
 
     num = 0;
     for (i = 0;i < 16;i++) {
@@ -381,7 +381,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
         continue;
 
       if (!zis.hasData(4))
-        throw ProtocolException("Extended clipboard decode error");
+        throw protocol_error("Extended clipboard decode error");
 
       lengths[num] = zis.readU32();
 
@@ -394,7 +394,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
           size_t chunk;
 
           if (!zis.hasData(1))
-            throw ProtocolException("Extended clipboard decode error");
+            throw protocol_error("Extended clipboard decode error");
 
           chunk = zis.avail();
           if (chunk > lengths[num])
@@ -410,7 +410,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
       }
 
       if (!zis.hasData(lengths[num]))
-        throw ProtocolException("Extended clipboard decode error");
+        throw protocol_error("Extended clipboard decode error");
 
       buffers[num] = new uint8_t[lengths[num]];
       zis.readBytes(buffers[num], lengths[num]);
@@ -440,7 +440,7 @@ bool SMsgReader::readExtendedClipboard(int32_t len)
       handler->handleClipboardNotify(flags);
       break;
     default:
-      throw ProtocolException("Invalid extended clipboard action");
+      throw protocol_error("Invalid extended clipboard action");
     }
   }
 
@@ -464,7 +464,7 @@ bool SMsgReader::readQEMUMessage()
     ret = readQEMUKeyEvent();
     break;
   default:
-    throw ProtocolException(format("unknown QEMU submessage type %d", subType));
+    throw protocol_error(format("unknown QEMU submessage type %d", subType));
   }
 
   if (!ret) {
index 8e296c5ac91ca0d70eff0cb84c81863b2a78043c..0911ecd83bb2c5c5be31d311867d6aa1d3a283ca 100644 (file)
 // derived class for a particular security type overrides the processMsg()
 // method.
 
-// processMsg() is called first when the security type has been decided on, and
-// will keep being called whenever there is data to read from the client.  It
-// should return false when it needs more data, or true when the connection has
-// been successfully authenticated.  In the event of authentication failure an
-// AuthFailureException should be thrown - this will result in a "failed"
-// security result being sent to the client with the str() from the exception
-// being sent as the reason.  Any other type of failure should be indicated by
-// some other kind of exception which will cause the connection to be aborted.
+// processMsg() is called first when the security type has been decided
+// on, and will keep being called whenever there is data to read from
+// the client.  It should return false when it needs more data, or true
+// when the connection has been successfully authenticated.  In the
+// event of authentication failure an auth_error should be thrown - this
+// will result in a "failed" security result being sent to the client
+// with the str() from the exception being sent as the reason.  Any
+// other type of failure should be indicated by some other kind of
+// exception which will cause the connection to be aborted.
 //
 // processMsg() must never block (or at least must never block until the client
 // has been authenticated) - this is to prevent denial of service attacks.
index 1115b7ff282d5f6e9e381548c2836f5bea489d9f..e62e6d608633e6dbf726f5b66d25e4c944930672 100644 (file)
@@ -95,11 +95,11 @@ bool SSecurityPlain::processMsg()
 
     ulen = is->readU32();
     if (ulen >= sizeof(username))
-      throw AuthFailureException("Too long username");
+      throw auth_error("Too long username");
 
     plen = is->readU32();
     if (plen >= sizeof(password))
-      throw AuthFailureException("Too long password");
+      throw auth_error("Too long password");
 
     state = 1;
   }
@@ -114,7 +114,7 @@ bool SSecurityPlain::processMsg()
     username[ulen] = 0;
     plen = 0;
     if (!valid->validate(sc, username, password))
-      throw AuthFailureException("Authentication failed");
+      throw auth_error("Authentication failed");
   }
 
   return true;
index 45f5c293b3fe2409649686f96e6a170cca96faaf..2f26de26803576cb18f2aaefc99b1caafb6de8d8 100644 (file)
@@ -159,7 +159,7 @@ void SSecurityRSAAES::loadPrivateKey()
 {
   FILE* file = fopen(keyFile, "rb");
   if (!file)
-    throw rdr::PosixException("failed to open key file", errno);
+    throw rdr::posix_error("failed to open key file", errno);
   fseek(file, 0, SEEK_END);
   size_t size = ftell(file);
   if (size == 0 || size > MaxKeyFileSize) {
@@ -170,7 +170,7 @@ void SSecurityRSAAES::loadPrivateKey()
   std::vector<uint8_t> data(size);
   if (fread(data.data(), 1, data.size(), file) != size) {
     fclose(file);
-    throw rdr::PosixException("failed to read key", errno);
+    throw rdr::posix_error("failed to read key", errno);
   }
   fclose(file);
 
@@ -299,9 +299,9 @@ bool SSecurityRSAAES::readPublicKey()
   is->setRestorePoint();
   clientKeyLength = is->readU32();
   if (clientKeyLength < MinKeyLength)
-    throw ProtocolException("client key is too short");
+    throw protocol_error("client key is too short");
   if (clientKeyLength > MaxKeyLength)
-    throw ProtocolException("client key is too long");
+    throw protocol_error("client key is too long");
   size_t size = (clientKeyLength + 7) / 8;
   if (!is->hasDataOrRestore(size * 2))
     return false;
@@ -314,7 +314,7 @@ bool SSecurityRSAAES::readPublicKey()
   nettle_mpz_set_str_256_u(clientKey.n, size, clientKeyN);
   nettle_mpz_set_str_256_u(clientKey.e, size, clientKeyE);
   if (!rsa_public_key_prepare(&clientKey))
-    throw ProtocolException("client key is invalid");
+    throw protocol_error("client key is invalid");
   return true;
 }
 
@@ -363,7 +363,7 @@ bool SSecurityRSAAES::readRandom()
   is->setRestorePoint();
   size_t size = is->readU16();
   if (size != serverKey.size)
-    throw ProtocolException("server key length doesn't match");
+    throw protocol_error("server key length doesn't match");
   if (!is->hasDataOrRestore(size))
     return false;
   is->clearRestorePoint();
@@ -376,7 +376,7 @@ bool SSecurityRSAAES::readRandom()
   if (!rsa_decrypt(&serverKey, &randomSize, clientRandom, x) ||
     randomSize != (size_t)keySize / 8) {
     mpz_clear(x);
-    throw ProtocolException("failed to decrypt client random");
+    throw protocol_error("failed to decrypt client random");
   }
   mpz_clear(x);
   return true;
@@ -505,7 +505,7 @@ bool SSecurityRSAAES::readHash()
     sha256_digest(&ctx, hashSize, realHash);
   }
   if (memcmp(hash, realHash, hashSize) != 0)
-    throw ProtocolException("hash doesn't match");
+    throw protocol_error("hash doesn't match");
   return true;
 }
 
@@ -565,7 +565,7 @@ void SSecurityRSAAES::verifyUserPass()
 #endif
   if (!valid->validate(sc, username, password)) {
     delete valid;
-    throw AuthFailureException("Authentication failed");
+    throw auth_error("Authentication failed");
   }
   delete valid;
 #else
@@ -592,7 +592,7 @@ void SSecurityRSAAES::verifyPass()
     return;
   }
 
-  throw AuthFailureException("Authentication failed");
+  throw auth_error("Authentication failed");
 }
 
 const char* SSecurityRSAAES::getUserName() const
index b8377e656e3fd485bb0717a8b6fe5354b18827a6..4b036e273f1defa7cb019ec6c4fa04b7e0fa7c99 100644 (file)
@@ -80,7 +80,7 @@ SSecurityTLS::SSecurityTLS(SConnection* sc_, bool _anon)
 
   ret = gnutls_global_init();
   if (ret != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("gnutls_global_init()", ret);
+    throw rdr::tls_error("gnutls_global_init()", ret);
 }
 
 void SSecurityTLS::shutdown()
@@ -152,11 +152,11 @@ bool SSecurityTLS::processMsg()
 
     err = gnutls_init(&session, GNUTLS_SERVER);
     if (err != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_init()", err);
+      throw rdr::tls_error("gnutls_init()", err);
 
     err = gnutls_set_default_priority(session);
     if (err != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_set_default_priority()", err);
+      throw rdr::tls_error("gnutls_set_default_priority()", err);
 
     try {
       setParams();
@@ -186,7 +186,7 @@ bool SSecurityTLS::processMsg()
     }
     vlog.error("TLS Handshake failed: %s", gnutls_strerror (err));
     shutdown();
-    throw rdr::TLSException("TLS Handshake failed", err);
+    throw rdr::tls_error("TLS Handshake failed", err);
   }
 
   vlog.debug("TLS handshake completed with %s",
@@ -222,7 +222,7 @@ void SSecurityTLS::setParams()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_priority_direct()", ret);
+      throw rdr::tls_error("gnutls_set_priority_direct()", ret);
     }
   } else if (anon) {
     const char *err;
@@ -234,7 +234,7 @@ void SSecurityTLS::setParams()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_default_priority_append()", ret);
+      throw rdr::tls_error("gnutls_set_default_priority_append()", ret);
     }
 #else
     // We don't know what the system default priority is, so we guess
@@ -255,7 +255,7 @@ void SSecurityTLS::setParams()
     if (ret != GNUTLS_E_SUCCESS) {
       if (ret == GNUTLS_E_INVALID_REQUEST)
         vlog.error("GnuTLS priority syntax error at: %s", err);
-      throw rdr::TLSException("gnutls_set_priority_direct()", ret);
+      throw rdr::tls_error("gnutls_set_priority_direct()", ret);
     }
 #endif
   }
@@ -263,18 +263,18 @@ void SSecurityTLS::setParams()
 #if defined (SSECURITYTLS__USE_DEPRECATED_DH)
   ret = gnutls_dh_params_init(&dh_params);
   if (ret != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("gnutls_dh_params_init()", ret);
+    throw rdr::tls_error("gnutls_dh_params_init()", ret);
 
   ret = gnutls_dh_params_import_pkcs3(dh_params, &ffdhe_pkcs3_param,
                                       GNUTLS_X509_FMT_PEM);
   if (ret != GNUTLS_E_SUCCESS)
-    throw rdr::TLSException("gnutls_dh_params_import_pkcs3()", ret);
+    throw rdr::tls_error("gnutls_dh_params_import_pkcs3()", ret);
 #endif
 
   if (anon) {
     ret = gnutls_anon_allocate_server_credentials(&anon_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_anon_allocate_server_credentials()", ret);
+      throw rdr::tls_error("gnutls_anon_allocate_server_credentials()", ret);
 
 #if defined (SSECURITYTLS__USE_DEPRECATED_DH)
     gnutls_anon_set_server_dh_params(anon_cred, dh_params);
@@ -282,14 +282,14 @@ void SSecurityTLS::setParams()
 
     ret = gnutls_credentials_set(session, GNUTLS_CRD_ANON, anon_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_credentials_set()", ret);
+      throw rdr::tls_error("gnutls_credentials_set()", ret);
 
     vlog.debug("Anonymous session has been set");
 
   } else {
     ret = gnutls_certificate_allocate_credentials(&cert_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_certificate_allocate_credentials()", ret);
+      throw rdr::tls_error("gnutls_certificate_allocate_credentials()", ret);
 
 #if defined (SSECURITYTLS__USE_DEPRECATED_DH)
     gnutls_certificate_set_dh_params(cert_cred, dh_params);
@@ -299,11 +299,11 @@ void SSecurityTLS::setParams()
                                                X509_KeyFile,
                                                GNUTLS_X509_FMT_PEM);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("Failed to load certificate and key", ret);
+      throw rdr::tls_error("Failed to load certificate and key", ret);
 
     ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cert_cred);
     if (ret != GNUTLS_E_SUCCESS)
-      throw rdr::TLSException("gnutls_credentials_set()", ret);
+      throw rdr::tls_error("gnutls_credentials_set()", ret);
 
     vlog.debug("X509 session has been set");
 
index e4347fb6b8c7b47f92860809a5f39a9af5661c10..4617fddba9e1281152aac1c06d1f57553fc2bd75 100644 (file)
@@ -99,7 +99,7 @@ bool SSecurityVeNCrypt::processMsg()
     case 0x0001: /* 0.1 Legacy VeNCrypt, not supported */
       os->writeU8(0xFF); /* This is not OK */
       os->flush();
-      throw ProtocolException("The client cannot support the server's "
+      throw protocol_error("The client cannot support the server's "
                               "VeNCrypt version");
 
     case 0x0002: /* 0.2 */
@@ -109,7 +109,7 @@ bool SSecurityVeNCrypt::processMsg()
     default:
       os->writeU8(0xFF); /* Not OK */
       os->flush();
-      throw ProtocolException("The client returned an unsupported VeNCrypt version");
+      throw protocol_error("The client returned an unsupported VeNCrypt version");
     }
   }
 
@@ -138,7 +138,7 @@ bool SSecurityVeNCrypt::processMsg()
       os->flush(); 
       haveSentTypes = true;
     } else
-      throw ProtocolException("There are no VeNCrypt sub-types to send to the client");
+      throw protocol_error("There are no VeNCrypt sub-types to send to the client");
   }
 
   /* get type back from client (must be one of the ones we sent) */
@@ -163,7 +163,7 @@ bool SSecurityVeNCrypt::processMsg()
 
     /* Set up the stack according to the chosen type */
     if (chosenType == secTypeInvalid || chosenType == secTypeVeNCrypt)
-      throw ProtocolException("No valid VeNCrypt sub-type");
+      throw protocol_error("No valid VeNCrypt sub-type");
 
     ssecurity = security->GetSSecurity(sc, chosenType);
   }
index b0401840e3f00c60498320adb1b344689821b762..c4899aa907697300d50992e4bf7184c9682eff9b 100644 (file)
@@ -113,7 +113,7 @@ bool SSecurityVncAuth::processMsg()
     return true;
   }
 
-  throw AuthFailureException("Authentication failed");
+  throw auth_error("Authentication failed");
 }
 
 VncAuthPasswdParameter::VncAuthPasswdParameter(const char* name_,
index ff05b279f18c090de3e58652e50f17cdebe156bf..ccf45a9df640e665a25bcb70bd88df42cbcee2df 100644 (file)
@@ -104,14 +104,14 @@ bool TightDecoder::readRect(const Rect& r, rdr::InStream* is,
 
   // Quit on unsupported compression type.
   if (comp_ctl > tightMaxSubencoding)
-    throw ProtocolException("TightDecoder: bad subencoding value received");
+    throw protocol_error("TightDecoder: bad subencoding value received");
 
   // "Basic" compression type.
 
   int palSize = 0;
 
   if (r.width() > TIGHT_MAX_WIDTH)
-    throw ProtocolException(format("TightDecoder: too large rectangle (%d pixels)", r.width()));
+    throw protocol_error(format("TightDecoder: too large rectangle (%d pixels)", r.width()));
 
   // Possible palette
   if ((comp_ctl & tightExplicitFilter) != 0) {
@@ -143,12 +143,12 @@ bool TightDecoder::readRect(const Rect& r, rdr::InStream* is,
       break;
     case tightFilterGradient:
       if (server.pf().bpp == 8)
-        throw ProtocolException("TightDecoder: invalid BPP for gradient filter");
+        throw protocol_error("TightDecoder: invalid BPP for gradient filter");
       break;
     case tightFilterCopy:
       break;
     default:
-      throw ProtocolException("TightDecoder: unknown filter code received");
+      throw protocol_error("TightDecoder: unknown filter code received");
     }
   }
 
@@ -384,7 +384,7 @@ void TightDecoder::decodeRect(const Rect& r, const uint8_t* buffer,
     netbuf = new uint8_t[dataSize];
 
     if (!zis[streamId].hasData(dataSize))
-      throw ProtocolException("Tight decode error");
+      throw protocol_error("Tight decode error");
     zis[streamId].readBytes(netbuf, dataSize);
 
     zis[streamId].flushUnderlying();
index 6f207eb0555d5ed8ad98edc9c2d86b493105752f..c1cb96f2dfd6abff29a9cb6f4ea25471ef0e2956 100644 (file)
@@ -189,7 +189,7 @@ void VNCSConnectionST::processMessages()
     // We wait until now with this to aggregate responses and to give 
     // higher priority to user actions such as keyboard and pointer events.
     writeFramebufferUpdate();
-  } catch (rdr::EndOfStream&) {
+  } catch (rdr::end_of_stream&) {
     close("Clean disconnection");
   } catch (std::exception& e) {
     close(e.what());
@@ -730,7 +730,7 @@ void VNCSConnectionST::enableContinuousUpdates(bool enable,
   Rect rect;
 
   if (!client.supportsFence() || !client.supportsContinuousUpdates())
-    throw ProtocolException("Client tried to enable continuous updates when not allowed");
+    throw protocol_error("Client tried to enable continuous updates when not allowed");
 
   continuousUpdates = enable;
 
index eab16bafa7093c6c52786ae1769c4988361bb37e..633d1c36ebc57d7bb17dbbeb79977031e43289cc 100644 (file)
@@ -64,7 +64,7 @@ static inline T readPixel(rdr::ZlibInStream* zis)
 static inline void zlibHasData(rdr::ZlibInStream* zis, size_t length)
 {
   if (!zis->hasData(length))
-    throw ProtocolException("ZRLE decode error");
+    throw protocol_error("ZRLE decode error");
 }
 
 ZRLEDecoder::ZRLEDecoder() : Decoder(DecoderOrdered)
@@ -242,7 +242,7 @@ void ZRLEDecoder::zrleDecode(const Rect& r, rdr::InStream* is,
             } while (b == 255);
 
             if (end - ptr < len) {
-              throw ProtocolException("ZRLE decode error");
+              throw protocol_error("ZRLE decode error");
             }
 
             while (len-- > 0) *ptr++ = pix;
@@ -267,7 +267,7 @@ void ZRLEDecoder::zrleDecode(const Rect& r, rdr::InStream* is,
               } while (b == 255);
 
               if (end - ptr < len) {
-                throw ProtocolException("ZRLE decode error");
+                throw protocol_error("ZRLE decode error");
               }
             }
 
index 41a93b3a56a0289689ce1a37f11e9cc18a1a6c20..46f42fa2efd282c449946b930808e8fdba318c42 100644 (file)
@@ -210,7 +210,7 @@ static struct stats runTest(const char *fn)
   try {
     while (true)
       cc->processMsg();
-  } catch (rdr::EndOfStream& e) {
+  } catch (rdr::end_of_stream& e) {
   } catch (std::exception& e) {
     fprintf(stderr, "Failed to run rfb file: %s\n", e.what());
     exit(1);
index 9c7c77fda91ccc25562fee90d9fa0bdced02bfb5..d761bbed0c5c45d8560ff976285adc531dd1bad3 100644 (file)
@@ -380,7 +380,7 @@ static struct stats runTest(const char *fn)
   try {
     while (true)
       cc->processMsg();
-  } catch (rdr::EndOfStream& e) {
+  } catch (rdr::end_of_stream& e) {
   } catch (std::exception& e) {
     fprintf(stderr, "Failed to run rfb file: %s\n", e.what());
     exit(1);
index c663ffaeca869de3a53817df443449538f75ee99..6533377f6b06233ebef82d29c87005d80166811c 100644 (file)
@@ -65,7 +65,7 @@ public:
         FD_ZERO(&rfds);
         FD_SET(ConnectionNumber(dpy), &rfds);
         int n = select(FD_SETSIZE, &rfds, nullptr, nullptr, nullptr);
-        if (n < 0) throw rdr::SocketException("select", errno);
+        if (n < 0) throw rdr::socket_error("select", errno);
       }
     }
     return true;
index 421b45f94130a6c2ec98e18a6f63210ae4ce1724..ecc6eddc28b52ab789508cb23cf4176d4de42443 100644 (file)
@@ -330,7 +330,7 @@ int main(int argc, char** argv)
       FD_ZERO(&rfds);
       FD_SET(ConnectionNumber(dpy), &rfds);
       int n = select(FD_SETSIZE, &rfds, nullptr, nullptr, tvp);
-      if (n < 0) throw rdr::SocketException("select", errno);
+      if (n < 0) throw rdr::socket_error("select", errno);
     }
 
     XCloseDisplay(dpy);
index 81e07d57e5a5108152d6b393a85ded2a3de67148..03f31576d9d08acaaaf0c50b800054a888515634 100644 (file)
@@ -436,7 +436,7 @@ int main(int argc, char** argv)
           vlog.debug("Interrupted select() system call");
           continue;
         } else {
-          throw rdr::SocketException("select", errno);
+          throw rdr::socket_error("select", errno);
         }
       }
 
index 90021d95638884c9ab338fdb008437a6c48b7042..31f5321d442abe214d916d689253d4985e9a7bb0 100644 (file)
@@ -263,7 +263,7 @@ void CConn::socketEvent(FL_SOCKET fd, void *data)
     }
 
     cc->getOutStream()->cork(false);
-  } catch (rdr::EndOfStream& e) {
+  } catch (rdr::end_of_stream& e) {
     vlog.info("%s", e.what());
     if (!cc->desktop) {
       vlog.error(_("The connection was dropped by the server before "
@@ -273,10 +273,10 @@ void CConn::socketEvent(FL_SOCKET fd, void *data)
     } else {
       disconnect();
     }
-  } catch (rfb::AuthCancelledException& e) {
+  } catch (rfb::auth_cancelled& e) {
     vlog.info("%s", e.what());
     disconnect();
-  } catch (rfb::AuthFailureException& e) {
+  } catch (rfb::auth_error& e) {
     cc->resetPassword();
     vlog.error(_("Authentication failed: %s"), e.what());
     abort_connection(_("Failed to authenticate with the server. Reason "
index 18909a6071fb8d2148449fffad94e1db458fedf0..e24438d6b6de7a161da094ecdb32d942ffd1a6f9 100644 (file)
@@ -361,7 +361,7 @@ void ServerDialog::loadServerHistory()
       return;
     }
     std::string msg = format(_("Could not open \"%s\""), filepath);
-    throw rdr::PosixException(msg.c_str(), errno);
+    throw rdr::posix_error(msg.c_str(), errno);
   }
 
   int lineNr = 0;
@@ -377,7 +377,7 @@ void ServerDialog::loadServerHistory()
       fclose(f);
       std::string msg = format(_("Failed to read line %d in "
                                  "file \"%s\""), lineNr, filepath);
-      throw rdr::PosixException(msg.c_str(), errno);
+      throw rdr::posix_error(msg.c_str(), errno);
     }
 
     int len = strlen(line);
@@ -436,7 +436,7 @@ void ServerDialog::saveServerHistory()
   FILE* f = fopen(filepath, "w+");
   if (!f) {
     std::string msg = format(_("Could not open \"%s\""), filepath);
-    throw rdr::PosixException(msg.c_str(), errno);
+    throw rdr::posix_error(msg.c_str(), errno);
   }
 
   // Save the last X elements to the config file.
index 67ba15c5cee20e597b444eeb7dffad0eeccda7e2..c992dbea4018ce6695166eabc73421ad45c2cf57 100644 (file)
@@ -57,10 +57,10 @@ void Surface::draw(int src_x, int src_y, int dst_x, int dst_y,
 
   dc = CreateCompatibleDC(fl_gc);
   if (!dc)
-    throw rdr::Win32Exception("CreateCompatibleDC", GetLastError());
+    throw rdr::win32_error("CreateCompatibleDC", GetLastError());
 
   if (!SelectObject(dc, bitmap))
-    throw rdr::Win32Exception("SelectObject", GetLastError());
+    throw rdr::win32_error("SelectObject", GetLastError());
 
   if (!BitBlt(fl_gc, dst_x, dst_y, dst_w, dst_h,
               dc, src_x, src_y, SRCCOPY)) {
@@ -70,7 +70,7 @@ void Surface::draw(int src_x, int src_y, int dst_x, int dst_y,
     // with it. For now, we've only seen this error and for this function
     // so only ignore this combination.
     if (GetLastError() != ERROR_INVALID_HANDLE)
-      throw rdr::Win32Exception("BitBlt", GetLastError());
+      throw rdr::win32_error("BitBlt", GetLastError());
   }
 
   DeleteDC(dc);
@@ -83,10 +83,10 @@ void Surface::draw(Surface* dst, int src_x, int src_y,
 
   dstdc = CreateCompatibleDC(nullptr);
   if (!dstdc)
-    throw rdr::Win32Exception("CreateCompatibleDC", GetLastError());
+    throw rdr::win32_error("CreateCompatibleDC", GetLastError());
 
   if (!SelectObject(dstdc, dst->bitmap))
-    throw rdr::Win32Exception("SelectObject", GetLastError());
+    throw rdr::win32_error("SelectObject", GetLastError());
 
   origdc = fl_gc;
   fl_gc = dstdc;
@@ -113,15 +113,15 @@ void Surface::blend(Surface* dst, int src_x, int src_y,
 
   dstdc = CreateCompatibleDC(nullptr);
   if (!dstdc)
-    throw rdr::Win32Exception("CreateCompatibleDC", GetLastError());
+    throw rdr::win32_error("CreateCompatibleDC", GetLastError());
   srcdc = CreateCompatibleDC(nullptr);
   if (!srcdc)
-    throw rdr::Win32Exception("CreateCompatibleDC", GetLastError());
+    throw rdr::win32_error("CreateCompatibleDC", GetLastError());
 
   if (!SelectObject(dstdc, dst->bitmap))
-    throw rdr::Win32Exception("SelectObject", GetLastError());
+    throw rdr::win32_error("SelectObject", GetLastError());
   if (!SelectObject(srcdc, bitmap))
-    throw rdr::Win32Exception("SelectObject", GetLastError());
+    throw rdr::win32_error("SelectObject", GetLastError());
 
   blend.BlendOp = AC_SRC_OVER;
   blend.BlendFlags = 0;
@@ -136,7 +136,7 @@ void Surface::blend(Surface* dst, int src_x, int src_y,
     // with it. For now, we've only seen this error and for this function
     // so only ignore this combination.
     if (GetLastError() != ERROR_INVALID_HANDLE)
-      throw rdr::Win32Exception("BitBlt", GetLastError());
+      throw rdr::win32_error("BitBlt", GetLastError());
   }
 
   DeleteDC(srcdc);
@@ -161,7 +161,7 @@ void Surface::alloc()
   bitmap = CreateDIBSection(nullptr, (BITMAPINFO*)&bih,
                             DIB_RGB_COLORS, (void**)&data, nullptr, 0);
   if (!bitmap)
-    throw rdr::Win32Exception("CreateDIBSection", GetLastError());
+    throw rdr::win32_error("CreateDIBSection", GetLastError());
 }
 
 void Surface::dealloc()
index 56e6c17f0a958859e27f21684624644db2b34c5d..2c8d84744bf42cbc3fdf3b465d19e6b0cd9f91c0 100644 (file)
@@ -117,7 +117,7 @@ void UserDialog::getUserPasswd(bool secure_, std::string* user,
 
     fp = fopen(passwordFileName, "rb");
     if (!fp)
-      throw rdr::PosixException(_("Opening password file failed"), errno);
+      throw rdr::posix_error(_("Opening password file failed"), errno);
 
     obfPwd.resize(fread(obfPwd.data(), 1, obfPwd.size(), fp));
     fclose(fp);
@@ -248,7 +248,7 @@ void UserDialog::getUserPasswd(bool secure_, std::string* user,
   delete win;
 
   if (ret_val != 0)
-    throw rfb::AuthCancelledException();
+    throw rfb::auth_cancelled();
 }
 
 bool UserDialog::showMsgBox(MsgBoxFlags flags, const char* title, const char* text)
index b66c7da284cecba89cc05d4138e1f9551cfaa5e0..a6229a349cba62646847efc3cc7babae66cda147 100644 (file)
@@ -320,7 +320,7 @@ static void setKeyString(const char *_name, const char *_value, HKEY* hKey) {
 
   LONG res = RegSetValueExW(*hKey, name, 0, REG_SZ, (BYTE*)&value, (wcslen(value)+1)*2);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegSetValueExW", res);
+    throw rdr::win32_error("RegSetValueExW", res);
 }
 
 
@@ -336,7 +336,7 @@ static void setKeyInt(const char *_name, const int _value, HKEY* hKey) {
 
   LONG res = RegSetValueExW(*hKey, name, 0, REG_DWORD, (BYTE*)&value, sizeof(DWORD));
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegSetValueExW", res);
+    throw rdr::win32_error("RegSetValueExW", res);
 }
 
 
@@ -357,7 +357,7 @@ static bool getKeyString(const char* _name, char* dest, size_t destSize, HKEY* h
   if (res != ERROR_SUCCESS){
     delete [] value;
     if (res != ERROR_FILE_NOT_FOUND)
-      throw rdr::Win32Exception("RegQueryValueExW", res);
+      throw rdr::win32_error("RegQueryValueExW", res);
     // The value does not exist, defaults will be used.
     return false;
   }
@@ -394,7 +394,7 @@ static bool getKeyInt(const char* _name, int* dest, HKEY* hKey) {
   LONG res = RegQueryValueExW(*hKey, name, nullptr, nullptr, (LPBYTE)&value, &dwordsize);
   if (res != ERROR_SUCCESS){
     if (res != ERROR_FILE_NOT_FOUND)
-      throw rdr::Win32Exception("RegQueryValueExW", res);
+      throw rdr::win32_error("RegQueryValueExW", res);
     // The value does not exist, defaults will be used.
     return false;
   }
@@ -414,7 +414,7 @@ static void removeValue(const char* _name, HKEY* hKey) {
   LONG res = RegDeleteValueW(*hKey, name);
   if (res != ERROR_SUCCESS) {
     if (res != ERROR_FILE_NOT_FOUND)
-      throw rdr::Win32Exception("RegDeleteValueW", res);
+      throw rdr::win32_error("RegDeleteValueW", res);
     // The value does not exist, no need to remove it.
     return;
   }
@@ -428,7 +428,7 @@ void saveHistoryToRegKey(const list<string>& serverHistory) {
                              &hKey, nullptr);
 
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to create registry key"), res);
+    throw rdr::win32_error(_("Failed to create registry key"), res);
 
   unsigned index = 0;
   assert(SERVER_HISTORY_SIZE < 100);
@@ -449,7 +449,7 @@ void saveHistoryToRegKey(const list<string>& serverHistory) {
 
   res = RegCloseKey(hKey);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to close registry key"), res);
+    throw rdr::win32_error(_("Failed to close registry key"), res);
 }
 
 static void saveToReg(const char* servername) {
@@ -461,7 +461,7 @@ static void saveToReg(const char* servername) {
                              REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, nullptr,
                              &hKey, nullptr);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to create registry key"), res);
+    throw rdr::win32_error(_("Failed to create registry key"), res);
 
   try {
     setKeyString("ServerName", servername, &hKey);
@@ -506,7 +506,7 @@ static void saveToReg(const char* servername) {
 
   res = RegCloseKey(hKey);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to close registry key"), res);
+    throw rdr::win32_error(_("Failed to close registry key"), res);
 }
 
 list<string> loadHistoryFromRegKey() {
@@ -522,7 +522,7 @@ list<string> loadHistoryFromRegKey() {
       return serverHistory;
     }
 
-    throw rdr::Win32Exception(_("Failed to open registry key"), res);
+    throw rdr::win32_error(_("Failed to open registry key"), res);
   }
 
   unsigned index;
@@ -549,7 +549,7 @@ list<string> loadHistoryFromRegKey() {
 
   res = RegCloseKey(hKey);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to close registry key"), res);
+    throw rdr::win32_error(_("Failed to close registry key"), res);
 
   return serverHistory;
 }
@@ -596,7 +596,7 @@ static char* loadFromReg() {
       return nullptr;
     }
 
-    throw rdr::Win32Exception(_("Failed to open registry key"), res);
+    throw rdr::win32_error(_("Failed to open registry key"), res);
   }
 
   const size_t buffersize = 256;
@@ -618,7 +618,7 @@ static char* loadFromReg() {
 
   res = RegCloseKey(hKey);
   if (res != ERROR_SUCCESS)
-    throw rdr::Win32Exception(_("Failed to close registry key"), res);
+    throw rdr::win32_error(_("Failed to close registry key"), res);
 
   return servername;
 }
@@ -652,7 +652,7 @@ void saveViewerParameters(const char *filename, const char *servername) {
   FILE* f = fopen(filepath, "w+");
   if (!f) {
     std::string msg = format(_("Could not open \"%s\""), filepath);
-    throw rdr::PosixException(msg.c_str(), errno);
+    throw rdr::posix_error(msg.c_str(), errno);
   }
 
   fprintf(f, "%s\n", IDENTIFIER_STRING);
@@ -760,7 +760,7 @@ char* loadViewerParameters(const char *filename) {
     if (!filename)
       return nullptr; // Use defaults.
     std::string msg = format(_("Could not open \"%s\""), filepath);
-    throw rdr::PosixException(msg.c_str(), errno);
+    throw rdr::posix_error(msg.c_str(), errno);
   }
   
   int lineNr = 0;
@@ -775,7 +775,7 @@ char* loadViewerParameters(const char *filename) {
       fclose(f);
       std::string msg = format(_("Failed to read line %d in "
                                  "file \"%s\""), lineNr, filepath);
-      throw rdr::PosixException(msg.c_str(), errno);
+      throw rdr::posix_error(msg.c_str(), errno);
     }
 
     if (strlen(line) == (sizeof(line) - 1)) {
index df3b8964cbc61325aec085b4b5d3f95435c5f940..5acab1a17cedaefca56ea53cb0247a122c6de6e8 100644 (file)
@@ -773,7 +773,7 @@ int main(int argc, char** argv)
             vlog.debug("Interrupted select() system call");
             continue;
           } else {
-            throw rdr::SocketException("select", errno);
+            throw rdr::socket_error("select", errno);
           }
         }
 
index 6634d44506c624414f49cf568c46e0e2fed93825..02fdd374765942a2018ed7b24d3805b460427f94 100644 (file)
@@ -45,7 +45,7 @@ struct ActiveDesktop {
     HRESULT result = CoCreateInstance(CLSID_ActiveDesktop, nullptr, CLSCTX_INPROC_SERVER,
                                       IID_IActiveDesktop, (PVOID*)&handle);
     if (result != S_OK)
-      throw rdr::Win32Exception("failed to contact Active Desktop", HRESULT_CODE(result));
+      throw rdr::win32_error("failed to contact Active Desktop", HRESULT_CODE(result));
   }
   ~ActiveDesktop() {
     if (handle)
index 72e8999ec96a7c77f184b888ed7abf5c32391dc6..8577df462e894c2a64552c7b810fb3041e0d4033 100644 (file)
@@ -129,7 +129,7 @@ Clipboard::setClipText(const char* text) {
 
     // - Firstly, we must open the clipboard
     if (!OpenClipboard(getHandle()))
-      throw rdr::Win32Exception("unable to open Win32 clipboard", GetLastError());
+      throw rdr::win32_error("unable to open Win32 clipboard", GetLastError());
 
     // - Convert the supplied clipboard text into UTF-16 format with CRLF
     std::string filtered(convertCRLF(text));
@@ -144,11 +144,11 @@ Clipboard::setClipText(const char* text) {
 
     // - Next, we must clear out any existing data
     if (!EmptyClipboard())
-      throw rdr::Win32Exception("unable to empty Win32 clipboard", GetLastError());
+      throw rdr::win32_error("unable to empty Win32 clipboard", GetLastError());
 
     // - Set the new clipboard data
     if (!SetClipboardData(CF_UNICODETEXT, clip_handle))
-      throw rdr::Win32Exception("unable to set Win32 clipboard", GetLastError());
+      throw rdr::win32_error("unable to set Win32 clipboard", GetLastError());
     clip_handle = nullptr;
 
     vlog.debug("set clipboard");
index 0ecc6a3ddb6e0957d8af839bca99ec3f8353fee9..c8fdf82913e04889a8219edcecefc882c19d4e71 100644 (file)
@@ -30,7 +30,7 @@ namespace rfb {
       CompatibleBitmap(HDC hdc, int width, int height) {
         hbmp = CreateCompatibleBitmap(hdc, width, height);
         if (!hbmp)
-          throw rdr::Win32Exception("CreateCompatibleBitmap() failed", GetLastError());
+          throw rdr::win32_error("CreateCompatibleBitmap() failed", GetLastError());
       }
       virtual ~CompatibleBitmap() {
         if (hbmp) DeleteObject(hbmp);
index 2ca48dd6d8de635aaa3f0f9f9a7c448715cac9a2..be36368289f85954c0e2098bb2babca8cf9cd1ab 100644 (file)
@@ -80,7 +80,7 @@ CurrentUserToken::CurrentUserToken() {
     if (!OpenProcessToken(GetCurrentProcess(), GENERIC_ALL, &h)) {
       DWORD err = GetLastError();
       if (err != ERROR_CALL_NOT_IMPLEMENTED)
-        throw rdr::Win32Exception("OpenProcessToken failed", err);
+        throw rdr::win32_error("OpenProcessToken failed", err);
       h = INVALID_HANDLE_VALUE;
     }
   }
@@ -96,7 +96,7 @@ ImpersonateCurrentUser::ImpersonateCurrentUser() {
   if (!ImpersonateLoggedOnUser(token)) {
     DWORD err = GetLastError();
     if (err != ERROR_CALL_NOT_IMPLEMENTED)
-      throw rdr::Win32Exception("Failed to impersonate user", GetLastError());
+      throw rdr::win32_error("Failed to impersonate user", GetLastError());
   }
 }
 
@@ -114,7 +114,7 @@ UserName::UserName() {
   char buf[UNLEN+1];
   DWORD len = UNLEN+1;
   if (!GetUserName(buf, &len))
-    throw rdr::Win32Exception("GetUserName failed", GetLastError());
+    throw rdr::win32_error("GetUserName failed", GetLastError());
   assign(buf);
 }
 
index f6447b0d5eb4aece4b1695b19928adfdeed44115..440fe6b1b65f622b13ddfe0bc7739939744e6d7e 100644 (file)
@@ -87,7 +87,7 @@ void DIBSectionBuffer::initBuffer(const PixelFormat& pf, int w, int h) {
 
     if (!new_bitmap) {
       int err = GetLastError();
-      throw rdr::Win32Exception("unable to create DIB section", err);
+      throw rdr::win32_error("unable to create DIB section", err);
     }
 
     vlog.debug("recreateBuffer()");
@@ -130,7 +130,7 @@ void DIBSectionBuffer::initBuffer(const PixelFormat& pf, int w, int h) {
     // Determine the *actual* DIBSection format
     DIBSECTION ds;
     if (!GetObject(bitmap, sizeof(ds), &ds))
-      throw rdr::Win32Exception("GetObject", GetLastError());
+      throw rdr::win32_error("GetObject", GetLastError());
 
     // Correct the "stride" of the DIB
     // *** This code DWORD aligns each row - is that right???
index 210bbf8025ce06ff2c33052c0893ff3f543ca307..1c64e1f5198c3909b8f36efdc56e60250e18c4a7 100644 (file)
@@ -51,10 +51,10 @@ PixelFormat DeviceContext::getPF(HDC dc) {
   bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
   bi.bmiHeader.biBitCount = 0;
   if (!::GetDIBits(dc, bitmap, 0, 1, nullptr, (BITMAPINFO*)&bi, DIB_RGB_COLORS)) {
-    throw rdr::Win32Exception("unable to determine device pixel format", GetLastError());
+    throw rdr::win32_error("unable to determine device pixel format", GetLastError());
   }
   if (!::GetDIBits(dc, bitmap, 0, 1, nullptr, (BITMAPINFO*)&bi, DIB_RGB_COLORS)) {
-    throw rdr::Win32Exception("unable to determine pixel shifts/palette", GetLastError());
+    throw rdr::win32_error("unable to determine pixel shifts/palette", GetLastError());
   }
 
   // Set the initial format information
@@ -151,7 +151,7 @@ Rect DeviceContext::getClipBox(HDC dc) {
   // Get the display dimensions
   RECT cr;
   if (!GetClipBox(dc, &cr))
-    throw rdr::Win32Exception("GetClipBox", GetLastError());
+    throw rdr::win32_error("GetClipBox", GetLastError());
   return Rect(cr.left, cr.top, cr.right, cr.bottom);
 }
 
@@ -159,7 +159,7 @@ Rect DeviceContext::getClipBox(HDC dc) {
 DeviceDC::DeviceDC(const char* deviceName) {
   dc = ::CreateDC("DISPLAY", deviceName, nullptr, nullptr);
   if (!dc)
-    throw rdr::Win32Exception("failed to create DeviceDC", GetLastError());
+    throw rdr::win32_error("failed to create DeviceDC", GetLastError());
 }
 
 DeviceDC::~DeviceDC() {
@@ -171,7 +171,7 @@ DeviceDC::~DeviceDC() {
 WindowDC::WindowDC(HWND wnd) : hwnd(wnd) {
   dc = GetDC(wnd);
   if (!dc)
-    throw rdr::Win32Exception("GetDC failed", GetLastError());
+    throw rdr::win32_error("GetDC failed", GetLastError());
 }
 
 WindowDC::~WindowDC() {
@@ -183,7 +183,7 @@ WindowDC::~WindowDC() {
 CompatibleDC::CompatibleDC(HDC existing) {
   dc = CreateCompatibleDC(existing);
   if (!dc)
-    throw rdr::Win32Exception("CreateCompatibleDC failed", GetLastError());
+    throw rdr::win32_error("CreateCompatibleDC failed", GetLastError());
 }
 
 CompatibleDC::~CompatibleDC() {
@@ -195,7 +195,7 @@ CompatibleDC::~CompatibleDC() {
 BitmapDC::BitmapDC(HDC hdc, HBITMAP hbitmap) : CompatibleDC(hdc){
   oldBitmap = (HBITMAP)SelectObject(dc, hbitmap);
   if (!oldBitmap)
-    throw rdr::Win32Exception("SelectObject to CompatibleDC failed",
+    throw rdr::win32_error("SelectObject to CompatibleDC failed",
     GetLastError());
 }
 
index 4da4d814a3939f3b3c415a63f6ad951e1cfd426d..1c3e9575a267608e8b3645601518988ee986e7e7 100644 (file)
@@ -102,7 +102,7 @@ DeviceFrameBuffer::grabRect(const Rect &rect) {
     if (ignoreGrabErrors)
       vlog.error("BitBlt failed:%ld", GetLastError());
     else
-      throw rdr::Win32Exception("BitBlt failed", GetLastError());
+      throw rdr::win32_error("BitBlt failed", GetLastError());
   }
 }
 
@@ -138,7 +138,7 @@ void DeviceFrameBuffer::setCursor(HCURSOR hCursor, VNCServer* server)
 
     BITMAP maskInfo;
     if (!GetObject(iconInfo.hbmMask, sizeof(BITMAP), &maskInfo))
-      throw rdr::Win32Exception("GetObject() failed", GetLastError());
+      throw rdr::win32_error("GetObject() failed", GetLastError());
     if (maskInfo.bmPlanes != 1)
       throw std::invalid_argument("unsupported multi-plane cursor");
     if (maskInfo.bmBitsPixel != 1)
@@ -174,7 +174,7 @@ void DeviceFrameBuffer::setCursor(HCURSOR hCursor, VNCServer* server)
 
       if (!GetDIBits(dc, iconInfo.hbmColor, 0, height,
                      buffer.data(), (LPBITMAPINFO)&bi, DIB_RGB_COLORS))
-        throw rdr::Win32Exception("GetDIBits", GetLastError());
+        throw rdr::win32_error("GetDIBits", GetLastError());
 
       // We may not get the RGBA order we want, so shuffle things around
       int ridx, gidx, bidx, aidx;
@@ -217,7 +217,7 @@ void DeviceFrameBuffer::setCursor(HCURSOR hCursor, VNCServer* server)
 
       if (!GetBitmapBits(iconInfo.hbmMask,
                          maskInfo.bmWidthBytes * maskInfo.bmHeight, mask.data()))
-        throw rdr::Win32Exception("GetBitmapBits", GetLastError());
+        throw rdr::win32_error("GetBitmapBits", GetLastError());
 
       bool doOutline = false;
       uint8_t* rwbuffer = buffer.data();
index d5938e8d52f02036f69f20f961cb1d0161a1c7d4..e8af08465e0ab5366b33e17f6eb6c4d2648448fa 100644 (file)
@@ -65,7 +65,7 @@ bool Dialog::showDialog(const char* resource, HWND owner)
   INT_PTR result = DialogBoxParam(inst, resource, owner,
                                   staticDialogProc, (LPARAM)this);
   if (result<0)
-    throw rdr::Win32Exception("DialogBoxParam failed", GetLastError());
+    throw rdr::win32_error("DialogBoxParam failed", GetLastError());
   alreadyShowing = false;
   return (result == 1);
 }
@@ -275,7 +275,7 @@ bool PropSheet::showPropSheet(HWND owner_, bool showApply, bool showCtxtHelp, bo
 
     handle = (HWND)PropertySheet(&header);
     if ((handle == nullptr) || (handle == (HWND)-1))
-      throw rdr::Win32Exception("PropertySheet failed", GetLastError());
+      throw rdr::win32_error("PropertySheet failed", GetLastError());
     centerWindow(handle, owner_);
     plog.info("created %p", handle);
 
index ca2345147601701a9def7e7ec34c58fa47887128..991a5a13ae0dc46d14fcac44f161dff3cdbc55c2 100644 (file)
@@ -28,7 +28,7 @@ namespace rfb {
     struct IconInfo : public ICONINFO {
       IconInfo(HICON icon) {
         if (!GetIconInfo(icon, this))
-          throw rdr::Win32Exception("GetIconInfo() failed", GetLastError());
+          throw rdr::win32_error("GetIconInfo() failed", GetLastError());
       }
       ~IconInfo() {
         if (hbmColor)
index 5ced2c5eb505555d8fe804fdc350d5bc20e2f39f..b62040b35eccb713f8aa879becb430f70e057998 100644 (file)
@@ -41,7 +41,7 @@ namespace rfb {
         if (!active || interval_ != interval) {
           interval = interval_;
           if (!SetTimer(hwnd, id, interval, nullptr))
-            throw rdr::Win32Exception("SetTimer", GetLastError());
+            throw rdr::win32_error("SetTimer", GetLastError());
           active = true;
         }
       }
index beb7e6b71727878dd2c338d0c5d548b95c9d3954..38aa720f2d0e59f5c481e74670e75550d1658056 100644 (file)
@@ -53,7 +53,7 @@ void LaunchProcess::start(HANDLE userToken, bool createConsole) {
   char buf[256];
   HDESK desktop = GetThreadDesktop(GetCurrentThreadId());
   if (!GetUserObjectInformation(desktop, UOI_NAME, buf, 256, &size))
-    throw rdr::Win32Exception("unable to launch process", GetLastError());
+    throw rdr::win32_error("unable to launch process", GetLastError());
 
   snprintf(desktopName, 256, "WinSta0\\%s", buf);
 
@@ -95,7 +95,7 @@ void LaunchProcess::start(HANDLE userToken, bool createConsole) {
                             flags, nullptr, nullptr,
                             &sinfo, &procInfo);
   if (!success)
-    throw rdr::Win32Exception("unable to launch process", GetLastError());
+    throw rdr::win32_error("unable to launch process", GetLastError());
 
   // Wait for it to finish initialising
   WaitForInputIdle(procInfo.hProcess, 15000);
@@ -119,7 +119,7 @@ bool LaunchProcess::await(DWORD timeoutMs) {
     detach();
     return true;
   } else if (result == WAIT_FAILED) {
-    throw rdr::Win32Exception("await() failed", GetLastError());
+    throw rdr::win32_error("await() failed", GetLastError());
   }
   return false;
 }
index e2dc80bd8a2686956e9fd1cf7f0e65a5556b8dcb..5280dea3ce82e49a6bb42d3acd4bb8309ab60e89 100644 (file)
@@ -28,7 +28,7 @@ namespace rfb {
     // Allocate and/or manage LocalAlloc memory.
     struct LocalMem {
       LocalMem(int size) : ptr(LocalAlloc(LMEM_FIXED, size)) {
-        if (!ptr) throw rdr::Win32Exception("LocalAlloc", GetLastError());
+        if (!ptr) throw rdr::win32_error("LocalAlloc", GetLastError());
       }
       LocalMem(void* p) : ptr(p) {}
       ~LocalMem() {LocalFree(ptr);}
index 854b467a6d17ede0934fa4eb3dbdd76aa0917040..84a8d50147ed822e1e9f8287865c57ed4f35851a 100644 (file)
@@ -44,7 +44,7 @@ static void fillMonitorInfo(HMONITOR monitor, MONITORINFOEXA* mi) {
   memset(mi, 0, sizeof(MONITORINFOEXA));
   mi->cbSize = sizeof(MONITORINFOEXA);
   if (!GetMonitorInfo(monitor, mi))
-    throw rdr::Win32Exception("failed to GetMonitorInfo", GetLastError());
+    throw rdr::win32_error("failed to GetMonitorInfo", GetLastError());
   vlog.debug("monitor is %ld,%ld-%ld,%ld", mi->rcMonitor.left, mi->rcMonitor.top, mi->rcMonitor.right, mi->rcMonitor.bottom);
   vlog.debug("work area is %ld,%ld-%ld,%ld", mi->rcWork.left, mi->rcWork.top, mi->rcWork.right, mi->rcWork.bottom);
   vlog.debug("device is \"%s\"", mi->szDevice);
@@ -57,7 +57,7 @@ MonitorInfo::MonitorInfo(HWND window) {
 
   HMONITOR monitor = MonitorFromWindow(window, MONITOR_DEFAULTTONEAREST);
   if (!monitor)
-    throw rdr::Win32Exception("failed to get monitor", GetLastError());
+    throw rdr::win32_error("failed to get monitor", GetLastError());
   fillMonitorInfo(monitor, this);
 }
 
@@ -67,7 +67,7 @@ MonitorInfo::MonitorInfo(const RECT& r) {
 
   HMONITOR monitor = MonitorFromRect(&r, MONITOR_DEFAULTTONEAREST);
   if (!monitor)
-    throw rdr::Win32Exception("failed to get monitor", GetLastError());
+    throw rdr::win32_error("failed to get monitor", GetLastError());
   fillMonitorInfo(monitor, this);
 }
 
index a5770e67100c9b400dd915fcd367b07b2ab182db..4908126ec4d7c5c2bdc911c1e632b9ca9864dcda 100644 (file)
@@ -82,7 +82,7 @@ MsgWindowClass::MsgWindowClass() : classAtom(0) {
   wndClass.lpszClassName = "rfb::win32::MsgWindowClass";
   classAtom = RegisterClass(&wndClass);
   if (!classAtom) {
-    throw rdr::Win32Exception("unable to register MsgWindow window class", GetLastError());
+    throw rdr::win32_error("unable to register MsgWindow window class", GetLastError());
   }
 }
 
@@ -104,7 +104,7 @@ MsgWindow::MsgWindow(const char* name_) : name(name_), handle(nullptr) {
                         name.c_str(), WS_OVERLAPPED, 0, 0, 10, 10,
                         nullptr, nullptr, baseClass.instance, this);
   if (!handle) {
-    throw rdr::Win32Exception("unable to create WMNotifier window instance", GetLastError());
+    throw rdr::win32_error("unable to create WMNotifier window instance", GetLastError());
   }
   vlog.debug("created window \"%s\" (%p)", name.c_str(), handle);
 }
index d93e8eb45a97ecc5879e05c9fe6f7bc38018734a..211570ca7662256015c90380dbf2843f6abb6592 100644 (file)
@@ -69,7 +69,7 @@ void RegConfig::loadRegistryConfig(RegKey& key) {
       if (!Configuration::setParam(name, value.c_str()))
         vlog.info("unable to process %s", name);
     }
-  } catch (rdr::Win32Exception& e) {
+  } catch (rdr::win32_error& e) {
     if (e.err != ERROR_INVALID_HANDLE)
       vlog.error("%s", e.what());
   }
@@ -115,5 +115,5 @@ void RegConfigThread::worker() {
   thread_id = GetCurrentThreadId();
   while ((result = eventMgr.getMessage(&msg, nullptr, 0, 0)) > 0) {}
   if (result < 0)
-    throw rdr::Win32Exception("RegConfigThread failed", GetLastError());
+    throw rdr::win32_error("RegConfigThread failed", GetLastError());
 }
index 54de8928bff49b0ddf27161facc3d6d61624a10d..4775695075d45fd88bf23efa87c88049a3a2358f 100644 (file)
@@ -54,7 +54,7 @@ RegKey::RegKey() : key(nullptr), freeKey(false), valueName(nullptr), valueNameBu
 RegKey::RegKey(const HKEY k) : key(nullptr), freeKey(false), valueName(nullptr), valueNameBufLen(0) {
   LONG result = RegOpenKeyEx(k, nullptr, 0, KEY_ALL_ACCESS, &key);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegOpenKeyEx(HKEY)", result);
+    throw rdr::win32_error("RegOpenKeyEx(HKEY)", result);
   vlog.debug("duplicated %p to %p", k, key);
   freeKey = true;
 }
@@ -62,7 +62,7 @@ RegKey::RegKey(const HKEY k) : key(nullptr), freeKey(false), valueName(nullptr),
 RegKey::RegKey(const RegKey& k) : key(nullptr), freeKey(false), valueName(nullptr), valueNameBufLen(0) {
   LONG result = RegOpenKeyEx(k.key, nullptr, 0, KEY_ALL_ACCESS, &key);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegOpenKeyEx(RegKey&)", result);
+    throw rdr::win32_error("RegOpenKeyEx(RegKey&)", result);
   vlog.debug("duplicated %p to %p", k.key, key);
   freeKey = true;
 }
@@ -86,7 +86,7 @@ bool RegKey::createKey(const RegKey& root, const char* name) {
   LONG result = RegCreateKey(root.key, name, &key);
   if (result != ERROR_SUCCESS) {
     vlog.error("RegCreateKey(%p, %s): %lx", root.key, name, result);
-    throw rdr::Win32Exception("RegCreateKeyEx", result);
+    throw rdr::win32_error("RegCreateKeyEx", result);
   }
   vlog.debug("createKey(%p,%s) = %p", root.key, name, key);
   freeKey = true;
@@ -97,7 +97,7 @@ void RegKey::openKey(const RegKey& root, const char* name, bool readOnly) {
   close();
   LONG result = RegOpenKeyEx(root.key, name, 0, readOnly ? KEY_READ : KEY_ALL_ACCESS, &key);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegOpenKeyEx (open)", result);
+    throw rdr::win32_error("RegOpenKeyEx (open)", result);
   vlog.debug("openKey(%p,%s,%s) = %p", root.key, name,
                 readOnly ? "ro" : "rw", key);
   freeKey = true;
@@ -109,7 +109,7 @@ void RegKey::setDACL(const PACL acl, bool inherit) {
     DACL_SECURITY_INFORMATION |
     (inherit ? UNPROTECTED_DACL_SECURITY_INFORMATION : PROTECTED_DACL_SECURITY_INFORMATION),
     nullptr, nullptr, acl, nullptr)) != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegKey::setDACL failed", result);
+    throw rdr::win32_error("RegKey::setDACL failed", result);
 }
 
 void RegKey::close() {
@@ -123,19 +123,19 @@ void RegKey::close() {
 void RegKey::deleteKey(const char* name) const {
   LONG result = RegDeleteKey(key, name);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegDeleteKey", result);
+    throw rdr::win32_error("RegDeleteKey", result);
 }
 
 void RegKey::deleteValue(const char* name) const {
   LONG result = RegDeleteValue(key, name);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegDeleteValue", result);
+    throw rdr::win32_error("RegDeleteValue", result);
 }
 
 void RegKey::awaitChange(bool watchSubTree, DWORD filter, HANDLE event) const {
   LONG result = RegNotifyChangeKeyValue(key, watchSubTree, filter, event, event != nullptr);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegNotifyChangeKeyValue", result);
+    throw rdr::win32_error("RegNotifyChangeKeyValue", result);
 }
 
 
@@ -144,22 +144,22 @@ RegKey::operator HKEY() const {return key;}
 
 void RegKey::setExpandString(const char* valname, const char* value) const {
   LONG result = RegSetValueEx(key, valname, 0, REG_EXPAND_SZ, (const BYTE*)value, (strlen(value)+1)*sizeof(char));
-  if (result != ERROR_SUCCESS) throw rdr::Win32Exception("setExpandString", result);
+  if (result != ERROR_SUCCESS) throw rdr::win32_error("setExpandString", result);
 }
 
 void RegKey::setString(const char* valname, const char* value) const {
   LONG result = RegSetValueEx(key, valname, 0, REG_SZ, (const BYTE*)value, (strlen(value)+1)*sizeof(char));
-  if (result != ERROR_SUCCESS) throw rdr::Win32Exception("setString", result);
+  if (result != ERROR_SUCCESS) throw rdr::win32_error("setString", result);
 }
 
 void RegKey::setBinary(const char* valname, const void* value, size_t length) const {
   LONG result = RegSetValueEx(key, valname, 0, REG_BINARY, (const BYTE*)value, length);
-  if (result != ERROR_SUCCESS) throw rdr::Win32Exception("setBinary", result);
+  if (result != ERROR_SUCCESS) throw rdr::win32_error("setBinary", result);
 }
 
 void RegKey::setInt(const char* valname, int value) const {
   LONG result = RegSetValueEx(key, valname, 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
-  if (result != ERROR_SUCCESS) throw rdr::Win32Exception("setInt", result);
+  if (result != ERROR_SUCCESS) throw rdr::win32_error("setInt", result);
 }
 
 void RegKey::setBool(const char* valname, bool value) const {
@@ -214,11 +214,11 @@ std::string RegKey::getRepresentation(const char* valname) const {
   DWORD type, length;
   LONG result = RegQueryValueEx(key, valname, nullptr, &type, nullptr, &length);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("get registry value length", result);
+    throw rdr::win32_error("get registry value length", result);
   std::vector<uint8_t> data(length);
   result = RegQueryValueEx(key, valname, nullptr, &type, (BYTE*)data.data(), &length);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("get registry value", result);
+    throw rdr::win32_error("get registry value", result);
 
   switch (type) {
   case REG_BINARY:
@@ -243,7 +243,7 @@ std::string RegKey::getRepresentation(const char* valname) const {
       std::string str((char*)data.data(), length);
       DWORD required = ExpandEnvironmentStrings(str.c_str(), nullptr, 0);
       if (required==0)
-        throw rdr::Win32Exception("ExpandEnvironmentStrings", GetLastError());
+        throw rdr::win32_error("ExpandEnvironmentStrings", GetLastError());
       std::vector<char> expanded(required);
       length = ExpandEnvironmentStrings(str.c_str(), expanded.data(), required);
       if (required<length)
@@ -271,7 +271,7 @@ const char* RegKey::getValueName(int i) {
   DWORD maxValueNameLen;
   LONG result = RegQueryInfoKey(key, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &maxValueNameLen, nullptr, nullptr, nullptr);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegQueryInfoKey", result);
+    throw rdr::win32_error("RegQueryInfoKey", result);
   if (valueNameBufLen < maxValueNameLen + 1) {
     valueNameBufLen = maxValueNameLen + 1;
     delete [] valueName;
@@ -281,7 +281,7 @@ const char* RegKey::getValueName(int i) {
   result = RegEnumValue(key, i, valueName, &length, nullptr, nullptr, nullptr, nullptr);
   if (result == ERROR_NO_MORE_ITEMS) return nullptr;
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegEnumValue", result);
+    throw rdr::win32_error("RegEnumValue", result);
   return valueName;
 }
 
@@ -289,7 +289,7 @@ const char* RegKey::getKeyName(int i) {
   DWORD maxValueNameLen;
   LONG result = RegQueryInfoKey(key, nullptr, nullptr, nullptr, nullptr, &maxValueNameLen, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegQueryInfoKey", result);
+    throw rdr::win32_error("RegQueryInfoKey", result);
   if (valueNameBufLen < maxValueNameLen + 1) {
     valueNameBufLen = maxValueNameLen + 1;
     delete [] valueName;
@@ -299,6 +299,6 @@ const char* RegKey::getKeyName(int i) {
   result = RegEnumKeyEx(key, i, valueName, &length, nullptr, nullptr, nullptr, nullptr);
   if (result == ERROR_NO_MORE_ITEMS) return nullptr;
   if (result != ERROR_SUCCESS)
-    throw rdr::Win32Exception("RegEnumKey", result);
+    throw rdr::win32_error("RegEnumKey", result);
   return valueName;
 }
index 37144c29c6ae6a5c879fcdf136cf2f4fe5163637..f32ee1bd86f0eec569bc6698fd6b5c58b3dd3f2d 100644 (file)
@@ -126,7 +126,7 @@ win32::SPointer::pointerEvent(const Point& pos, uint8_t buttonmask)
     evt.mi.mouseData = data;
     evt.mi.time = 0;
     if (SendInput(1, &evt, sizeof(evt)) != 1)
-      throw rdr::Win32Exception("SendInput", GetLastError());
+      throw rdr::win32_error("SendInput", GetLastError());
   }
 }
 
index 651537327d2925374ee629714c3327d99eba5b9a..9f970aeb4320b12926bc85e290e099679f61fc2a 100644 (file)
@@ -99,7 +99,7 @@ PSID Sid::copySID(const PSID sid) {
     throw std::invalid_argument("invalid SID in copyPSID");
   PSID buf = (PSID)new uint8_t[GetLengthSid(sid)];
   if (!CopySid(GetLengthSid(sid), buf, sid))
-    throw rdr::Win32Exception("CopySid failed", GetLastError());
+    throw rdr::win32_error("CopySid failed", GetLastError());
   return buf;
 }
 
@@ -108,7 +108,7 @@ void Sid::setSID(const PSID sid) {
     throw std::invalid_argument("invalid SID in copyPSID");
   resize(GetLengthSid(sid));
   if (!CopySid(GetLengthSid(sid), data(), sid))
-    throw rdr::Win32Exception("CopySid failed", GetLastError());
+    throw rdr::win32_error("CopySid failed", GetLastError());
 }
 
 void Sid::getUserNameAndDomain(char** name, char** domain) {
@@ -117,12 +117,12 @@ void Sid::getUserNameAndDomain(char** name, char** domain) {
   SID_NAME_USE use;
   LookupAccountSid(nullptr, (PSID)*this, nullptr, &nameLen, nullptr, &domainLen, &use);
   if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
-    throw rdr::Win32Exception("Unable to determine SID name lengths", GetLastError());
+    throw rdr::win32_error("Unable to determine SID name lengths", GetLastError());
   vlog.info("nameLen=%lu, domainLen=%lu, use=%d", nameLen, domainLen, use);
   *name = new char[nameLen];
   *domain = new char[domainLen];
   if (!LookupAccountSid(nullptr, (PSID)*this, *name, &nameLen, *domain, &domainLen, &use))
-    throw rdr::Win32Exception("Unable to lookup account SID", GetLastError());
+    throw rdr::win32_error("Unable to lookup account SID", GetLastError());
 }
 
 
@@ -133,7 +133,7 @@ Sid::Administrators::Administrators() {
                                 SECURITY_BUILTIN_DOMAIN_RID,
                                 DOMAIN_ALIAS_RID_ADMINS,
                                 0, 0, 0, 0, 0, 0, &sid)) 
-    throw rdr::Win32Exception("Sid::Administrators", GetLastError());
+    throw rdr::win32_error("Sid::Administrators", GetLastError());
   setSID(sid);
   FreeSid(sid);
 }
@@ -144,7 +144,7 @@ Sid::SYSTEM::SYSTEM() {
   if (!AllocateAndInitializeSid(&ntAuth, 1,
                                 SECURITY_LOCAL_SYSTEM_RID,
                                 0, 0, 0, 0, 0, 0, 0, &sid))
-          throw rdr::Win32Exception("Sid::SYSTEM", GetLastError());
+          throw rdr::win32_error("Sid::SYSTEM", GetLastError());
   setSID(sid);
   FreeSid(sid);
 }
@@ -154,7 +154,7 @@ Sid::FromToken::FromToken(HANDLE h) {
   GetTokenInformation(h, TokenUser, nullptr, 0, &required);
   std::vector<uint8_t> tmp(required);
   if (!GetTokenInformation(h, TokenUser, tmp.data(), tmp.size(), &required))
-    throw rdr::Win32Exception("GetTokenInformation", GetLastError());
+    throw rdr::win32_error("GetTokenInformation", GetLastError());
   TOKEN_USER* tokenUser = (TOKEN_USER*)tmp.data();
   setSID(tokenUser->User.Sid);
 }
@@ -164,7 +164,7 @@ PACL rfb::win32::CreateACL(const AccessEntries& ae, PACL existing_acl) {
   PACL new_dacl;
   DWORD result;
   if ((result = SetEntriesInAcl(ae.entry_count, ae.entries, existing_acl, &new_dacl)) != ERROR_SUCCESS)
-    throw rdr::Win32Exception("SetEntriesInAcl", result);
+    throw rdr::win32_error("SetEntriesInAcl", result);
   return new_dacl;
 }
 
@@ -172,18 +172,18 @@ PACL rfb::win32::CreateACL(const AccessEntries& ae, PACL existing_acl) {
 PSECURITY_DESCRIPTOR rfb::win32::CreateSdWithDacl(const PACL dacl) {
   SECURITY_DESCRIPTOR absSD;
   if (!InitializeSecurityDescriptor(&absSD, SECURITY_DESCRIPTOR_REVISION))
-    throw rdr::Win32Exception("InitializeSecurityDescriptor", GetLastError());
+    throw rdr::win32_error("InitializeSecurityDescriptor", GetLastError());
   Sid::SYSTEM owner;
   if (!SetSecurityDescriptorOwner(&absSD, owner, FALSE))
-    throw rdr::Win32Exception("SetSecurityDescriptorOwner", GetLastError());
+    throw rdr::win32_error("SetSecurityDescriptorOwner", GetLastError());
   Sid::Administrators group;
   if (!SetSecurityDescriptorGroup(&absSD, group, FALSE))
-    throw rdr::Win32Exception("SetSecurityDescriptorGroupp", GetLastError());
+    throw rdr::win32_error("SetSecurityDescriptorGroupp", GetLastError());
   if (!SetSecurityDescriptorDacl(&absSD, TRUE, dacl, FALSE))
-    throw rdr::Win32Exception("SetSecurityDescriptorDacl", GetLastError());
+    throw rdr::win32_error("SetSecurityDescriptorDacl", GetLastError());
   DWORD sdSize = GetSecurityDescriptorLength(&absSD);
   SecurityDescriptorPtr sd(sdSize);
   if (!MakeSelfRelativeSD(&absSD, (PSECURITY_DESCRIPTOR)sd.ptr, &sdSize))
-    throw rdr::Win32Exception("MakeSelfRelativeSD", GetLastError());
+    throw rdr::win32_error("MakeSelfRelativeSD", GetLastError());
   return sd.takeSD();
 }
index be3381da07866337d3fdf99e7ce93e5fcdab4f1b..907e321425a4019b690626b4a073c8f957af66d7 100644 (file)
@@ -115,7 +115,7 @@ Service::start() {
     vlog.error("unable to set shutdown parameters: %lu", GetLastError());
   service = this;
   if (!StartServiceCtrlDispatcher(entry))
-    throw Win32Exception("unable to start service", GetLastError());
+    throw win32_error("unable to start service", GetLastError());
 }
 
 void
@@ -335,7 +335,7 @@ bool rfb::win32::registerService(const char* name,
   // - Open the SCM
   ServiceHandle scm = OpenSCManager(nullptr, nullptr, SC_MANAGER_CREATE_SERVICE);
   if (!scm)
-    throw rdr::Win32Exception("unable to open Service Control Manager", GetLastError());
+    throw rdr::win32_error("unable to open Service Control Manager", GetLastError());
 
   // - Add the service
   ServiceHandle handle = CreateService(scm,
@@ -344,7 +344,7 @@ bool rfb::win32::registerService(const char* name,
     SERVICE_AUTO_START, SERVICE_ERROR_IGNORE,
     cmdline.c_str(), nullptr, nullptr, nullptr, nullptr, nullptr);
   if (!handle)
-    throw rdr::Win32Exception("unable to create service", GetLastError());
+    throw rdr::win32_error("unable to create service", GetLastError());
 
   // - Set a description
   SERVICE_DESCRIPTION sdesc = {(LPTSTR)desc};
@@ -380,14 +380,14 @@ bool rfb::win32::unregisterService(const char* name) {
   // - Open the SCM
   ServiceHandle scm = OpenSCManager(nullptr, nullptr, SC_MANAGER_CREATE_SERVICE);
   if (!scm)
-    throw rdr::Win32Exception("unable to open Service Control Manager", GetLastError());
+    throw rdr::win32_error("unable to open Service Control Manager", GetLastError());
 
   // - Create the service
   ServiceHandle handle = OpenService(scm, name, SC_MANAGER_ALL_ACCESS);
   if (!handle)
-    throw rdr::Win32Exception("unable to locate the service", GetLastError());
+    throw rdr::win32_error("unable to locate the service", GetLastError());
   if (!DeleteService(handle))
-    throw rdr::Win32Exception("unable to remove the service", GetLastError());
+    throw rdr::win32_error("unable to remove the service", GetLastError());
 
   // - Register the event log source
   RegKey hk;
@@ -407,16 +407,16 @@ bool rfb::win32::startService(const char* name) {
   // - Open the SCM
   ServiceHandle scm = OpenSCManager(nullptr, nullptr, SC_MANAGER_CONNECT);
   if (!scm)
-    throw rdr::Win32Exception("unable to open Service Control Manager", GetLastError());
+    throw rdr::win32_error("unable to open Service Control Manager", GetLastError());
 
   // - Locate the service
   ServiceHandle handle = OpenService(scm, name, SERVICE_START);
   if (!handle)
-    throw rdr::Win32Exception("unable to open the service", GetLastError());
+    throw rdr::win32_error("unable to open the service", GetLastError());
 
   // - Start the service
   if (!StartService(handle, 0, nullptr))
-    throw rdr::Win32Exception("unable to start the service", GetLastError());
+    throw rdr::win32_error("unable to start the service", GetLastError());
 
   Sleep(500);
 
@@ -427,17 +427,17 @@ bool rfb::win32::stopService(const char* name) {
   // - Open the SCM
   ServiceHandle scm = OpenSCManager(nullptr, nullptr, SC_MANAGER_CONNECT);
   if (!scm)
-    throw rdr::Win32Exception("unable to open Service Control Manager", GetLastError());
+    throw rdr::win32_error("unable to open Service Control Manager", GetLastError());
 
   // - Locate the service
   ServiceHandle handle = OpenService(scm, name, SERVICE_STOP);
   if (!handle)
-    throw rdr::Win32Exception("unable to open the service", GetLastError());
+    throw rdr::win32_error("unable to open the service", GetLastError());
 
   // - Start the service
   SERVICE_STATUS status;
   if (!ControlService(handle, SERVICE_CONTROL_STOP, &status))
-    throw rdr::Win32Exception("unable to stop the service", GetLastError());
+    throw rdr::win32_error("unable to stop the service", GetLastError());
 
   Sleep(500);
 
@@ -448,17 +448,17 @@ DWORD rfb::win32::getServiceState(const char* name) {
   // - Open the SCM
   ServiceHandle scm = OpenSCManager(nullptr, nullptr, SC_MANAGER_CONNECT);
   if (!scm)
-    throw rdr::Win32Exception("unable to open Service Control Manager", GetLastError());
+    throw rdr::win32_error("unable to open Service Control Manager", GetLastError());
 
   // - Locate the service
   ServiceHandle handle = OpenService(scm, name, SERVICE_INTERROGATE);
   if (!handle)
-    throw rdr::Win32Exception("unable to open the service", GetLastError());
+    throw rdr::win32_error("unable to open the service", GetLastError());
 
   // - Get the service status
   SERVICE_STATUS status;
   if (!ControlService(handle, SERVICE_CONTROL_INTERROGATE, (SERVICE_STATUS*)&status))
-    throw rdr::Win32Exception("unable to query the service", GetLastError());
+    throw rdr::win32_error("unable to query the service", GetLastError());
 
   return status.dwCurrentState;
 }
index 3d8c101e131bf7513d565d06947656321176c47f..b42c66cb5a42e60ae05ce8b78c31ee2a2501011e 100644 (file)
@@ -69,7 +69,7 @@ void SocketManager::addListener(network::SocketListener* sock_,
     flags |= FD_ADDRESS_LIST_CHANGE;
   try {
     if (event && (WSAEventSelect(sock_->getFd(), event, flags) == SOCKET_ERROR))
-      throw rdr::SocketException("Unable to select on listener", WSAGetLastError());
+      throw rdr::socket_error("Unable to select on listener", WSAGetLastError());
 
     // requestAddressChangeEvents MUST happen after WSAEventSelect, so that the socket is non-blocking
     if (acn)
@@ -186,7 +186,7 @@ int SocketManager::checkTimeouts() {
       if (j->second.sock->outStream().hasBufferedData())
         eventMask |= FD_WRITE;
       if (WSAEventSelect(j->second.sock->getFd(), j->first, eventMask) == SOCKET_ERROR)
-        throw rdr::SocketException("unable to adjust WSAEventSelect:%u", WSAGetLastError());
+        throw rdr::socket_error("unable to adjust WSAEventSelect:%u", WSAGetLastError());
     }
   }
 
@@ -236,11 +236,11 @@ void SocketManager::processEvent(HANDLE event) {
 
       // Fetch why this event notification triggered
       if (WSAEnumNetworkEvents(ci.sock->getFd(), event, &network_events) == SOCKET_ERROR)
-        throw rdr::SocketException("unable to get WSAEnumNetworkEvents:%u", WSAGetLastError());
+        throw rdr::socket_error("unable to get WSAEnumNetworkEvents:%u", WSAGetLastError());
 
       // Cancel event notification for this socket
       if (WSAEventSelect(ci.sock->getFd(), event, 0) == SOCKET_ERROR)
-        throw rdr::SocketException("unable to disable WSAEventSelect:%u", WSAGetLastError());
+        throw rdr::socket_error("unable to disable WSAEventSelect:%u", WSAGetLastError());
 
       // Reset the event object
       WSAResetEvent(event);
@@ -268,7 +268,7 @@ void SocketManager::processEvent(HANDLE event) {
       if (ci.sock->outStream().hasBufferedData())
         eventMask |= FD_WRITE;
       if (WSAEventSelect(ci.sock->getFd(), event, eventMask) == SOCKET_ERROR)
-        throw rdr::SocketException("unable to re-enable WSAEventSelect:%u", WSAGetLastError());
+        throw rdr::socket_error("unable to re-enable WSAEventSelect:%u", WSAGetLastError());
     } catch (std::exception& e) {
       vlog.error("%s", e.what());
       remSocket(ci.sock);
index a8602ad2b1e805bd2037f80d9fcaa85b3f6a9ebb..faf83e894c8464bd20aa26617628133e7b816a19 100644 (file)
@@ -35,7 +35,7 @@ namespace win32 {
     if (processId == (DWORD)-1)
       processId = GetCurrentProcessId();
     if (!ProcessIdToSessionId(GetCurrentProcessId(), &id))
-      throw rdr::Win32Exception("ProcessIdToSessionId", GetLastError());
+      throw rdr::win32_error("ProcessIdToSessionId", GetLastError());
   }
 
   ProcessSessionId mySessionId;
@@ -57,7 +57,7 @@ namespace win32 {
     ConsoleSessionId console;
     vlog.info("Console session is %lu", console.id);
     if (!WTSConnectSession(sessionId, console.id, (PTSTR)"", 0))
-      throw rdr::Win32Exception("Unable to connect session to Console", GetLastError());
+      throw rdr::win32_error("Unable to connect session to Console", GetLastError());
 
     // Lock the newly connected session, for security
     LockWorkStation();
index 603c7bc3e9ab6cd9ae52ea9d4cae8ddf01935683..65d7a9d7bf627ffff7c797f23175d010067a27f2 100644 (file)
@@ -45,7 +45,7 @@ WMCursor::getCursorInfo() {
   CURSORINFO info;
   info.cbSize = sizeof(CURSORINFO);
   if (!GetCursorInfo(&info))
-    throw rdr::Win32Exception("GetCursorInfo failed", GetLastError());
+    throw rdr::win32_error("GetCursorInfo failed", GetLastError());
   result.cursor = info.hCursor;
   result.position = Point(info.ptScreenPos.x, info.ptScreenPos.y);
   result.visible = info.flags & CURSOR_SHOWING;
index db2672699e8916a68ada7a491740c761345e3984..98e8dce34062e32cc269aa1f1a8176d494b4932e 100644 (file)
@@ -58,7 +58,7 @@ bool
 rfb::win32::WMPoller::checkPollWindow(HWND w) {
   char buffer[128];
   if (!GetClassName(w, buffer, 128))
-    throw rdr::Win32Exception("unable to get window class:%u", GetLastError());
+    throw rdr::win32_error("unable to get window class:%u", GetLastError());
   if ((strcmp(buffer, "tty") != 0) &&
     (strcmp(buffer, "ConsoleWindowClass") != 0)) {
     return false;
index b22311af37af0af0a27432106e8b67cb0b485b6d..b35bf6291faeaef5b6239340f370a28501126983 100644 (file)
@@ -46,19 +46,19 @@ FileVersionInfo::FileVersionInfo(const char* filename) {
   {
     Handle file(CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr));
          if (file.h == INVALID_HANDLE_VALUE)
-      throw rdr::Win32Exception("Failed to open file", GetLastError());
+      throw rdr::win32_error("Failed to open file", GetLastError());
   }
 
   // Get version info size
   DWORD handle;
   int size = GetFileVersionInfoSize((char*)filename, &handle);
   if (!size)
-    throw rdr::Win32Exception("GetVersionInfoSize failed", GetLastError());
+    throw rdr::win32_error("GetVersionInfoSize failed", GetLastError());
 
   // Get version info
   buf = new char[size];
   if (!GetFileVersionInfo((char*)filename, handle, size, buf))
-    throw rdr::Win32Exception("GetVersionInfo failed", GetLastError());
+    throw rdr::win32_error("GetVersionInfo failed", GetLastError());
 }
 
 FileVersionInfo::~FileVersionInfo() {
index 1edc2bfa69188136b08e217aab458b2e00d353b3..c6b245cc0b704ebb75cf9eceef6621ff03549756 100644 (file)
@@ -42,7 +42,7 @@ void LegacyPage::LoadPrefs()
         std::string username;
         try {
           username = UserName();
-        } catch (rdr::Win32Exception& e) {
+        } catch (rdr::win32_error& e) {
           if (e.err != ERROR_NOT_LOGGED_ON)
             throw;
         }
index de3a4620ac5393155ec9febd4bc8059678d186d2..7e692b9b76653b2f6f111f622afc30946c48bd5d 100644 (file)
@@ -125,7 +125,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE /*prev*/, char* /*cmdLine*/, int /*
 
         // Set the DACL, and don't allow the key to inherit its parent's DACL
         rootKey.setDACL(acl, false);
-      } catch (rdr::Win32Exception& e) {
+      } catch (rdr::win32_error& e) {
         // Something weird happens on NT 4.0 SP5 but I can't reproduce it on other
         // NT 4.0 service pack revisions.
         if (e.err == ERROR_INVALID_PARAMETER) {
@@ -169,7 +169,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE /*prev*/, char* /*cmdLine*/, int /*
 #else
       sheet.showPropSheet(nullptr, true, false);
 #endif
-    } catch (rdr::Win32Exception& e) {
+    } catch (rdr::win32_error& e) {
       switch (e.err) {
       case ERROR_ACCESS_DENIED:
         MsgBox(nullptr, "You do not have sufficient access rights to run the VNC Configuration applet",
index 6ec62bbd56f7aa17cfbca72df60f6ea1af124e0f..1ef26e6380ae804f2ea22545dd183d7969aee75e 100644 (file)
@@ -74,7 +74,7 @@ void QueryConnectDialog::worker() {
 
 void QueryConnectDialog::initDialog() {
   if (!SetTimer(handle, 1, 1000, nullptr))
-    throw rdr::Win32Exception("SetTimer", GetLastError());
+    throw rdr::win32_error("SetTimer", GetLastError());
   setItemString(IDC_QUERY_HOST, peerIp.c_str());
   if (userName.empty())
     userName = "(anonymous)";
index d98aaa105ffe9030a42f395433219d48b17d4f3f..cea0fe7837bd4b715685ffeb23ab0d85791d2691 100644 (file)
@@ -188,7 +188,7 @@ int VNCServerWin32::run() {
     while (runServer) {
       result = sockMgr.getMessage(&msg, nullptr, 0, 0);
       if (result < 0)
-        throw rdr::Win32Exception("getMessage", GetLastError());
+        throw rdr::win32_error("getMessage", GetLastError());
       if (!isServiceProcess() && (result == 0))
         break;
       TranslateMessage(&msg);
@@ -196,7 +196,7 @@ int VNCServerWin32::run() {
     }
 
     vlog.debug("Server exited cleanly");
-  } catch (rdr::Win32Exception &s) {
+  } catch (rdr::win32_error &s) {
     vlog.error("%s", s.what());
     result = s.err;
   } catch (std::exception &e) {
index 4feff6b23ba91a5e8e9255804a0637872bbd39cb..1a370522de344dd203247ab6ec0bd32849dcd377 100644 (file)
@@ -177,13 +177,13 @@ static void processParams(int argc, char** argv) {
         // Try to clean up earlier services we've had
         try {
           rfb::win32::unregisterService("WinVNC4");
-        } catch (rdr::Win32Exception&) {
+        } catch (rdr::win32_error&) {
           // Do nothing as we might fail simply because there was no
           // service to remove
         }
         try {
           rfb::win32::unregisterService("TigerVNC Server");
-        } catch (rdr::Win32Exception&) {
+        } catch (rdr::win32_error&) {
         }
 
         if (rfb::win32::registerService(VNCServerService::Name,