Harmonize with the standard C++ exceptions.
Exception(const char* message);
Exception(const std::string& message);
virtual ~Exception() {}
- virtual const char* str() const { return str_; }
+ virtual const char* what() const { return str_; }
private:
char str_[256];
};
} catch (EndOfStream&) {
return 0;
} catch (SocketException& e) {
- vlog.error("Failure reading TLS data: %s", e.str());
+ vlog.error("Failure reading TLS data: %s", e.what());
gnutls_transport_set_errno(self->session, e.err);
self->saved_exception = new SocketException(e);
return -1;
} catch (Exception& e) {
- vlog.error("Failure reading TLS data: %s", e.str());
+ vlog.error("Failure reading TLS data: %s", e.what());
gnutls_transport_set_errno(self->session, EINVAL);
self->saved_exception = new Exception(e);
return -1;
out->writeBytes((const uint8_t*)data, size);
out->flush();
} catch (SocketException& e) {
- vlog.error("Failure sending TLS data: %s", e.str());
+ vlog.error("Failure sending TLS data: %s", e.what());
gnutls_transport_set_errno(self->session, e.err);
self->saved_exception = new SocketException(e);
return -1;
} catch (Exception& e) {
- vlog.error("Failure sending TLS data: %s", e.str());
+ vlog.error("Failure sending TLS data: %s", e.what());
gnutls_transport_set_errno(self->session, EINVAL);
self->saved_exception = new Exception(e);
return -1;
try {
decoder.flush();
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
setFramebuffer(nullptr);
if (!decoder->readRect(r, conn->getInStream(), conn->server, bufferStream))
return false;
} catch (rdr::Exception& e) {
- throw Exception(format("Error reading rect: %s", e.str()));
+ throw Exception(format("Error reading rect: %s", e.what()));
}
stats[encoding].rects++;
if (threadException != nullptr)
return;
- threadException = new rdr::Exception(format("Exception on worker thread: %s", e.str()));
+ threadException = new rdr::Exception(format("Exception on worker thread: %s", e.what()));
}
void DecodeManager::throwThreadException()
state_ = RFBSTATE_SECURITY;
ssecurity = security.GetSSecurity(this, secType);
} catch (rdr::Exception& e) {
- failConnection(e.str());
+ failConnection(e.what());
}
}
if (!ssecurity->processMsg())
return false;
} catch (AuthFailureException& e) {
- vlog.error("AuthFailureException: %s", e.str());
+ vlog.error("AuthFailureException: %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
- authFailureMsg = e.str();
+ authFailureMsg = e.what();
authFailureTimer.start(100);
return true;
}
}
os->flush();
} catch (rdr::Exception& e) {
- close(e.str());
+ close(e.what());
return;
}
vlog.error("Failed to flush remaining socket data on close");
}
} catch (rdr::Exception& e) {
- vlog.error("Failed to flush remaining socket data on close: %s", e.str());
+ vlog.error("Failed to flush remaining socket data on close: %s", e.what());
}
// Just shutdown the socket and mark our state as closing. Eventually the
try {
initialiseProtocol();
} catch (rdr::Exception& e) {
- close(e.str());
+ close(e.what());
return false;
}
return true;
} catch (rdr::EndOfStream&) {
close("Clean disconnection");
} catch (rdr::Exception &e) {
- close(e.str());
+ close(e.what());
}
}
if (!sock->outStream().hasBufferedData())
writeFramebufferUpdate();
} catch (rdr::Exception &e) {
- close(e.str());
+ close(e.what());
}
}
updates.add_changed(server->getPixelBuffer()->getRect());
writeFramebufferUpdate();
} catch(rdr::Exception &e) {
- close(e.str());
+ close(e.what());
}
}
try {
writeFramebufferUpdate();
} catch(rdr::Exception &e) {
- close(e.str());
+ close(e.what());
}
}
screenLayoutChange(reason);
writeFramebufferUpdate();
} catch(rdr::Exception &e) {
- close(e.str());
+ close(e.what());
}
}
try {
if (state() == RFBSTATE_NORMAL) writer()->writeBell();
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
setDesktopName(name);
writeFramebufferUpdate();
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
setCursor();
writeFramebufferUpdate();
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
setLEDState(state);
writeFramebufferUpdate();
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
if (!rfb::Server::acceptCutText) return;
requestClipboard();
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
if (!rfb::Server::sendCutText) return;
announceClipboard(available);
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
if (!rfb::Server::sendCutText) return;
sendClipboardData(data);
} catch(rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
try {
approveConnection(accept, reason);
} catch (rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
}
(t == &losslessTimer))
writeFramebufferUpdate();
} catch (rdr::Exception& e) {
- close(e.str());
+ close(e.what());
}
if (t == &idleTimer)
try {
cc = new CConn(fn);
} catch (rdr::Exception& e) {
- fprintf(stderr, "Failed to open rfb file: %s\n", e.str());
+ fprintf(stderr, "Failed to open rfb file: %s\n", e.what());
exit(1);
}
cc->processMsg();
} catch (rdr::EndOfStream& e) {
} catch (rdr::Exception& e) {
- fprintf(stderr, "Failed to run rfb file: %s\n", e.str());
+ fprintf(stderr, "Failed to run rfb file: %s\n", e.what());
exit(1);
}
try {
cc = new CConn(fn);
} catch (rdr::Exception& e) {
- fprintf(stderr, "Failed to open rfb file: %s\n", e.str());
+ fprintf(stderr, "Failed to open rfb file: %s\n", e.what());
exit(1);
}
cc->processMsg();
} catch (rdr::EndOfStream& e) {
} catch (rdr::Exception& e) {
- fprintf(stderr, "Failed to run rfb file: %s\n", e.str());
+ fprintf(stderr, "Failed to run rfb file: %s\n", e.what());
exit(1);
}
XCloseDisplay(dpy);
} catch (rdr::Exception &e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
return 0;
server->setCursor(cim->width, cim->height, Point(cim->xhot, cim->yhot),
cursorData);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::setCursor: %s",e.str());
+ vlog.error("XserverDesktop::setCursor: %s",e.what());
}
delete [] cursorData;
}
} catch (rdr::Exception &e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
return 1;
}
try {
server->requestClipboard();
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::requestClipboard: %s",e.str());
+ vlog.error("XserverDesktop::requestClipboard: %s",e.what());
}
}
try {
server->announceClipboard(available);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::announceClipboard: %s",e.str());
+ vlog.error("XserverDesktop::announceClipboard: %s",e.what());
}
}
try {
server->sendClipboardData(data_);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::sendClipboardData: %s",e.str());
+ vlog.error("XserverDesktop::sendClipboardData: %s",e.what());
}
}
try {
server->setName(name);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::setDesktopName: %s",e.str());
+ vlog.error("XserverDesktop::setDesktopName: %s",e.what());
}
}
try {
server->setCursor(width, height, Point(hotX, hotY), cursorData);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::setCursor: %s",e.str());
+ vlog.error("XserverDesktop::setCursor: %s",e.what());
}
delete [] cursorData;
try {
server->setCursorPos(Point(x, y), warped);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::setCursorPos: %s",e.str());
+ vlog.error("XserverDesktop::setCursorPos: %s",e.what());
}
}
try {
server->add_changed(region);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::add_changed: %s",e.str());
+ vlog.error("XserverDesktop::add_changed: %s",e.what());
}
}
try {
server->add_copied(dest, delta);
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::add_copied: %s",e.str());
+ vlog.error("XserverDesktop::add_copied: %s",e.what());
}
}
vlog.error("Cannot find file descriptor for socket event");
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::handleSocketEvent: %s",e.str());
+ vlog.error("XserverDesktop::handleSocketEvent: %s",e.what());
}
}
if (nextTimeout >= 0 && (*timeout == -1 || nextTimeout < *timeout))
*timeout = nextTimeout;
} catch (rdr::Exception& e) {
- vlog.error("XserverDesktop::blockHandler: %s",e.str());
+ vlog.error("XserverDesktop::blockHandler: %s", e.what());
}
}
vncHooksInit(scr);
}
} catch (rdr::Exception& e) {
- vncFatalError("vncExtInit: %s\n",e.str());
+ vncFatalError("vncExtInit: %s\n",e.what());
}
vncRegisterBlockHandlers();
desktop[scr] = nullptr;
}
} catch (rdr::Exception& e) {
- vncFatalError("vncExtInit: %s\n",e.str());
+ vncFatalError("vncExtInit: %s\n",e.what());
}
}
try {
desktop[0]->disconnectClients();
} catch (rdr::Exception& e) {
- vlog.error("Disconnecting all clients: %s",e.str());
+ vlog.error("Disconnecting all clients: %s", e.what());
return -1;
}
return 0;
viewOnly ? " (view only)" : "");
desktop[0]->addClient(sock, true, (bool)viewOnly);
} catch (rdr::Exception& e) {
- vlog.error("Reverse connection: %s",e.str());
+ vlog.error("Reverse connection: %s", e.what());
return -1;
}
vncFbptr[scrIdx],
vncFbstride[scrIdx]);
} catch (rdr::Exception& e) {
- vncFatalError("vncPostScreenResize: %s\n", e.str());
+ vncFatalError("vncPostScreenResize: %s\n", e.what());
}
}
try {
desktop[scrIdx]->refreshScreenLayout();
} catch (rdr::Exception& e) {
- vncFatalError("vncRefreshScreenLayout: %s\n", e.str());
+ vncFatalError("vncRefreshScreenLayout: %s\n", e.what());
}
}
try {
return desktop[scrIdx]->getMsc();
} catch (rdr::Exception& e) {
- vncFatalError("vncGetMsc: %s\n", e.str());
+ vncFatalError("vncGetMsc: %s\n", e.what());
}
}
try {
desktop[scrIdx]->queueMsc(id, msc);
} catch (rdr::Exception& e) {
- vncFatalError("vncQueueMsc: %s\n", e.str());
+ vncFatalError("vncQueueMsc: %s\n", e.what());
}
}
try {
desktop[scrIdx]->abortMsc(id);
} catch (rdr::Exception& e) {
- vncFatalError("vncAbortMsc: %s\n", e.str());
+ vncFatalError("vncAbortMsc: %s\n", e.what());
}
}
serverHost.c_str(), serverPort);
}
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection(_("Failed to connect to \"%s\":\n\n%s"),
- vncServerName, e.str());
+ vncServerName, e.what());
return;
}
}
cc->getOutStream()->cork(false);
} catch (rdr::EndOfStream& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
if (!cc->desktop) {
vlog.error(_("The connection was dropped by the server before "
"the session could be established."));
disconnect();
}
} catch (rfb::AuthCancelledException& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
disconnect();
} catch (rfb::AuthFailureException& e) {
cc->resetPassword();
- vlog.error(_("Authentication failed: %s"), e.str());
+ vlog.error(_("Authentication failed: %s"), e.what());
abort_connection(_("Failed to authenticate with the server. Reason "
- "given by the server:\n\n%s"), e.str());
+ "given by the server:\n\n%s"), e.what());
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
fltk_menu_add(dialog.serverName->menubutton(),
entry.c_str(), 0, nullptr);
} catch (Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
fl_alert(_("Unable to load the server history:\n\n%s"),
- e.str());
+ e.what());
}
while (dialog.shown()) Fl::wait();
try {
dialog->serverName->value(loadViewerParameters(filename));
} catch (Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
fl_alert(_("Unable to load the specified configuration file:\n\n%s"),
- e.str());
+ e.what());
}
delete(file_chooser);
try {
saveViewerParameters(filename, servername);
} catch (Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
fl_alert(_("Unable to save the specified configuration "
- "file:\n\n%s"), e.str());
+ "file:\n\n%s"), e.what());
}
delete(file_chooser);
try {
saveViewerParameters(nullptr, servername);
} catch (Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
fl_alert(_("Unable to save the default configuration:\n\n%s"),
- e.str());
+ e.what());
}
// avoid duplicates in the history
try {
dialog->saveServerHistory();
} catch (Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
fl_alert(_("Unable to save the server history:\n\n%s"),
- e.str());
+ e.what());
}
}
try {
cc->sendClipboardData(filtered.c_str());
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
try {
cc->writer()->writePointerEvent(pos, buttonMask);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
} else {
try {
self->cc->announceClipboard(true);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
}
try {
cc->announceClipboard(true);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
}
self->cc->writer()->writePointerEvent(self->lastPointerPos,
self->lastButtonMask);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
}
else
cc->writer()->writeKeyEvent(keySym, keyCode, true);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
}
else
cc->writer()->writeKeyEvent(iter->second, keyCode, false);
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_connection_with_unexpected_error(e);
}
} catch (Exception& e) {
RegCloseKey(hKey);
throw Exception(format(_("Failed to save \"%s\": %s"),
- "ServerName", e.str()));
+ "ServerName", e.what()));
}
for (size_t i = 0; i < sizeof(parameterArray)/sizeof(VoidParameter*); i++) {
} catch (Exception& e) {
RegCloseKey(hKey);
throw Exception(format(_("Failed to save \"%s\": %s"),
- parameterArray[i]->getName(), e.str()));
+ parameterArray[i]->getName(), e.what()));
}
}
RegCloseKey(hKey);
throw Exception(format(_("Failed to remove \"%s\": %s"),
readOnlyParameterArray[i]->getName(),
- e.str()));
+ e.what()));
}
}
} catch (Exception& e) {
// Just ignore this entry and try the next one
vlog.error(_("Failed to read server history entry %d: %s"),
- (int)index, e.str());
+ (int)index, e.what());
continue;
}
} catch(Exception& e) {
// Just ignore this entry and continue with the rest
vlog.error(_("Failed to read parameter \"%s\": %s"),
- parameters[i]->getName(), e.str());
+ parameters[i]->getName(), e.what());
}
}
}
snprintf(servername, buffersize, "%s", servernameBuffer);
} catch(Exception& e) {
vlog.error(_("Failed to read parameter \"%s\": %s"),
- "ServerName", e.str());
+ "ServerName", e.what());
strcpy(servername, "");
}
} catch(Exception& e) {
// Just ignore this entry and continue with the rest
vlog.error(_("Failed to read line %d in file %s: %s"),
- lineNr, filepath, e.str());
+ lineNr, filepath, e.what());
continue;
}
try {
handlers[msg->hwnd] = new Win32TouchHandler(msg->hwnd);
} catch (rfb::Exception& e) {
- vlog.error(_("Failed to create touch handler: %s"), e.str());
- abort_vncviewer(_("Failed to create touch handler: %s"), e.str());
+ vlog.error(_("Failed to create touch handler: %s"), e.what());
+ abort_vncviewer(_("Failed to create touch handler: %s"), e.what());
}
// Add a special hook-in for handling events sent directly to WndProc
if (!SetWindowSubclass(msg->hwnd, &win32WindowProc, 1, 0)) {
void abort_connection_with_unexpected_error(const rdr::Exception &e) {
abort_connection(_("An unexpected error occurred when communicating "
- "with the server:\n\n%s"), e.str());
+ "with the server:\n\n%s"), e.what());
}
void disconnect()
strncpy(vncServerName, newServerName, VNCSERVERNAMELEN-1);
vncServerName[VNCSERVERNAMELEN-1] = '\0';
} catch (rfb::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
abort_vncviewer(_("Unable to load the specified configuration "
- "file:\n\n%s"), e.str());
+ "file:\n\n%s"), e.what());
}
}
}
defaultServerName[VNCSERVERNAMELEN-1] = '\0';
}
} catch (rfb::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
for (int i = 1; i < argc;) {
}
}
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
- abort_vncviewer(_("Failure waiting for incoming VNC connection:\n\n%s"), e.str());
+ vlog.error("%s", e.what());
+ abort_vncviewer(_("Failure waiting for incoming VNC connection:\n\n%s"), e.what());
return 1; /* Not reached */
}
try {
mktunnel();
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
- abort_vncviewer(_("Failure setting up encrypted tunnel:\n\n%s"), e.str());
+ vlog.error("%s", e.what());
+ abort_vncviewer(_("Failure setting up encrypted tunnel:\n\n%s"), e.what());
}
}
#endif
if (ad.enable(false))
restoreActiveDesktop = true;
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
// -=- Switch of normal wallpaper and notify apps
restoreWallpaper = true;
} catch (rdr::Exception& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
}
}
ad.enable(true);
restoreActiveDesktop = false;
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
}
}
} catch (rdr::Exception& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
}
}
restoreEffects = true;
} catch (rdr::Exception& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
}
}
}
} catch (rdr::Exception& e) {
- vlog.info("%s", e.str());
+ vlog.info("%s", e.what());
}
}
vlog.debug("set clipboard");
} catch (rdr::Exception& e) {
- vlog.debug("%s", e.str());
+ vlog.debug("%s", e.what());
}
// - Close the clipboard
server->setCursor(width, height, hotspot, buffer.data());
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
}
try {
result = _this->processMessage(msg, wParam, lParam);
} catch (rdr::Exception& e) {
- vlog.error("untrapped: %s", e.str());
+ vlog.error("untrapped: %s", e.what());
}
return result;
processEvent(event);
return true;
} catch (rdr::Exception& e) {
- vlog.debug("%s", e.str());
+ vlog.debug("%s", e.what());
return false;
}
}
}
} catch (rdr::Win32Exception& e) {
if (e.err != ERROR_INVALID_HANDLE)
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
}
if (tryMethod == 0)
throw rdr::Exception("unable to access desktop");
tryMethod--;
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
}
vlog.info("Started %s", core->methodName());
// to cause the server to stop() the desktop.
// Otherwise, the SDesktop is in an inconsistent state
// and the server will crash.
- server->closeClients(e.str());
+ server->closeClients(e.what());
}
}
try {
core->flushUpdates();
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
restartCore();
return;
}
if (event)
WSACloseEvent(event);
delete sock_;
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
throw;
}
if (WSAEventSelect(ci.sock->getFd(), event, eventMask) == SOCKET_ERROR)
throw rdr::SocketException("unable to re-enable WSAEventSelect:%u", WSAGetLastError());
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
remSocket(ci.sock);
}
}
network::TcpFilter::Pattern pat(network::TcpFilter::parsePattern(newPat.c_str()));
pattern = network::TcpFilter::patternToStr(pat);
} catch(rdr::Exception& e) {
- MsgBox(nullptr, e.str(), MB_ICONEXCLAMATION | MB_OK);
+ MsgBox(nullptr, e.what(), MB_ICONEXCLAMATION | MB_OK);
return false;
}
return true;
vlog.info("loading Default prefs");
LoadUserPrefs(userKey);
} catch(rdr::Exception& e) {
- vlog.error("error reading Default settings:%s", e.str());
+ vlog.error("error reading Default settings:%s", e.what());
}
// Open the local, user-specific settings
vlog.info("loading local User prefs");
LoadUserPrefs(userKey);
} catch(rdr::Exception& e) {
- vlog.error("error reading local User settings:%s", e.str());
+ vlog.error("error reading local User settings:%s", e.what());
}
// Open the user's own settings
vlog.info("loading global User prefs");
LoadUserPrefs(userKey);
} catch(rdr::Exception& e) {
- vlog.error("error reading global User settings:%s", e.str());
+ vlog.error("error reading global User settings:%s", e.what());
}
}
}
}
} catch (rdr::Exception& e) {
- MsgBox(nullptr, e.str(), MB_ICONEXCLAMATION | MB_OK);
+ MsgBox(nullptr, e.what(), MB_ICONEXCLAMATION | MB_OK);
return 1;
}
network::createTcpListeners(&sockets, nullptr, port);
}
} catch (rdr::Exception& e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
if (!sockets.empty()) {
if (!localOnly) {
try {
rfb::win32::stopService(VNCServerService::Name);
} catch (rdr::Exception& e) {
- MsgBox(nullptr, e.str(), MB_ICONERROR | MB_OK);
+ MsgBox(nullptr, e.what(), MB_ICONERROR | MB_OK);
}
} else {
thread.server.stop();
vlog.debug("Server exited cleanly");
} catch (rdr::Win32Exception &s) {
- vlog.error("%s", s.str());
+ vlog.error("%s", s.what());
result = s.err;
} catch (rdr::Exception &e) {
- vlog.error("%s", e.str());
+ vlog.error("%s", e.what());
}
{
}
} catch (rdr::Exception& e) {
- MsgBoxOrLog(e.str(), true);
+ MsgBoxOrLog(e.what(), true);
}
}
}
vlog.debug("WinVNC service destroyed");
} catch (rdr::Exception& e) {
- MsgBoxOrLog(e.str(), true);
+ MsgBoxOrLog(e.what(), true);
}
vlog.debug("WinVNC process quitting");