//======================================================================= // // SDM_Changes_To_Source.txt VNC Viewer for Windows // // Back in November I hacked 3.3.3r3 so I could get past a socks // firewall. Now I finally spent some time to integrate this as a full // feature and fix a few other things that annoy me on a daily basis. // // Here's what I have added, details follow: // // 1,2 // Establishing a connection through a SOCKS 5 compliant firewall. // (one that does not require authentication) // Just enter a name like: "vnc.server.com:0@socks5.firewall.com:1080" // // 3 // Load & Save the last used connection options in the registry. // // 4 // Checkbox option to suppress the // "Here's how you get out of fullscreen" nag box. // // 5 // Run connection files in explorer without the need to register VNC. // // 6 // Configuration file names which contain spaces and/or // are surrounded by double quotation marks. // // // Revision History: // // Author Date Description // ------------------------------------------- // SDM 29 August 2001 Coded & released features 1 thru 6. // (on Version 3.3.3r9 for Windows) // // SDM = Sean McLaughlin // //======================================================================= //SDM#01 Support for parsing and storing a firewall host name and port number. Server string should be in the form of: server_host:display@firewall.com:port Of course you can omit the firewall info and use VNC as usual. You won't notice any difference. The firewall port is optional and defaults to 1080 ie. 1.2.3.4:0@24.112.111.34:1080 ie. vnc.server.com:0@socks5.firewall.com:1080 I stretched out the control on the connection dialog a bit so you can see most of it. Also cleaned up a few hardcoded buffer lengths to use MAX_HOST_NAME_LEN wherever appropriate. //SDM#02 Support for establishing a connection through a SOCKS 5 compliant firewall. Performs a very simplistic socks negotiation in accordance with the SOCKS 5 specification rfc1928 http://www.socks.nec.com/rfc/rfc1928.txt The firewall must not require any authentication. For example, username/password authentication is not supported. I don't have any intention of adding it unless people nag me. I've done my best to catch and display firewall response codes but the rfc wasn't very clear to me. The wingnut firewall I test with only returns error code 1 on errors anyway. I am aware of sockscap and developer kits I can use to get socks support. Neither of those options suited my needs. In fact they aggravated me enough to start all this. //SDM#03 Load & Save all of the connection options in the registry. This has nothing to do with MRU list. Simply remembers the settings you choose in the connection info dialog box. Registry location is HKCU "Software\\ORL\\VNCviewer\\Settings" They are loaded upon application startup. Config files or command line options can override them. They are saved only in two places: 1) After you press OK to connect to a server at 'Connection Details' 2) During a session after you press OK at 'Connection Options' These settings are not connection-specific. I believe it would be confusing to a user if it maintained settings each item in the MRU list. An advanced user would use .VNC settings files anyway. I wanted to use the existing Load & Save methods but it just didn't work out, so there is some annoying code duplication going on. //SDM#04 Added near-full support for the option to suppress the 'here's how you get the hell out of fullscreen' prompt. It loads & saves it in the registry and connection files but I didn't bother to add a command line option for it. Modified the connection options dialog to add a checkbox user interface element. The new options member is called m_SkipFullScreenPrompt Commented out the old code that used the registry to check for that special option. //SDM#05 Added support for a command line that contains only a config file name and nothing else. Eventually I noticed that there's a command to register it properly so explorer will add the "-config" parameter in front of it. That doesn't help people who are inclined to use the "Open With..." feature in Explorer. The reasoning is that if there aren't any command line switches and whatever is there doesn't parse up as a server name, then go ahead and try it as a config file name. More good than harm, I say. //SDM#06 Added support for configuration file names which contain spaces and/or are surrounded by double quotation marks ("). If you are following along you'll see I was getting a triple whammy trying to run VNC from my connection file on my desktop :) It's all good now. //SDM#07 Quickly hacked in support for WM_MOUSEWHEEL messsages to scroll vertically. Scrolls 1/16 of the vnc window. Better than nothing. To avoid any misunderstanding, please note that this does not scroll windows on the server computer. It scrolls the view of the server on your client screen, (assuming it is larger than your vnc window). //EOF