UltraVNC 1.0.4 RC17
**Update 3 aug
- Exceptions thrown with no message cause access violations when Report called.
- All message boxes are now properly parented to the viewer window so that they are modal. We ran into quite a few that ended up behind the main window, or behind the file transfer windows
- Socket timeouts are now used during file transfer so that connections lost while connected to a repeater are detected (We have a multistage repeater chain (server -> repeater -> repeater-> repeater -> viewer that doens't reliably tear down connections on network failure. Don't ask ;) )
- A small keepalive message is sent every 5 seconds after receiving a file chunk to keep the server or viewer from timing out during a read. This is necessary because there's no flow control in the FT protocol. I didn't notice a decrease in throughput. Keepalive support is negotiated between viewer and server. Should be fully backwards compatible, though I suppose if the viewer doens't want keepalives, the server should not use the socket timeouts.
- The prompt for exit is now respects the m_fExitCheck setting if the 'x' in the full screen titlebar is clicked
- Another big change to the file transfer module is that a temporary file is used to hold the file being transferred. When it is successfully completes, it is moved to the original file name -- resume still works too. This was because when a file transfer is interrupted, a user (ie, service tech) can't tell if the file is complete.
- The close button on the file transfer dialog is now enabled and disabled during file transfers. You can't close the window with the 'x' during a transfer, but you can otherwise
- Many variables are now properly initialized.
- The black layered window is now brought to the top every 20ms -- the start menu is still visible on the remote system so this change makes it go away faster. It's not a good fix but I couldn't find a better way with the time I had.
- You can now register the service with a custom name.
- Simplified Copy_to_temp and copy_to_secure_from_temp
- When the network connection is lost, a message is shown "Connection lost due to communication failure" instead of "writeexact: socket error while writing"
- socket read/write errors now break the while (connected) loop in vncclient.cpp
- Simplified file handle cleanup
- FT crash fix, lock screeen while transfer
- quickoption fix: Was not saved correct